On 02-09-2009 at 10:39:11 Murat Çorlu <muratco...@gmail.com> wrote:

We have a problem. We have a master page and a plugin simulation that renders some another templates to called from. For example;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<div tal:replace="plugin/get_promoters/page_id/10/orientation/1/loads" />

plugin is an object that has a getter magic function. It handles that parameters and execute-return another template like this:

<tal:block tal:condition="php: orientation==2">
    <ul class="thumbView verticalPromoters">

When we ran this, PHPTAL adds a DOCTYPE tag more to infront of second template. I didn't understand the problem. Can you give a suggestion?

DOCTYPE and XML declaration are stored in PHPTAL's execution context (like a global variable that's prepended to all output) to allow subpages without DOCTYPE to call external macro that defines page layout and adds DOCTYPE, and you've caught PHPTAL red-handed by calling execute() on PHPTAL instance that has already seen a DOCTYPE.

I've added workaround for it in SVN. Try it out:
svn co https://svn.motion-twin.com/phptal/trunk phptal

Consider using more TAL-friendly macros, something like:

<div metal:use-macro="plugins.xhtml/promoters" tal:define="page_id '10'; orientation '1'"/>

regards, Kornel

PHPTAL mailing list

Reply via email to