Based in part on TrackingMenu by Mike Ivanov Portions Copyright 2005 Mike Ivanov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. **********************************************************************/ $RecipeInfo['ExpandingMenu']['Version'] = '20180628'; $InsideEMenu = 0; $EMenuGroup = ''; function BuildEMenu($m) { global $PubDirUrl, $HTMLHeaderFmt, $InsideEMenu; $name = $m[1]; if ($name == 'emenu') { $InsideEMenu = 1; return "<:block>
"; } if ($name == 'emenuend') { $InsideEMenu = 0; return '<:block>
'; } return '<:block>'; } function BuildEItem($m) { global $InsideEMenu, $EMenuGroup, $pagename, $DefaultPage; $star = $m[1]; $tail = $m[2]; if( $InsideEMenu ) { if ($star == '*') { if( preg_match("/^\\s*\\[\\[([^|]*?)(\\|.*?)?\\]\\]/", $tail, $match ) ) { $pn = MakePageName( $DefaultPage, $match[1] ); if( preg_match("/^([^.]*)/", $pn, $gn) ) { $EMenuGroup = $gn[0]; } } return $star. $tail; } else { if( preg_match("/^([^.]*)/", $pagename, $gn) ) { if ($EMenuGroup == $gn[0]) { return $star . $tail; } else { return; } } } } return $star . $tail; } ## precede link handlers Markup('emenu','emenu','/^(\\*+)(.*)/', "BuildEItem");