Kornel, Thank you for the input on the macro parsing. I'm not sure what I did wrong the last time I tried, but I was able fix up my prefilter to successfully pull out the metal attributes.
Darrell Hamilton, Software Developer, 4over, Inc darre...@4over.com 818-246-1170 ext. 285 2011/8/19 Kornel Lesiński <kor...@geekhood.net> > On Fri, 19 Aug 2011 07:08:22 +0100, Darrell Hamilton <darre...@4over.com> > wrote: > > Even with a tool like PHPTAL, the array templates for extremely dynamic >> sites can become difficult to manage, from a designer's point of view. >> So, my thought was to use prefilters to modify the rendered markup, dumping >> information about the original tal markup. Then, adding a javascript >> based (greasemonkey maybe?) inspection tool that would reveal things such as >> "what translation key generated this block of text" or "what macro did this >> block of html come from", giving designers, even developers, the ability to >> simply look at the site and click on the region they want to modify and be >> told >> exactly where to find it's source. >> > > That's a cool idea! > > I think it could be easily implemented by modifying PHPTAL to leave TAL > attributes in the generated markup. > > > In Element.php in separateAttributes() > > } else if ($this->xmlns->**isHandledNamespace($attr->**getNamespaceURI())) > { > $talAttributes[$attr->**getQualifiedName()] = $attr; > $attr->hide(); > } > > if you remove $attr->hide(), then PHPTAL attributes will remain in the > document. > > > > Anyway, the i18n attributes were easy to deal with using a prefilter; >> however, I came to find by the time the prefilters are triggered, all >> macros have been evaluated and placed inline, making it impossible to >> determine >> what macro each block of markup belongs to. >> > > No, macros are not inlined at compile time. Macro definitions are changed > into functions: metal:define-macro creates function definition, > metal:use-macro is a function call. If macro is in another template, then > that template is loaded at run time as a separate file in a new PHPTAL > object. > > Anyway, prefilters are given access to template as-is, before PHPTAL starts > messing with it. > > > -- > regards, Kornel > > ______________________________**_________________ > PHPTAL mailing list > PHPTAL@lists.motion-twin.com > http://lists.motion-twin.com/**mailman/listinfo/phptal<http://lists.motion-twin.com/mailman/listinfo/phptal> >
_______________________________________________ PHPTAL mailing list PHPTAL@lists.motion-twin.com http://lists.motion-twin.com/mailman/listinfo/phptal