使用PHPTAL将多个类分配给一个标记


Assigning multiple classes to a tag using PHPTAL

我有一个数据数组,我想使用PHPTAL(easy)作为UL输出,该数组提供了类属性(easy。。。同时(艰难)。

Ie。我想合并:

<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来做。这可能吗?怎样

不,这方面没有纯粹的谈资。

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

这是一个相当古老的线程,但因为没有人提到它:"更干净"的方法可能是通过自定义修饰符。(http://phptal.org/manual/en/split/custom-modifiers.html)。然后你可以有:

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

作为一个好处,您可以在其他元素中重用它,因为它似乎是一个非常通用的习惯用法。