public static function AwikiLinks() { $stdout = ""; // ---- if (empty($GLOBALS["documentClass"]->wikiid2paths)) { $GLOBALS["documentClass"]->buildCompleteMenuArrays(); } // ---- Build from wiki DB $all_wikipages[0][] = array(<page_id>,<title>) $dbWiki = new fromdb_nwwiki(); $all_wikipages = $dbWiki->get_listAllPages(); if (!isset($all_wikipages) || !is_array($all_wikipages)) { return ""; } ksort($all_wikipages[0]); // ---- Build $inNoMenu[<title>] = <page_id> // ---- Build $allwiki2wikiid[<title>] = <page_id> $inNoMenu = array(); foreach ($all_wikipages[0] as $idx => $val) { if (!isset($GLOBALS["documentClass"]->wikiid2paths[$val["page_id"]]["path"])) { $inNoMenu[$val["title"]] = $val["page_id"]; } $allwiki2wikiid[$val["title"]] = $val["page_id"]; } ksort($inNoMenu); // ---- Build $all_wikiid[<id>] = array(<title>,<wikilinks>[],<paths>[]) foreach ($all_wikipages[0] as $idx => $val) { if (isset($dbWiki->wikipage_wikilinks)) { unset($dbWiki->wikipage_wikilinks); } $dbWiki->get_wikilinks($val["page_id"]); // --> $dbWiki->wikipage_wikilinks[] $tmparr = array(); if (isset($dbWiki->wikipage_wikilinks) && is_array($dbWiki->wikipage_wikilinks)) { foreach ($dbWiki->wikipage_wikilinks as $id => $va) { $tmparr[$va["txt"]] = isset($allwiki2wikiid[$va["txt"]]) ? 1 : 0; } } $all_wikiid[$val["page_id"]]["title"] = $val["title"]; $all_wikiid[$val["page_id"]]["wikilinks"] = count($tmparr) > 0 ? $tmparr : array(); $all_wikiid[$val["page_id"]]["paths"] = isset($GLOBALS["documentClass"]->wikiid2paths[$val["page_id"]]["path"]) ? $GLOBALS["documentClass"]->wikiid2paths[$val["page_id"]]["path"] : array(); } krsort($all_wikiid); // ---- foreach ($all_wikiid as $id => $arr) { if (!empty($arr["title"])) { $stdout .= "<dt><strong" . (empty($arr["paths"]) ? " class='red'" : "") . ">[" . $id . "]</strong> " . "<a href='" . WIKI_URI . "/index.php/" . $arr["title"] . "'>" . "<strong>" . $arr["title"] . "</strong></a>" . "</dt>\r\n"; if (isset($arr["paths"])) { foreach ($arr["paths"] as $path) { $stdout .= !empty($path) ? "<dd><span style='font-family:monospace'>" . $path . "</span></dd>\r\n" : ""; } } if (isset($arr["wikilinks"]) && count($arr["wikilinks"]) > 0) { $stdout .= "<dd><ul>\r\n"; foreach ($arr["wikilinks"] as $wikilink => $isWiki) { $stdout .= $isWiki ? "<li style='color:green'>" . $wikilink . "</li>" : "<li style='color:red'>" . $wikilink . "</li>"; } $stdout .= "</ul></dd>\r\n"; } } } return $stdout; }