Liferay Portal: правильное использование портлетов выполнения - processor.processPortlet () - PullRequest
1 голос
/ 27 июля 2011

В настоящее время я экспериментирую с использованием портлетов в шаблонах макетов для Liferay 6.0.5, и у меня возникли некоторые проблемы. Я пробовал следовать нескольким учебникам, включая примеры, доступные на Liferay Wiki: http://www.liferay.com/community/wiki/-/wiki/Main/Add+runtime+portlets+to+a+layout#section-Add+runtime+portlets+to+a+layout-Related+Articles. Проблема в том, что ни один из этих примеров не работает для меня правильно. Вызовы $ processor.processPortlet ничего не делают; По моему шаблону макета создается пустая ячейка.

Мой код в моем шаблоне выглядит следующим образом:

<div class="columns-1-2" id="main-content" role="main">
    #if ($browserSniffer.isIe($request) && $browserSniffer.getMajorVersion($request) < 8)
        <table class="portlet-layout">
        <tr>
            <td class="portlet-column portlet-column-only" id="column-1">
                $processor.processPortlet("currentPatient_WAR_opportalweb_INSTANCE_r2Be")
                $processor.processColumn("column-1", "portlet-column-content portlet-column-content-only")
            </td>
        </tr>
        </table>

                ......

    #end
</div>

Я также должен подчеркнуть, что, хотя вызов этого портлета относится к пользовательскому портлету, способному к экземпляру, я пробовал множество других типов вызовов к портлетам, не поддерживающим экземпляр, и даже к стандартным портлетам Liferay:

$processor.processPortlet("tabs_WAR_tabsportlet")

$processor.processPortlet("58")

Ни один из этих звонков не работает для меня.

Я просмотрел журналы liferay, и в журналах нет ошибок, связанных с этим шаблоном, загрузкой страниц с использованием этого шаблона, моим синтаксисом и т. Д. Мне интересно, имеет ли какой-либо синтаксис для этого конкретного вызова изменилось в Liferay 6, или, если есть какая-то настройка, которую мне нужно настроить в своей среде, чтобы включить эту функцию? Если никакие вызовы функции processPortlet не работают, есть ли конкретная вещь в моей конфигурации Liferay, на которую я должен обратить внимание, чтобы она заработала?

Заранее спасибо!

1 Ответ

1 голос
/ 28 июля 2011

Я не вижу никаких проблем в вашем коде, это должно работать. Но вы могли пропустить, что вы находитесь в условном выражении:

#if ($browserSniffer.isIe($request) && $browserSniffer.getMajorVersion($request) < 8)
...
#end

Если вы тестируете это с чем-либо, кроме IE6 или IE7, вы не увидите содержимое условного блока

...