Part I
I created a 'static' navigation in my handlebar file for the header (header.hbs - below). I'd like to create this simple, one-level navigation using handlebars (which I'm new too currently). Also would like to add an "active" class based on the page the user is on.
<nav class="left">
<ul>
<li>Home</li>
<li>Products</li>
<li>Find Us</li>
</ul>
</nav>
Part II
I was able to get this working (see answer below). How does one achieve sort-order? Right now the links seem to be in random order.
I should have RTFM :)
There's a whole section in the FAQ for this exact thing, ha! Go figure.
{{#each pages }}
{{#is data.section "main"}}
<li{{#is ../../page.dest this.dest}} class="active"{{/is}}>
{{data.menutitle}}
</li>
{{/is}}
{{/each}}
http://assemble.io/docs/FAQ.html
Related
I am looking to get a custom WordPress nav output but I'm struggling to understand where to go with it.
At the moment, the default output for WordPress is this:
<ul>
<li>Link</li>
<li>Link
<ul><li>Link</li></ul>
</li>
</ul>
But what I need to output is the following:
<ul>
<li>Link</li>
<li>Link
<ul><div><span></span><li>Link</li><span></span></div></ul>
</li>
</ul>
Now I know there is the $before and $after in WordPress but unfortunately if you use this it adds it to every link rather than just the child li's that I want it to add them to.
I understand this would be done with using the custom walker method but to say I'm confused is an understatement! Can anyone point me in the right direction?
To modify the output HTML of the Wordpress menu you could use a walker script.
I'm not able to explain this in a simple way myself, but there are good tutorials out there.
As far as I know the default script that Wordpress uses looks like this, and you may with some reading and coding skills be able to create the walker you need from modifying this one with your preferred tags.
I want to display a contextual menu for example in the RedProducts section I want the menu to show:
RedProduct1
RedProduct2
etc, and also the same for BlueProducts, GreenProducts etc when they're selected.
Also it'd be great if these links can display a different class when they're selected. So for example:
<ul>
<li class="link"><a href="/redproduct1" >Red Product 1</a></li>
<li class="current"><a href="/redproduct2" >Red Product 2</a></li>
<li class="link"><a href="/redproduct3" >Red Product 3</a></li>
The Wordpress plugin "Advanced Menu Widget" now does this all for you, very quick and simple, took me ages to find it though.
Hope you are trying to do this. jsfiddle example.
This is how the "contextual menu" works. :) Simply hiding the sub menu and upon clicking the primary menu, it will open with the help of jQuery!
Just apply this to your WordPress menu. Don't forget to include the jQuery library.
I am making a site for a client and they would like a navigation item that has two words linking to two different places. The item is the last one, "twitter/facebook", to the right. Any ideas? http://pixinkdesign.com/clients1/TedX/
Thanks!
You can simply add the links to your template and style as required. They're not page of your site anyway so a simple link in the template should suffice.
Login to your admin panel and go to:
Appearance > Editor
and open up the Header.php file.
You'll see something like:
<ul id="menu">
<?php wp_list_pages('title_li='); ?>
</ul>
Which you can simply add to for your needs:
<ul id="menu">
<?php wp_list_pages('title_li='); ?>
<li>
Twitter
Facebook
</li>
</ul>
See this link for description in practice on Blog link on navigation bar
Have installed the following Blog link on navigation bar of a website all contents of which is contained within the file bcf_site. The Blog script including its index.php is in the bcf_blog file which is in the main site file. This arrangement works fine on the navigation bar with the link to the Blog page as follows.
<li>Blog</li>
To navigate back out of the Blog file back to the webpages requires following this path: default>themes>bcf_blog>bcf_site>relevant .html page link on the navigation.
How should the following site navigation be altered so as to facilitate return to the main site pages:
<div class="topnav">
<ol class="dropnav">
<li>Home</li>
<li>About
<ol>
<li>Community Forum</li>
<li>Administration Committee</li>
<li>Representative Committees</li>
<li>Working Groups</li>
</ol>
</li>
<li>Blog</li>
<li>Assets</li>
<li><a>Issues</a>
<ol>
<li>List 1</li>
<li>List 2</li>
</ol>
</li>
<li>LAPR</li>
<li>Contact</li>
<li>Links</li>
</ol>
</div>
Pfiew. It took me some time to struggle through your question, but my guess is that you just need to add ../ to all the links if you're in bcf_blog - in order to move up one level in the directory structure.
So:
<a href="index.html">
becomes
<a href="../index.html">
I'm trying to transform my primary link menu block in a jquery accordion menu (link text).
I've tested the Accordion Menu module for Drupal, but it does not function for me.
For my Primary Links Block I would have more or less this html output:
<ul id="accordion">
<li>
Recent Entries
<ul id="recent">
<li><span class="date">01.19.2009</span> Recent Entry Title</li>
<li><span class="date">01.15.2009</span> Recent Entry Title</li>
<li><span class="date">01.13.2009</span> Recent Entry Title</li>
<li><span class="date">01.11.2009</span> Recent Entry Title</li>
<li><span class="date">01.10.2009</span> Recent Entry Title</li>
</ul>
</li>
<li>
Recent Entries
</li>
<li>
Popular Entries
<ul id="popular">
<li><span class="date">08.16.2008</span> Popular Entry Title</li>
<li><span class="date">06.12.2008</span> Popular Entry Title</li>
<li><span class="date">04.12.2008</span> Popular Entry Title</li>
<li><span class="date">06.12.2007</span> Popular Entry Title</li>
<li><span class="date">03.12.2007</span> Popular Entry Title</li>
</ul>
</li>
<li>
Categories
<ul id="categories">
<li>Category Name <span class="count">7</span></li>
<li>Category Name <span class="count">4</span></li>
<li>Category Name <span class="count">15</span></li>
<li>Category Name <span class="count">29</span></li>
<li>Category Name <span class="count">8</span></li>
</ul>
</li>
</ul>
I have some primary links with child:
Territory
Map
Gallery
Products
Wine
Glasses
Contacts
Devel Themer Module says that I must override "theme_menu_item" function but I don't know how to proceed. Can I reach my goal only editing this function in the "template.php" file?
I'm sure that jQuery and jQuery UI are working well beacuse I've tested them with the above code in page.tpl.php.
Any ideas?
Thanks
Bye
EDIT
I've read a lot of docs and drupal forums, but I can't find a similar request. I can simply edit only primary links html without child using this code that add id tag to ul
function basic_menu_tree($tree) {
return '<ul id="accordion" class="menu">'. $tree .'</ul>';
}
The problem comes with child ul, in fact the above function add id="accordion" tag also on child ul with bad effect to jquery script
I want to customize only Primary Link menu block html and I can't believe there are no solutions...
Thanks
UPDATE
I've resolved using above function in template.php file and adding a header class through jquery script to primary link parents to setting jquery ui accordion header options (http://jqueryui.com/demos/accordion/#option-header)!
Bye
Overriding theme functions is the most basic thing done in themes.
Short version is, that if you create a function named [theme_name]_menu_item, that function will be used to generate the html instead of the default one: theme_menu_item. So yes this can be done in your template.php.
Note, the changes will affect all menu items, not just the ones in your primary link menu.
Long version
What's a problem to append jquery accordeon to standard primary menu output? There's everything you need for.