#liferay #web-content
#liferay #веб-контент
Вопрос:
Как вы можете выбрать конкретные динамические элементы, которые будут отображаться на абстрактном дисплее? Например, если в моем шаблоне есть следующее
<td>Sample Text</td>
<td>$sample-text.data</td>
<td>Display Text</td>
<td>$display-text.data</td>
Как я могу заставить абстрактный дисплей отображать только отображаемый текст, а не оба?
Извините, позвольте мне попытаться прояснить это. У издателя ресурсов есть веб-контент (раньше это был журнал). Веб-контент имеет разные способы отображения статей. У них есть таблица, список заголовков, аннотация и полное содержимое. Если я использую отображение аннотации, а пользователь ввел аннотацию, отображаются заголовок и аннотация. Если аннотация не указана, то отображаются заголовок и краткое содержание. Сводка состоит из динамических элементов. Мой вопрос действительно сводится к тому, как я могу заставить абстрактное представление отображать только выбранные элементы из сводки. Сводка получается с помощью
String summary = StringUtil.shorten(assetRenderer.getSummary(locale), abstractLength);
который находится в файле abstracts.jsp.
Ответ №1:
Ваш вопрос сбивает с толку, поэтому я расскажу о нескольких вещах.
Шаблон веб-контента Liferay поддерживает несколько языков шаблонов, из которых я лично предпочитаю Velocity Macros (VM).
-
Если вы не хотите показывать $sample-text.data, просто удалите строку кода, которая его отображает! В частности, удалите эту строку:
<td>$sample-text.data</td>
-
Если вы пытаетесь управлять отображением на основе какого-либо условия, виртуальная машина поддерживает условные обозначения. Вы можете реализовать их просто так:
#if ($sample-text.data != null) <td>$sample-text.data</td> #end
Вы можете найти полную документацию по Velocity здесь: http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html