Question

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!

Was it helpful?

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 :-)

OTHER TIPS

I use something similar to ax:

<tal:block define="global currentUrl request/getURL" condition="python: u'home' not in str(currentUrl)">

<!-- whatever -->

</tal:block>

how about something like <tal:condition="python: request.URLPATH0 == '/index_html' ...>`? see TALES Built-in Names and the Zope API Reference for more choices.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top