示例#1
0
 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>&nbsp;" . "<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;
 }