Re: [PHPTAL] Conditional class-attribute
Kornel Lesiński wrote: on 08.09.2008 16:02: On 08-09-2008 at 14:53:10 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: Session The trim() is not neccessary - spaces around "." are just part of syntax and are not added to the string. Currently this code might create "actlast" classs. If that's not what you wanted, then change 'last' to ' last' and optionally keep trim() (HTML ignores superfluous spaces in class attribute, so it's just aesthetical matter). Yes, that trim() is just for aesthetical reasons. Good catch and your solution is what I had here (but on 'act ', with a space-suffix). Cheers, Ernesto ___ PHPTAL mailing list PHPTAL@lists.motion-twin.com http://lists.motion-twin.com/mailman/listinfo/phptal
Re: [PHPTAL] Conditional class-attribute
On 08-09-2008 at 14:53:10 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: Session The trim() is not neccessary - spaces around "." are just part of syntax and are not added to the string. Currently this code might create "actlast" classs. If that's not what you wanted, then change 'last' to ' last' and optionally keep trim() (HTML ignores superfluous spaces in class attribute, so it's just aesthetical matter). -- regards, Kornel ___ PHPTAL mailing list PHPTAL@lists.motion-twin.com http://lists.motion-twin.com/mailman/listinfo/phptal
Re: [PHPTAL] Conditional class-attribute
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: Session http://phptal.motion-twin.com/manual/en/split/ar05s07.html#tales-php or you can use the ${} syntax: 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 PHPTAL@lists.motion-twin.com http://lists.motion-twin.com/mailman/listinfo/phptal
Re: [PHPTAL] Conditional class-attribute
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')" http://phptal.motion-twin.com/manual/en/split/ar05s07.html#tales-php or you can use the ${} syntax: 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 -- regards, Kornel ___ PHPTAL mailing list PHPTAL@lists.motion-twin.com http://lists.motion-twin.com/mailman/listinfo/phptal