Добавить ограничение повторяемости динамического элемента в структуру Liferay.

Я создаю структуру и шаблон в Liferay 6.2 и хочу добавить ограничение на количество повторений.

Атрибут «повторяемый» может иметь только значение «истина» или «ложь».

Структура :

<root>
  <dynamic-element index-type="text" name="names" repeatable="true" type="text">
    <dynamic-element index-type="" name="" repeatable="false" type="text"> </dynamic-element>
  </dynamic-element>
</root>

Шаблон

#foreach ($communityname IN $names.getSiblings())
       $communityname.getData()  

 #end

</div>

person wikimix    schedule 15.12.2014    source источник


Ответы (1)


К сожалению, Liferay по умолчанию не дает возможности ограничивать повторяющиеся поля в структурах (да, я тоже был удивлен). Поэтому либо вы должны принять их, либо просто создать несколько полей, присвоив им суффикс, а затем выполнить итерацию по ним одним из способов:

Если вы убедитесь, что все они находятся в виде контейнера, например, родительское поле структуры имеет дочерний элемент1, дочерний элемент2, дочерний элемент3 и ничего другого, вы можете просто использовать:

#foreach ($communityname IN $namesParent.getChildren())
       $communityname.getData()  
#end

Если в родительском поле есть также другое поле, кроме тех, которые вы хотите повторить, я предлагаю использовать диапазон и перебирать дочерние элементы, используя его в цикле.

#set($range = [1..5])
person tomic    schedule 16.12.2014