cjx2240 Posted March 23, 2017 Share Posted March 23, 2017 7 minutes ago, kongondo said: Glad you like the module @cjx2240. Do you mean if disabled menu item does not show in the frontend? What's the use case? Why not just not add that menu item? I don't follow. Please explain. Well, sometimes you just want to turn off a menu item, temporarily right? Like I have a client who wants to disable registrations in a few months. He can just delete it, but if he wants to put it back, then he has to get the right page and fill out (accurately) the css class again etc. And change type I mean, if I make a "Pages" menu item, but later I want to change the URL, or maybe make it external... I have to delete and remake. This is fine for me, but maybe less intuitive for some people. Basically, I am talking about things that you and I won't need, but an end-user of the CMS might Link to comment Share on other sites More sharing options...
kongondo Posted March 23, 2017 Author Share Posted March 23, 2017 I see. The change type might not be easy to pull off but will have a think. The en/dis-able, please file that as a request here. Thanks. Link to comment Share on other sites More sharing options...
Pixrael Posted March 23, 2017 Share Posted March 23, 2017 Hi kongondo, one question: the title of the page is always taken from the module? Because after creating the menu, I modified some page titles in pw by request of the client and the module continues printing the old title. Maybe I can use a var %s or something in the title input to tell the module that get it from the pw page. Link to comment Share on other sites More sharing options...
kongondo Posted March 23, 2017 Author Share Posted March 23, 2017 14 minutes ago, Pixrael said: Hi kongondo, one question: the title of the page is always taken from the module? Because after creating the menu, I modified some page titles in pw by request of the client and the module continues printing the old title. Maybe I can use a var %s or something in the title input to tell the module that get it from the pw page. Please see the 'default_title' option as documented here. Link to comment Share on other sites More sharing options...
Pixrael Posted March 23, 2017 Share Posted March 23, 2017 Ok, perfect! Thanks Link to comment Share on other sites More sharing options...
CodeCoffeeCode Posted April 19, 2017 Share Posted April 19, 2017 Hi Kongondo, I have been searching this support forum for an answer to my scenario for a while to no avail, and was hoping you could advise me on the following: Scenario: I have created a menu using MB with a structure similar to this: Menu Builder items: Home Page 1 Page 2 Page 3 Contact My problem: in the PW page tree ‘Page 1’ has 20-children. I don’t want to include the 20-children in MB. However, I want ‘Page 1’ to maintain the <li class=“active”> if I navigate to any of its 20 children. Question: Is it possible to keep ‘Page 1’ <li class=“active”>, without the children of ‘Page 1’ being included and output into the MB HTML? Link to comment Share on other sites More sharing options...
elabx Posted April 21, 2017 Share Posted April 21, 2017 On 4/19/2017 at 5:54 PM, CodeCoffeeCode said: Hi Kongondo, I have been searching this support forum for an answer to my scenario for a while to no avail, and was hoping you could advise me on the following: Scenario: I have created a menu using MB with a structure similar to this: Menu Builder items: Home Page 1 Page 2 Page 3 Contact My problem: in the PW page tree ‘Page 1’ has 20-children. I don’t want to include the 20-children in MB. However, I want ‘Page 1’ to maintain the <li class=“active”> if I navigate to any of its 20 children. Question: Is it possible to keep ‘Page 1’ <li class=“active”>, without the children of ‘Page 1’ being included and output into the MB HTML? I think you would need to work with the "custom render" solution as described here. 1 Link to comment Share on other sites More sharing options...
alan Posted April 25, 2017 Share Posted April 25, 2017 This is probably a basic question and I've failed to spot the answer in the docs, in which case, many apologies... Using an example such as example-recursive-function3.php is there an easy/built-in way of outputting only a portion of a deep menu, from part-way into that menu? I need a menu like: - food -- cheese -- fruit --- apples --- grapes - energy -- solar -- wind so at times I can output all of its items. But at other times I need to render only from say `fruit` down, e.g.: - fruit -- apples -- grapes Thanks in advance for any pointers Link to comment Share on other sites More sharing options...
Missariella Posted May 8, 2017 Share Posted May 8, 2017 On 11/23/2016 at 11:11 PM, Michael van Laar said: Anyone has a solution for multi-language menus with custom menu items? For pages localisation works using the default_title option. But this is not possible with custom menu items. And since the items’ title field is not a multi-language field, I have no idea how to solve this. But I’m probably not the first one stumbling over this. ;-) If not, I think I have an idea how to build a solution using nested repeater fields. You already find a solution for this? I came accros the same problem as i wanted to add custom anchor links. Thanks! Link to comment Share on other sites More sharing options...
Michael van Laar Posted May 9, 2017 Share Posted May 9, 2017 On 8.5.2017 at 4:50 AM, Missariella said: You already find a solution for this? I just used a Repeater field on a hidden “website config” page to create my own menu building tool with exactly the features I needed for that website, including using multi-language fields within the repeater. Link to comment Share on other sites More sharing options...
kongondo Posted July 10, 2017 Author Share Posted July 10, 2017 (edited) Update: Menu Builder Version 0.1.8. Changelog Added support to disable menu items + related (required for this) permission 'menu-builder-disable-items'. Thanks @cjx2240 Support not to show menu items (pages) not listable to current user. Needs option 'check_listable' => 1 in $options Array. Thanks @Peejay 'current_class' now also applies to Breadcrumbs as well. Thanks @Jonathan Lahijani Note Disabling a menu item cascades the status to all its descendants. In Build Menu view (backend), disabled items displayed with strike-through. Currently available in dev branch only. Please test and let me know, thanks. Screenshots Edited July 11, 2017 by kongondo 3 Link to comment Share on other sites More sharing options...
LMD Posted July 11, 2017 Share Posted July 11, 2017 Hi @kongondo - I'm still getting an issue with HTML in the menu item titles, where quoted attributes (e.g., class names, such as those used FontAwesome icons etc) get garbled in the title's input field. I did mention a very simple fix earlier in this topic, but it may have got overlooked. Would it be possible to apply this fix to the module: In the ProcessMenuBuilder.module file, on line #1158 (in the listMenu() menthod), surround the $title variable with the htmlentities() function: // Change line #1158 from: <input type="text" value="' . $title . '" name="item_title[' . $id . ']" class="menu_settings" id="item_title' . $id . '"> // To: <input type="text" value="' . htmlentities($title) . '" name="item_title[' . $id . ']" class="menu_settings" id="item_title' . $id . '"> It immediately fixes the HTML display issues witin the input field. Thanks. Link to comment Share on other sites More sharing options...
kongondo Posted July 11, 2017 Author Share Posted July 11, 2017 1 hour ago, LMD said: I'm still getting an issue with HTML in the menu item titles, where quoted attributes (e.g., class names, such as those used FontAwesome icons etc) get garbled in the title's input field. I did mention a very simple fix earlier in this topic, but it may have got overlooked. Would it be possible to apply this fix to the module: Hi @LMD. Sorry about that; forgot about it. Pushed a fix to the dev branch. Please check and let me know if it works for you. Thanks. Link to comment Share on other sites More sharing options...
kongondo Posted July 11, 2017 Author Share Posted July 11, 2017 On 2017-4-25 at 7:36 PM, alan said: This is probably a basic question and I've failed to spot the answer in the docs, in which case, many apologies... Using an example such as example-recursive-function3.php is there an easy/built-in way of outputting only a portion of a deep menu, from part-way into that menu? I need a menu like: - food -- cheese -- fruit --- apples --- grapes - energy -- solar -- wind so at times I can output all of its items. But at other times I need to render only from say `fruit` down, e.g.: - fruit -- apples -- grapes Thanks in advance for any pointers Hi @alan, Hope it's not too late to reply. Sorry I missed this! It is possible but the how would depend on the condition you want to check for to decide whether to output the whole menu or just part of it. There are at least two solutions: Using their IDs, remove unwanted menu items from the array or object returned by getMenuItems(). This would probably cost a bit more in memory, but probably nothing to write home about Modify the menu function in the gist you've linked to, to filter out IDs of unwanted items. It should suffice with creating an array of unwanted parent IDs. The, in the recursive function, check, for example if(in_array($m->parentID, $arrayOfParentIDs)) continue;. This is pseudo/incomplete code. You would also need to account for menu items without parents, etc. If you gave us more info (condition to check for), I can give you a more clear answer. 1 Link to comment Share on other sites More sharing options...
kongondo Posted July 11, 2017 Author Share Posted July 11, 2017 On 2017-4-19 at 11:54 PM, CodeCoffeeCode said: Hi Kongondo, I have been searching this support forum for an answer to my scenario for a while to no avail, and was hoping you could advise me on the following: Scenario: I have created a menu using MB with a structure similar to this: Menu Builder items: Home Page 1 Page 2 Page 3 Contact My problem: in the PW page tree ‘Page 1’ has 20-children. I don’t want to include the 20-children in MB. However, I want ‘Page 1’ to maintain the <li class=“active”> if I navigate to any of its 20 children. Question: Is it possible to keep ‘Page 1’ <li class=“active”>, without the children of ‘Page 1’ being included and output into the MB HTML? Sorry for late reply @CodeCoffeeCode, In addition to the suggestion to use the custom menu render strategy as suggested by @elabx, I think the options: include_children and current_class_level should also cover what you need. https://github.com/kongondo/MenuBuilder/tree/dev#options Please let me know if this solves your issue. Link to comment Share on other sites More sharing options...
kongondo Posted July 11, 2017 Author Share Posted July 11, 2017 On 2017-2-6 at 3:11 PM, Sahil said: I have few children pages under a parent page. i want to show that children page under two parents page in Main menu as well as in breadcrumbs. With the help of menu builder main menu show same childern page under both the parents, but Breadcrumbs follow the page tree structure. how can i get the expected result? Hi @Sahil, Sorry I never resolved this. It's difficult to give an answer without getting more information about your pages tree structure. Link to comment Share on other sites More sharing options...
kongondo Posted July 11, 2017 Author Share Posted July 11, 2017 On 2017-3-23 at 3:43 PM, cjx2240 said: Maybe a way to change a menu from one type to another? I think it should be easy enough to just create a new menu item, no? I see no easy way of automating this so will have to let the idea go. Link to comment Share on other sites More sharing options...
LMD Posted July 11, 2017 Share Posted July 11, 2017 3 hours ago, kongondo said: Pushed a fix to the dev branch. Please check and let me know if it works for you. Thanks. Thanks, @kongondo - the fix works perfectly. Link to comment Share on other sites More sharing options...
alan Posted July 11, 2017 Share Posted July 11, 2017 Thanks @kongondo for that The project has gone to sleep for a bit but I am hoping it will wake up soon and as soon as it does I will use your suggestions (thank you) and/or provide more info here. Cheers! -Alan Link to comment Share on other sites More sharing options...
kongondo Posted July 20, 2017 Author Share Posted July 20, 2017 (edited) Update: Menu Builder Version 0.1.9. Changelog Added support for multi-lingual menu items (both PW pages and custom ones)! Thanks @Michael van Laar for 'reminder'. Note Multilingual feature only applies to multi-lingual sites. You have to choose the languages you want for your menu items (in menu settings). Multi-lingual feature only applies to menu items. This means menu titles themselves remain as normal. The feature only applies to menu item title and URL If other language's item title or URL are left empty, in the frontend, these fallback to default language's title or URL respectively. This means, for other languages, you can have, for example, a German menu title but leave the German URL blank. In that case, assuming the default language is English, the German menu item will get the English URL. Currently available in dev branch only. Please test and let me know, thanks. Screenshots Backend Frontend Edited July 20, 2017 by kongondo 5 Link to comment Share on other sites More sharing options...
Mike Rockett Posted August 16, 2017 Share Posted August 16, 2017 Hi kongondo, I've bumped into this issue again, and still cannot see how to resolve it without rendering the menu through custom code. I need to have parents displayed (simple nav menu) without their children, but need to assign current_class to the parent when one of its children is currently open. This is for the newsroom part of the site I'm working with. I'm on the dev branch of MB. Is there no way to include an option like check_current_children on a local/global level so that it applies the current class even if the children are not listed? Or is there another really simple way of doing it? Thanks a ton! Link to comment Share on other sites More sharing options...
kongondo Posted August 23, 2017 Author Share Posted August 23, 2017 On 16/08/2017 at 4:15 PM, Mike Rockett said: Is there no way to include an option like check_current_children on a local/global level so that it applies the current class even if the children are not listed? Or is there another really simple way of doing it? Sorry for late response. I have managed to get this working via a new option. Currently testing to check it doesn't break anything. Hopefully will commit later this week. 1 Link to comment Share on other sites More sharing options...
Mike Rockett Posted August 23, 2017 Share Posted August 23, 2017 2 minutes ago, kongondo said: Sorry for late response. I have managed to get this working via a new option. Currently testing to check it doesn't break anything. Hopefully will commit later this week. No problem at all -- I'm sure you're quite a busy-bee. Thank you, looking forward to testing it. Link to comment Share on other sites More sharing options...
kongondo Posted August 24, 2017 Author Share Posted August 24, 2017 Update: Menu Builder Version 0.2.0. Changelog Modified 'current_class_level' option to apply 'current_class' to a menu item when viewing any of its descendant child pages (child, grandchild, etc.) in cases where those descendant pages are neither part of the menu nor included via 'include_children'. To enable this, set 'current_class_level' to '0'. Thanks @Mike Rockett for reviving this. Note I have tested this thoroughly but sometimes in Multilingual sites, depending on some conditions I am yet to pin down, the setting does not work properly. In such cases, using 'current_class_level' >= what you need does the trick. Please test and let me know. In dev branch for now. 2 Link to comment Share on other sites More sharing options...
Mike Rockett Posted August 25, 2017 Share Posted August 25, 2017 11 hours ago, kongondo said: Update: Menu Builder Version 0.2.0. Changelog Modified 'current_class_level' option to apply 'current_class' to a menu item when viewing any of its descendant child pages (child, grandchild, etc.) in cases where those descendant pages are neither part of the menu nor included via 'include_children'. To enable this, set 'current_class_level' to '0'. Thanks @Mike Rockett for reviving this. Note I have tested this thoroughly but sometimes in Multilingual sites, depending on some conditions I am yet to pin down, the setting does not work properly. In such cases, using 'current_class_level' >= what you need does the trick. Please test and let me know. In dev branch for now. Thank you! It does appear to work, but the root page is also assigned the current class when viewing any decsendant. This is my code: $view->siteNavigation = $menuBuilder->render('site-navigation', [ 'current_class' => 'here', 'menu_css_class' => 'menu-items', 'default_class' => 'menu-item', 'current_class_level' => 0, ]); And this is the output: <ul class="menu-items"> <li class="menu-item here"> <a href='/'>Home</a> </li> <li class="menu-item"> <a href='/about'>About</a> </li> <li class="menu-item"> <a href='/security'>Security</a> </li> <li class="menu-item"> <a href='/recycling-initiatives'>Recycling</a> </li> <li class="menu-item here"> <a href='/newsroom/'>Newsroom</a> </li> <li class="menu-item"> <a href='/contact-us'>Contact Us</a> </li> </ul> Is there no clean way to add an option to specific menu items that states "add current class here if an included / non-included descendant is current"? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now