Я создаю набор пользовательских структур (и соответствующих шаблонов) для отображения веб-контента на сайте Liferay.
Чтобы сделать вещи более удобными для тех, кто поддерживает сайт, я хотел бы, чтобы один из этих шаблонов подавлял границы внешнего вида по умолчанию.
Я нашел в Интернете документацию и примеры, показывающие, как отключить границы для портлетов, встроенных в тему, но мне не удалось применить эти методы в шаблоне WCD.
Вот код, который я видел встроенным в тему:
#set ($VOID = $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false"))
#set ($VOID = $theme.runtime("customportletname_WAR_pluginname", "", $velocityPortletPreferences.toString()))
$velocityPortletPreferences.reset()
Вот как я применил его к своему шаблону:
#set ($VOID = $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false"))
<div class="custom-wcd wcdnormal">
<h2>$title.getData()</h2>
$content.getData()
</div>
$velocityPortletPreferences.reset()
Я не удивлен, что это не сработало — нет ничего аналогичного вызову $theme.runtime, который применяет настройки к портлету, но я также не знаю, подходит ли $theme.runtime на этом уровне, и если да, то какое значение указать в качестве первого аргумента. Я подозреваю, что последний вариант является наиболее вероятной альтернативой, но я не знаю, как идентифицировать портлет WCD для $theme.runtime, а также не знаю, как отследить эту информацию (я ни в коей мере не являюсь разработчиком Java) .
И просто поясню: не приемлемо отключить границы для всех портлетов по умолчанию, и я не могу модифицировать контроллер Java, который использует компоненты журнальных статей во время рендеринга.
Любые советы приветствуются.