a:1:{s:4:"rows";a:14:{i:0;a:6:{s:8:"property";s:12:"sectionIndex";s:8:"datatype";s:6:"&nbsp;";s:11:"description";s:11:"(see below)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:1;a:6:{s:8:"property";s:23:"alternativeSortingField";s:8:"datatype";s:6:"&nbsp;";s:11:"description";s:517:"Normally the menuitems are sorted by the fields &quot;sorting&quot; in the pages- and tt_content-table. Here you can enter a list of fields that is used in the SQL- &quot;ORDER BY&quot; statement instead.<br>&nbsp;<b><br>Examples (for &quot;pages&quot; table):</b><br>alternativeSortingField = title desc<br>(This will render the menu in reversed alphabetical order)<br>&nbsp;<br>&nbsp;<b>LIMITATIONS:</b> <br>This property works with normal menus, sectionsIndex menus and special-menus of type &quot;directory&quot;.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:2;a:6:{s:8:"property";s:8:"minItems";s:8:"datatype";s:3:"int";s:11:"description";s:212:"The minimum items in the menu. If the number of pages does not reach this level, a dummy-page with the title &quot;...&quot; and uid=[currentpage_id] is inserted.<br>&nbsp;<br>Takes precedence over HMENU.minItems";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:3;a:6:{s:8:"property";s:8:"maxItems";s:8:"datatype";s:3:"int";s:11:"description";s:108:"The maximum items in the menu. More items will be ignored.<br>&nbsp;<br>Takes precedence over HMENU.maxItems";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:4;a:6:{s:8:"property";s:5:"begin";s:8:"datatype";s:9:"int +calc";s:11:"description";s:230:"The first item in the menu. <br>&nbsp;<b><br>Example:</b><br>This results in a menu, where the first two items are skipped starting with item number 3:<br>&nbsp;&nbsp;&nbsp;begin = 3 <br>&nbsp;<br>Takes precedence over HMENU.begin";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:5;a:6:{s:8:"property";s:8:"JSWindow";s:8:"datatype";s:7:"boolean";s:11:"description";s:441:"If set, the links of the menu-items will open by JavaScript in a pop-up window. <br>&nbsp;<b><br>.newWindow boolean, that lets every menuitem open in its own window opposite to opening in the same window for each click.</b><br>&nbsp;<br>&nbsp;<b>.params</b> is the list of parameters sent to the JavaScript open-window function, eg: <br>width=200,height=300,status=0,menubar=0<br>&nbsp;<br>&nbsp;<b>NOTE:</b> Does not work with JSMENU&#039;s";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:6;a:6:{s:8:"property";s:13:"imgNamePrefix";s:8:"datatype";s:6:"string";s:11:"description";s:76:"prefix for the imagenames. This prefix is appended with the uid of the page.";s:7:"default";s:15:"&quot;img&quot;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:7;a:6:{s:8:"property";s:16:"imgNameNotRandom";s:8:"datatype";s:7:"boolean";s:11:"description";s:373:"If set, the image names of menuitems is not randomly assigned. Usefull switch if you&#039;re manipulating these images with some external JavaScript<br>&nbsp;<br>&nbsp;<b>NOTE:</b> Don&#039;t set this if you&#039;re working with a menu with sectionIndex! In that case you need special unique names of items based on something else than the uid of the parent page of course!";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:8;a:6:{s:8:"property";s:13:"debugItemConf";s:8:"datatype";s:6:"&nbsp;";s:11:"description";s:160:"Outputs (by the debug()-function) the configuration arrays for each menuitem. Useful to debug optionSplit things and such...<br>Applies to GMENU, TMENU, IMGMENU";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:9;a:6:{s:8:"property";s:10:"overrideId";s:8:"datatype";s:17:"integer (page-id)";s:11:"description";s:393:"If set, then all links in the menu will point to this pageid. Instead the real uid of the page is sent by the parameter &quot;&amp;real_uid=[uid]&quot;.<br>This feature is smart, if you have inserted a menu from somewhere else, perhaps a shared menu, but wants the menuitems to call the same page, which then generates a proper output based on the real_uid.<br>Applies to GMENU, TMENU, IMGMENU";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:10;a:6:{s:8:"property";s:9:"addParams";s:8:"datatype";s:6:"string";s:11:"description";s:174:"Additional parameter for the menu-links. <br>&nbsp;<b><br>Example:</b><br>&quot;&amp;some_var=some%20value&quot;<br>Must be rawurlencoded.<br>Applies to GMENU, TMENU, IMGMENU";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:11;a:6:{s:8:"property";s:25:"showAccessRestrictedPages";s:8:"datatype";s:48:"integer (page id) / keyword &#x201c;NONE&#x201d;";s:11:"description";s:1182:"If set, pages in the menu will include pages with frontend user group access enabled. However the page is of course not accessible and therefore the URL in the menu will be linked to the page with the ID of this value. On that page you could put a login form or other message.<br>If the value is &#x201c;NONE&#x201d; the link will not be changed and the site will perform page-not-found handling when clicked (which can be used to capture the event and act accordingly of course).<br>&nbsp;<b><br>Properties:</b><br>.addParam = Additional parameter for the URL, which can hold two markers; ###RETURN_URL### which will be substituted with the link the page would have had if it had been accessible and ###PAGE_ID### holding the page id of the page coming from (could be used to look up which fe_groups was required for access.<br>&nbsp;<b><br>Example:</b><br>showAccessRestrictedPages = 22<br>showAccessRestrictedPages.addParams = &amp;return_url=###RETURN_URL###&amp;pageId=###PAGE_ID###<br>&nbsp;<br>The example will link access restricted menu items to page id 22 with the return URL in the GET var &#x201c;return_url&#x201d; and the page id in the GET var &#x201c;pageId&#x201d;.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:12;a:6:{s:8:"property";s:17:"itemArrayProcFunc";s:8:"datatype";s:13:"function-name";s:11:"description";s:690:"The first variable passed to this function is the &#x201c;menuArr&#x201d; array with the menuitems as they are collected based on the type of menu.<br>You&#039;re free to manipulate or add to this array as you like. Just remember to return the array again!<br>&nbsp;<b><br>Note:</b><br>.parentObj property is hardcoded to be a reference to the calling tslib_menu object. Here you&#039;ll find eg. -&gt;id to be the uid of the menu item generating a submenu and such.<br>&nbsp;<b><br>Presetting element state</b><br>You can override element states like SPC, IFSUB, ACT, CUR or USR by setting the key ITEM_STATE in the page records. See cObject HMENU/special=userdefined for more information.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:13;a:6:{s:8:"property";s:18:"submenuObjSuffixes";s:8:"datatype";s:22:"string<br>+optionSplit";s:11:"description";s:1805:"Defines a suffix for alternative sub-level menu objects. Useful to create special submenus depending on their parent menu element. See example below.<br>&nbsp;<b><br>Example:</b><br>This example will generate a menu where the menu objects for the second level will differ depending on the number of the first level item for which the submenu is rendered. The second level objects used are &#x201c;2&#x201d; (the default), &#x201c;2a&#x201d; and &#x201c;2b&#x201d; (the alternatives). Which of them is used is defined by &#x201c;1.submenuObjSuffixes&#x201d; which has the configuration &#x201c;a |*| |*| b&#x201d;. This configuration means that the first menu element will use configuration &#x201c;2a&#x201d; and the last will use &#x201c;2b&#x201d; while anything in between will use &#x201c;2&#x201d; (no suffix applied)<br>&nbsp;<br>page.200 = HMENU<br>page.200 {<br>&nbsp;&nbsp;&nbsp;1 = TMENU<br>&nbsp;&nbsp;&nbsp;1.wrap = &lt;div style=&quot;width:200px; border: 1px solid;&quot;&gt;|&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;1.expAll = 1<br>&nbsp;&nbsp;&nbsp;1.submenuObjSuffixes = a |*| |*| b<br>&nbsp;&nbsp;&nbsp;1.NO.allWrap = &lt;b&gt;|&lt;/b&gt;&lt;br/&gt;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;2 = TMENU<br>&nbsp;&nbsp;&nbsp;2.NO.allWrap = &lt;div style=&quot;background:red;&quot;&gt;|&lt;/div&gt;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;2a = TMENU<br>&nbsp;&nbsp;&nbsp;2a.NO.allWrap = &lt;div style=&quot;background:yellow;&quot;&gt;|&lt;/div&gt;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;2b = TMENU<br>&nbsp;&nbsp;&nbsp;2b.NO.allWrap = &lt;div style=&quot;background:green;&quot;&gt;|&lt;/div&gt;<br>}<br>&nbsp;<br>The result can be seen in the image below (applied on the testsite package):<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>Applies to GMENU, TMENU, GMENU_LAYERS, TMENU_LAYERS and GMENU_FOLDOUT on &gt;= 2nd level in a menu.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}}}