<ul id="navlist">
<li><a href="index.html" class="current_active">Home</a></li>
<li><a href="products.html">Products</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="contact.html">contact us</a></li>
</ul>
I have this snipped of html defined in the base template and all pages
inherit from it.
Currently I'm using this templatetag:
http://gnuvince.wordpress.com/2007/09/14/a-django-template-tag-for-the-current-active-page/
while it's very useful, I don't like it too much, so I'm asking you
what is the best practice here.
Thank you
> while it's very useful, I don't like it too much, so I'm asking you
> what is the best practice here.
I tend to do:
{% for page in page_list %}
<li><a href="{{ page.get_absolute_url }}"{% ifequal request.path
page.get_absolute_url %} class="current_active"{% endif %}>{{ page }}
</a></li>
{% endfor %}
But that obviously requires you to have a list of pages in your context.
--
David Reynolds
da...@reynoldsfamily.org.uk
I usually do that through a css switch on the body tag.
e.g.
base template: -----
<body id="section-{% block section %}home{% endblock %}">
<ul id="navlist">
<li id="nav-home"><a href="index.html">Home</a></li>
<li id="nav-products"><a href="products.html">Products</a></li>
<li id="nav-faq"><a href="faq.html">FAQ</a></li>
<li id="nav-contact"><a href="contact.html">contact us</a></li>
</ul>
</body>
css: -----
#section-home #nav-home a,
#section-products #nav-products a,
#section-faq #nav-faq a,
#section-contact #nav-contact a {
background-color: blue;
}
products template: -----
{% block section %}products{% endblock %}
faq template: -----
{% block section %}faq{% endblock %}
hth
Cheers
Steven
I don't understand why it's needs to be so complicated. When using a 'double' template inheritance, e.g: base > base_products > product_add
There's only one place where you have to maintain some navlist html/css code. This is where the 'active' attribute is maintained. So with multiple sections like: product, customer, invoices youre hierarchy looks like this:
base.html
base_product.html (extends base.html)
product_add.html (extends base_product.html)
base_customer.html
etc ...
base_invoice.html
etc ...
This comes straight from the docs: http://docs.djangoproject.com/en/dev/topics/templates/#id1
(See 'base_SECTIONNAME.html' about two screens down from there)
I personally dont' see the needs for loops and extra code. Or is my app to simple ... :-)
Regards,
Gerard.
--
urls = { 'fun': 'www.zonderbroodje.nl', 'tech': 'www.gp-net.nl' }
Sorry, I replied to the wrong message in this thread. Your setup is actually quite charming.
Regards,
Gerard.
--
Thank you very much for your time
As the docs state, you can place code in a {% block [name] %} and it gets overwritten when another template has that block defined. This is the base.html: http://paste.pocoo.org/show/87935/
This is a subnavigation with a different active 'tab' in the navigation bar called base_product.html: http://paste.pocoo.org/show/87936/
As you can see the second overwrites the navbar, and they both have the 'content' block. So when you have content in a sub page for the order 'tab', you define the actual content in another file that looks like this:
http://paste.pocoo.org/show/87937/
And so the relation is: base.html > base_order.html > order_detail.html
Resulting in this: http://paste.pocoo.org/show/87938/
Then in your CSS file you can give the active li a different color.
Hope it helps!
Regards,
Gerard.