39c39 < $RecipeInfo['ExpandingMenu2']['Version'] = '2012-01-08'; --- > $RecipeInfo['ExpandingMenu2']['Version'] = '2007-08-04'; 49,51d48 < # styles for links depending on {0=before, 1=on, 2=after} current page < SDV($Emenu2Style, array('%bgcolor=#ffc0c0%','%bgcolor=#ffff40%','%bgcolor=#c0ffc0%')); < 89c86 < global $eMenuExpand, $pagename; --- > global $eMenuExpand; 91,92c88,89 < $fn=analyseLink($link, $pagename); < $fn=$fn[1]; /* find fullname */ --- > $pn=ResolvePageName($link); /* resolve them */ > $fn=PageVar($pn,'$FullName'); /* find fullname */ 101c98 < function eMenuParseLinks($code,$pagename) { --- > function eMenuParseLinks($code,$group) { 106,107c103 < if ($link[0][1]>$pos) /* add skipped non-link part to result */ < array_push($ret,array(substr($code,$pos,$link[0][1]-$pos),NULL,NULL)); --- > if ($link[0][1]>$pos) array_push($ret,array(substr($code,$pos,$link[0][1]-$pos),NULL,NULL)); /* add skipped non-link part to result */ 109c105,120 < array_push($ret, analyseLink($link[1][0], $pagename)); --- > $view=$link[1][0]; > $l=str_replace("~","Profile/",$view); /* handle [[~name]] links */ > $l=str_replace("!","Category/",$l); /* handle [[!category]] links */ > $l=str_replace("(","",$l); /* handle [[(foo.)bar]] links */ > $l=str_replace(")","",$l); > $l=str_replace(" ","",$l); /* remove spaces */ > preg_match("/^([^\\.:\\/]*?:)?(?:([^\\.:\\/]*?)([\\.\\/]))?([^\\.:\\/]*?)(?:\\|(.*))?\$/",$l,$lmatch); /* parse link (1:map, 2:group, 3:separator, 4:page, 5:view) */ > if ($lmatch[3]=='/' && $lmatch[1]=='') $view=$lmatch[4]; > $view=preg_replace("/\\(.*?\\)/","",$view); /* remove ( ) from view */ > if ($lmatch[5]!='') $view=$lmatch[5]; > if ($lmatch[1]=='') { > if ($lmatch[2]=='') $lmatch[2]=$group; > array_push($ret,array($link[0][0],$lmatch[2].'.'.$lmatch[4],$view)); > } else { > array_push($ret,array($link[0][0],$lmatch[1].$lmatch[2].'.'.$lmatch[4],$view)); > } 111,112c122 < if (strlen($code)>$pos) /* add final non-link part */ < array_push($ret,array(substr($code,$pos),NULL,NULL)); --- > if (strlen($code)>$pos) array_push($ret,array(substr($code,$pos),NULL,NULL)); /* add final non-link part */ 116,129d125 < # analyse a link = "m:g.p|v" ==> ([[m:g.p|v]], group.name, view) < function analyseLink($link,$pagename) { < $l=str_replace("~","Profile/",$link); /* handle [[~name]] links */ < $l=str_replace("^!","Category/",$l); /* handle [[!category]] links */ < preg_match("/^([^\\.:\\/]*?:)?(?:([^\\.:\\/]*?)([\\.\\/]))?([^\\.:\\/]*?)(?:\\|(.*))?\$/",$l,$lmatch); /* parse link (1:map, 2:group, 3:separator, 4:page, 5:view) */ < if ($lmatch[5] == '') { < $view = ($lmatch[3]=='/' && $lmatch[1]=='') ? $lmatch[4] : $link; < $view = preg_replace("/\\(.*?\\)/","",$view); /* remove ( ) from view */ < } else { < $view = $lmatch[5]; < } < return array("[[$link]]", MakePageName($pagename, $lmatch[2].'.'.$lmatch[4]),$view); < } < 154c150 < global $eMenuExpand,$eMenuCurrentExpanded, $Emenu2Style; --- > global $eMenuExpand,$eMenuCurrentExpanded; 168d163 < $parsed=eMenuParseLinks($lind, $pagename); /* parse entry itself */ 170,174c165,168 < if (count($parsed) > 0 ) { /* around include we may get empty $parsed ==> if we use them as parent all children disappear without a link to click! */ < $tree[$parent][3]=1; /* out parent has child now */ < $mapje[$level]=$pos; /* we can become ancestor */ < $maxlev=$level; < } --- > $tree[$parent][3]=1; /* out parent has child now */ > $mapje[$level]=$pos; /* we can become ancestor */ > $maxlev=$level; > $parsed=eMenuParseLinks($lind,$group); /* parse entry itself */ 178d171 < $tree[$pos][6] = 1; /* mark current page */ 190d182 < $styleX = 0; /* styleX {0=before, 1=on, 2=after} current page */ 197,198c189 < $styleX = (isset($line[6]) && $line[6] == 1) ? 1 : ($styleX >= 1 ? 2 : 0); < $ret .= $Emenu2Style[$styleX] . ($one = eMenuGenLine($line[0],$pre)) . "\n"; /* generate menu line */ --- > $ret .= eMenuGenLine($line[0],$pre)."\n"; /* generate menu line */