Re: [Cppcms-users] Navigation template - Set "active" on corresponding entry
Brought to you by:
artyom-beilis
From: <jo...@em...> - 2020-10-13 10:15:34
|
This works very well. Thank you a lot! Please keep up the good work with CppCMS. I know that I’m fairly late to the party but I really hope that this framework will continue to develop and live a long & healthy life! Best regards, ~ Joel From: Artyom Beilis <art...@gm...> Sent: Tuesday, 13 October 2020 11:32 To: cpp...@li... Subject: Re: [Cppcms-users] Navigation template - Set "active" on corresponding entry I assume you have several templates derived from base one that provide different page_content You can also short template home_class, news_class and include it from sidebar <a <% include home_class() %> href='<% url "/" %>'>Home</a> <a <% include news_class() %> href='<% url "/news" %>'>News</a> <a <% include users_class() %> href='<% url "/users" %>'>Users</a> Define these templates in master as empty <% template home_class() %><% end template %> <% template news_class() %><% end template %> ... Now at the level of the implementation of Home template derived from master override the home class <% template home_class() %>class="active" <% end template %> It is little bit long but most generic and does not require from you to modify C++ code. Artyom On Mon, Oct 12, 2020 at 11:27 PM <jo...@em... <mailto:jo...@em...> > wrote: Hi guys! I started evaluating CppCMS for a project a few days ago. Right now I am trying to build a very simple user management back-end as a proof of concept. I am implementing a simple portal using CppCMS. The master page has a simple sidebar for navigational purposes based on the W3C example (https://www.w3schools.com/howto/howto_css_sidebar_responsive.asp). My master template looks like this (mainly the sidebar template is of interest): <% c++ #include "data/content.hpp" %> <% skin defskin %> <% view master uses content::master %> <% template title() %> <%= title %> <% end template %> <% template page_content() %> Override Me <% end template %> <% template sidebar() %> <div class="sidebar"> <a class="active" href='<% url "/" %>'>Home</a> <a href='<% url "/news" %>'>News</a> <a href='<% url "/users" %>'>Users</a> </div> <% end template %> <% template render() %> <html> <head> <link rel="stylesheet" href="/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><% include title() %></title> </head> <body> <% include sidebar() %> <div class="content"> <h1><% include title() %></h1> <% include page_content() %> </div> </body> </html> <% end template %> <% end view %> <% end skin %> What is the appropriate/recommended way of setting the class="active" attribute for the URL of the current view/page? Is there a mechanism in the template engine that allows me to set the attribute on the appropriate menu item in the master template? Note: I've posted this also on GitHub issues but by now I figured I might have more luck here. Best regards, ~ Joel _______________________________________________ Cppcms-users mailing list Cpp...@li... <mailto:Cpp...@li...> https://lists.sourceforge.net/lists/listinfo/cppcms-users |