<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/index.php?action=history&amp;feed=atom&amp;title=Menu_Builder_%28ProcessWire%29</id>
	<title>Menu Builder (ProcessWire) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/index.php?action=history&amp;feed=atom&amp;title=Menu_Builder_%28ProcessWire%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Menu_Builder_(ProcessWire)&amp;action=history"/>
	<updated>2026-05-06T16:37:47Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikizone</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Menu_Builder_(ProcessWire)&amp;diff=23812&amp;oldid=prev</id>
		<title>37.49.72.8: Die Seite wurde neu angelegt: „ProcessMenuBuilder   https://modules.processwire.com/modules/process-menu-builder/  https://gist.github.com/kongondo/a478e2a9274fc29f5d7cdb93a8166989  == Quick…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Menu_Builder_(ProcessWire)&amp;diff=23812&amp;oldid=prev"/>
		<updated>2019-04-15T13:01:09Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ProcessMenuBuilder   https://modules.processwire.com/modules/process-menu-builder/  https://gist.github.com/kongondo/a478e2a9274fc29f5d7cdb93a8166989  == Quick…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;ProcessMenuBuilder&lt;br /&gt;
&lt;br /&gt;
 https://modules.processwire.com/modules/process-menu-builder/&lt;br /&gt;
 https://gist.github.com/kongondo/a478e2a9274fc29f5d7cdb93a8166989&lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
&lt;br /&gt;
=== Menüs erstellen ===&lt;br /&gt;
 Setup &amp;gt; Menu Builder&lt;br /&gt;
&lt;br /&gt;
=== Menüs im Frontend ausgeben ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// load the module&lt;br /&gt;
$menu = $modules-&amp;gt;get(&amp;#039;MarkupMenuBuilder&amp;#039;);// $menu is an example&lt;br /&gt;
/**you can render by menu Page object, name, title, id or properly formatted array of menu items**/&lt;br /&gt;
// render by name, title or id&lt;br /&gt;
echo $menu-&amp;gt;render(&amp;#039;Title of Your Menu&amp;#039;);// render the menu by title&lt;br /&gt;
echo $menu-&amp;gt;render(&amp;#039;name-of-your-menu&amp;#039;);// render the menu by name&lt;br /&gt;
echo $menu-&amp;gt;render(&amp;#039;1234&amp;#039;);//render by ID&lt;br /&gt;
// render by passing a Page object&lt;br /&gt;
$m = $pages-&amp;gt;get(1234);&lt;br /&gt;
echo $menu-&amp;gt;render($m);//render by Page object&lt;br /&gt;
// render by passing an array&lt;br /&gt;
// get the Menu Builder field menu_items for this menu. That is where your menu items JSON string is stored&lt;br /&gt;
$json = $pages-&amp;gt;get(1234)-&amp;gt;menu_items;&lt;br /&gt;
// convert the JSON string to an array. Here we assume the JSON string is not empty&lt;br /&gt;
$array = json_decode($json, true);&lt;br /&gt;
echo $menu-&amp;gt;render($array);//render by array&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can render additional menus as well, e.g.&lt;br /&gt;
&lt;br /&gt;
 echo $menu-&amp;gt;render(&amp;#039;sidenav&amp;#039;);&lt;br /&gt;
You can additionally pass CSS class/id options to the method. See above for available options.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$options = array(&lt;br /&gt;
	&amp;#039;has_children_class&amp;#039; =&amp;gt; &amp;#039;has_children&amp;#039;,&lt;br /&gt;
	&amp;#039;current_class&amp;#039; =&amp;gt; &amp;#039;current&amp;#039;,&lt;br /&gt;
	&amp;#039;menu_css_id&amp;#039; =&amp;gt; &amp;#039;main&amp;#039;,&lt;br /&gt;
	&amp;#039;menu_css_class&amp;#039; =&amp;gt; &amp;#039;nav&amp;#039;,&lt;br /&gt;
);&lt;br /&gt;
echo $menu-&amp;gt;render(&amp;#039;sidenav&amp;#039;, $options);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== render() ==&lt;br /&gt;
 render($menu, $options);&lt;br /&gt;
 $menu ist ein Seitenobjekt oder der Titel, Name oder die ID eines Menüs&lt;br /&gt;
 $options ist optional&lt;br /&gt;
&lt;br /&gt;
=== Default Options ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$defaultOptions = array(&lt;br /&gt;
	&amp;#039;wrapper_list_type&amp;#039; =&amp;gt; &amp;#039;ul&amp;#039;,// ul, ol, nav, div, etc.&lt;br /&gt;
	&amp;#039;list_type&amp;#039; =&amp;gt; &amp;#039;li&amp;#039;,// li, a, span, etc.&lt;br /&gt;
	&amp;#039;menu_css_id&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,// a CSS ID for the menu&lt;br /&gt;
	&amp;#039;menu_css_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,// a CSS Class for the menu&lt;br /&gt;
	&amp;#039;submenu_css_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,// CSS Class for sub-menus&lt;br /&gt;
	&amp;#039;has_children_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,// CSS Class for any menu item that has children&lt;br /&gt;
	&amp;#039;first_class&amp;#039;=&amp;gt;&amp;#039;&amp;#039;,// CSS Class for the first item in&lt;br /&gt;
	&amp;#039;last_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,&lt;br /&gt;
	&amp;#039;current_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,&lt;br /&gt;
	&amp;#039;default_title&amp;#039; =&amp;gt; 0,// 0=show saved titles;1=show actual/current titles&lt;br /&gt;
	&amp;#039;include_children&amp;#039; =&amp;gt; 4,// show &amp;#039;natural&amp;#039; MB non-native descendant items as part of navigation&lt;br /&gt;
	&amp;#039;m_max_level&amp;#039; =&amp;gt; 1,// how deep to fetch &amp;#039;include_children&amp;#039;&lt;br /&gt;
	&amp;#039;current_class_level&amp;#039; =&amp;gt; 1,// how high up the ancestral tree to apply &amp;#039;current_class&amp;#039;&lt;br /&gt;
	&amp;#039;default_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,// a CSS class to apply to all menu items&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== renderBreadcrumbs (Breadcrumb Menü) ==&lt;br /&gt;
&lt;br /&gt;
 renderBreadcrumbs($menu, $options);&lt;br /&gt;
=== Breadcrumb Default Options ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$defaultOptions = array(&lt;br /&gt;
	&amp;#039;wrapper_list_type&amp;#039; =&amp;gt; &amp;#039;ul&amp;#039;,// ul, ol, nav, div, etc.&lt;br /&gt;
	&amp;#039;list_type&amp;#039; =&amp;gt; &amp;#039;li&amp;#039;,// li, a, span, etc.&lt;br /&gt;
	&amp;#039;menu_css_id&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,&lt;br /&gt;
	&amp;#039;menu_css_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,&lt;br /&gt;
	&amp;#039;current_css_id&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,&lt;br /&gt;
	&amp;#039;current_class&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,&lt;br /&gt;
	&amp;#039;divider&amp;#039; =&amp;gt; &amp;#039;&amp;amp;raquo;&amp;#039;,// e.g. Home &amp;gt;&amp;gt; About Us &amp;gt;&amp;gt; Leadership&lt;br /&gt;
	// prepend home page at the as topmost item even if it isn&amp;#039;t part of the breadcrumb&lt;br /&gt;
	&amp;#039;prepend_home&amp;#039; =&amp;gt; 0,// 0=no;1=yes&lt;br /&gt;
	&amp;#039;default_title&amp;#039; =&amp;gt; 0,// 0=show saved titles;1=show actual/current titles&lt;br /&gt;
	&amp;#039;include_children&amp;#039; =&amp;gt; 4,// show &amp;#039;natural&amp;#039; MB non-native descendant items as part of navigation&lt;br /&gt;
	&amp;#039;b_max_level&amp;#039; =&amp;gt; 1,// how deep to fetch &amp;#039;include_children&amp;#039;&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Komplexe Menüs mit getMenuItems() ==&lt;br /&gt;
&lt;br /&gt;
 getMenuItems($menu, $type, $options);&lt;br /&gt;
 // $type 1 will return an array and one of 2 (the default) will return a WireArray Menu &lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Breadcrumb ===&lt;br /&gt;
Rendering Breadcrumbs&lt;br /&gt;
Rendering breadcrumbs is quite similar to the above, the only difference being the method you use and some of the options that can be used to configure the output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// load the module&lt;br /&gt;
$menu = $modules-&amp;gt;get(&amp;#039;MarkupMenuBuilder&amp;#039;);// $menu is an example&lt;br /&gt;
/**you can render by menu Page object, name, title, id or properly formatted array of menu items**/&lt;br /&gt;
// render by name, title or id&lt;br /&gt;
echo $menu-&amp;gt;renderBreadcrumbs(&amp;#039;Title of Your Menu&amp;#039;);// render the menu by title&lt;br /&gt;
echo $menu-&amp;gt;renderBreadcrumbs(&amp;#039;name-of-your-menu&amp;#039;);// render the menu by name&lt;br /&gt;
echo $menu-&amp;gt;renderBreadcrumbs(&amp;#039;1234&amp;#039;);// render by ID&lt;br /&gt;
// render by passing a Page object&lt;br /&gt;
$m = $pages-&amp;gt;get(1234);&lt;br /&gt;
echo $menu-&amp;gt;renderBreadcrumbs($m);&lt;br /&gt;
// render by passing an array&lt;br /&gt;
// get the Menu Builder field menu_items for this menu. That is where your menu items JSON string is stored&lt;br /&gt;
$json = $pages-&amp;gt;get(1234)-&amp;gt;menu_items;&lt;br /&gt;
// convert the JSON string to an array. Here we assume the JSON string is not empty&lt;br /&gt;
$array = json_decode($json, true);&lt;br /&gt;
echo $menu-&amp;gt;renderBreadcrumbs($array);// render by array&lt;br /&gt;
Additionally, you can pass some options to the method. See above for available options.&lt;br /&gt;
&lt;br /&gt;
$options = array(&lt;br /&gt;
	&amp;#039;wrapper_list_type&amp;#039; =&amp;gt; &amp;#039;div&amp;#039;,&lt;br /&gt;
	&amp;#039;list_type&amp;#039; =&amp;gt; &amp;#039;span&amp;#039;,&lt;br /&gt;
	//&amp;#039;list_type&amp;#039; =&amp;gt; &amp;#039;&amp;#039;,// if empty, no tag will be applied + no CSS ID&lt;br /&gt;
	&amp;#039;menu_css_id&amp;#039; =&amp;gt; &amp;#039;crumbs&amp;#039;,&lt;br /&gt;
	&amp;#039;menu_css_class&amp;#039; =&amp;gt; &amp;#039;trail&amp;#039;,&lt;br /&gt;
	&amp;#039;current_css_id&amp;#039; =&amp;gt; &amp;#039;current&amp;#039;,&lt;br /&gt;
	&amp;#039;divider&amp;#039; =&amp;gt; &amp;#039;&amp;amp;ast;&amp;#039;,&lt;br /&gt;
	&amp;#039;prepend_home&amp;#039; =&amp;gt; 1&lt;br /&gt;
);&lt;br /&gt;
echo $menu-&amp;gt;renderBreadcrumbs(1234, $options);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>37.49.72.8</name></author>
	</entry>
</feed>