2012-07-12 3 views
1

У меня есть массив данных, которые я хочу выводить как UL, используя PHPTAL (легко) с атрибутами класса, предоставляемыми массивом (легко), атрибутом класса для первого и для последнего элемента (легко) ... все одновременно (жестко).Назначение нескольких классов тегу с использованием PHPTAL

Т.е. Я хочу объединить:

<ul tal:repeat="item items"> 
    <li class="${item/class}">${item/text}</li> 
</ul> 

с этим

<ul tal:repeat="item items"> 
    <li tal:attributes="class repeat/item/first 'first'">${item/text}</li> 
</ul> 

и это

<ul tal:repeat="item items"> 
    <li tal:attributes="class repeat/item/last 'last'">${item/text}</li> 
</ul> 

Это чисто презентационный материал, так что я предпочел бы сделать это исключительно в PHPTAL. Это возможно? Как?

+0

Ссылка на документацию: http://phptal.org/manual/en/split/ –

+0

@ UgoMéda: был там, читал, что все еще не мудрее. Возможно, вы могли бы ссылаться на соответствующий раздел, например. http://phptal.org/manual/en/split/tal-attributes.html - который не отвечает на вопрос BTW. –

+0

Я просто добавлял это для удобного доступа для помощников. Не могу помочь тебе больше, извините. –

ответ

1

Нет, для этого нет чистых TALES.

<li tal:attributes="class php:repeat.item.last ? 'last' 
          : (repeat.item.first ? 'first' : NULL)"> 
+0

Aha! Вложенный, если человек, не думал о них целую вечность. Должен работать, хотя так большое спасибо. :-) –

1

Это довольно старая нить, но поскольку никто не упомянул об этом: путь «чище», вероятно, зависит от настраиваемого модификатора. (http://phptal.org/manual/en/split/custom-modifiers.html). Тогда вы могли бы:

<li tal:attributes="class css-ordinal:repeat.item"> 

и как благо, можно повторно использовать в других элементах, как это кажется довольно общий идиома.

Смежные вопросы