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";>
<html>
<head>
....
</head>
<body>
<div tal:replace="plugin/get_promoters/page_id/10/orientation/1/loads" />
</body>
</html>

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">
       <li>teste</li>
    </ul>
</tal:block>

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
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal

Reply via email to