Re: [Cppcms-users] Navigation template - Set "active" on corresponding entry
Brought to you by:
artyom-beilis
From: Artyom B. <art...@gm...> - 2020-10-13 09:43:19
|
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...> 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... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |