Hi Kornel,
Kornel Lesiński wrote: on 08.09.2008 15:29:
On 08-09-2008 at 12:27:50 Ernesto Baschny [cron IT] <[EMAIL PROTECTED]>
wrote:
I could try some nested "?" expressions, but this turns out to be
quite ugly, e.g. if I would have more than 2 classes to set
You can concatenate strings in php: expressions - just add spaces
around ".", i.e.:
tal:attributes="class php:(a?'b':'c') . (d?' e':' f')"
Cool tip! I had already tried the "." concatenation but got no results,
because of the missing spaces around the ".". Not I got it working,
current looks like:
<div tal:repeat="session sessions" tal:omit-tag="true">
<tal:block tal:define="currentClass php:session.isCurrent()
? 'act' : ''; lastClass php:repeat.session.end ? 'last' : ''">
<li tal:attributes="id
string:tab-session-${session/getId}; class php:trim(currentClass .
lastClass)"><a href="#" tal:content="session/getName">Session</a></li>
</tal:block>
</div>
http://phptal.motion-twin.com/manual/en/split/ar05s07.html#tales-php
or you can use the ${} syntax:
<li class="${php:...} ${php:...}">
That is true, and even looks a lot Smarty-ish. :)
alternatively, if you work with such classes a lot, you can make
syntax nicer by writing your own expression modifier:
tal:attributes="class my_classes:repeat.item"
and create:
function ($argument,$nothrow)
{
return
'php_function_to_execute_when_template_runs('.phptal_tales($argument,$nothrow).')';
}
http://phptal.motion-twin.com/manual/en/split/ar06s08.html
Indeed also a good suggestion, will keep that concept in mind when
developing further.
Thanks a lot for your time and hints! I will keep up following this list.
Cheers,
Ernesto
_______________________________________________
PHPTAL mailing list
[email protected]
http://lists.motion-twin.com/mailman/listinfo/phptal