TYPO3 EXT: Система новостей, Ключ: новости - Gridview.

Я использую TYPO3 v. 6.1 FLUID/EXTBASE.

С расширением: Система новостей, Ключ: новости.

На странице list.html, которая показывает все новости, я могу добавить макет UL/LI, если я в настройках выбрал отображение 6 новостей/сайтов.

Возможно ли тогда на странице list.html сказать, что:

LI 1 нужен стиль

style="position: absolute; left: 0px; top: 0px; height: 258px; transform: translate(0px, 0px);"

LI 2 нужен стиль

style="position: absolute; left: 0px; top: 0px; height: 258px; transform: translate(279px, 0px);"

LI 3 нужен стиль

style="position: absolute; left: 0px; top: 0px; height: 258px; transform: translate(558px, 0px);"

... к ЛИ 6, все ли не имеют номера, но здесь я исх. на 6 новостей/сайтов, которые я установил в настройках.

так что я могу сделать gridview из 6 новостей в 2 строки, с 3 столбцами?


person Thomas Bøg Petersen    schedule 03.12.2013    source источник


Ответы (2)


Вы можете использовать итерацию в каждом viewhelper, например

<f:for each="{news}" as="newsItem" iteration="iterator">
    <f:if condition="{iterator.index} == 1">...</f:if>
        <li class="first-item"></li>
    </f:if>
    <f:if condition="{iterator.index} == 2">...</f:if>
        <li class="second-item"></li>
    </f:if>
</f:for>

но вы должны добавить эти условия ко всем элементам. иначе вы можете использовать Cycle-ViewHelper для определения таких столбцов:

<f:for each="{news}" as="newsItem">
  <f:cycle values="{0: 1, 1: 2, 2: 3}" as="cycle">
    <f:if condition="{cycle} == 1">...</f:if>
        <li class="col-1"></li>
    </f:if>
    <f:if condition="{cycle} == 2">...</f:if>
        <li class="col-2"></li>
    </f:if>
    <f:if condition="{cycle} == 2">...</f:if>
        <li class="col-2"></li>
    </f:if>
  </f:cycle>
</f:for>

здесь вам просто нужно добавить условия в каждый столбец. я бы добавил только классы по условию, а не весь li-тег, но код выше, я думаю, лучше читать.

<f:for each="{news}" as="newsItem" iteration="iterator">
    <li class="{f:if(condition: "{iterator.index} == 1", then: 'first-class')} {f:if(condition: "{iterator.index} == 2", then: 'second-class')}">

    </li>   
</f:for>
person hildende    schedule 03.12.2013
comment
Итак, здесь я просто делаю цикл для 6 значений, и тогда он будет работать для страницы xx, пока у меня есть 6 новостей на них, если мне нужно 9 новостей, тогда мне нужно изменить цикл, чтобы обработать 9 значений.. ..это правильно понял. - person Thomas Bøg Petersen; 03.12.2013

Выполнение начинается с 0, так что это будет похоже на...

<f:for each="{news}" as="newsItem" iteration="iterator">
<f:if condition="{iterator.index} == 0">...</f:if>
    <li class="first-item"></li>
</f:if>
<f:if condition="{iterator.index} == 1">...</f:if>
    <li class="second-item"></li>
</f:if>
</f:for>
person Maulik Bhojani    schedule 30.01.2014