cjx2240 Posted March 23, 2017 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
kongondo Posted March 23, 2017 Author 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.
Pixrael Posted March 23, 2017 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.
kongondo Posted March 23, 2017 Author 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.
CodeCoffeeCode Posted April 19, 2017 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?
elabx Posted April 21, 2017 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
alan Posted April 25, 2017 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
Missariella Posted May 8, 2017 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!
Michael van Laar Posted May 9, 2017 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.
kongondo Posted July 10, 2017 Author 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
LMD Posted July 11, 2017 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.
kongondo Posted July 11, 2017 Author 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.
kongondo Posted July 11, 2017 Author 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
kongondo Posted July 11, 2017 Author 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.
kongondo Posted July 11, 2017 Author 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.
kongondo Posted July 11, 2017 Author 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.
LMD Posted July 11, 2017 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.
alan Posted July 11, 2017 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
kongondo Posted July 20, 2017 Author 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
Mike Rockett Posted August 16, 2017 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!
kongondo Posted August 23, 2017 Author 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
Mike Rockett Posted August 23, 2017 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.
kongondo Posted August 24, 2017 Author 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
Mike Rockett Posted August 25, 2017 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"?
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