Search code examples
pythonplonezopetemplate-talzpt

How do I check if it's the homepage in a Plone website using ZPT?


I want to change my website's header only it if's not the homepage. Is there a tal:condition expression for that?

I've been reading this and can't find what I'm looking for...

thanks!


Solution

  • The best way is to use two really handy plone views that are intended just for this purpose. The interface that defines them is at https://svn.plone.org/svn/plone/plone.app.layout/trunk/plone/app/layout/globals/interfaces.py, in case you want to check it out.

    <tal:block
       tal:define="our_url context/@@plone_context_state/canonical_object_url;
                   home_url context/@@plone_portal_state/portal_url;"
       tal:condition="python:our_url == home_url">
    HERE GOES YOUR STUFF
    </tal:block>
    

    The great thing about @@plone_context_state and @@plone_portal_state is that they handle all sorts of weird edge cases. context/@@plone_context_state/canonical_object_url also returns the right, most basic, object's url even when you're viewing the default page in the portal root with a query string appended :-)