private static function outputDisplayTip($wid = "display-tip") { $main = ""; // --------------------------------------- // WIKI Template:Displaytip $thispageTitle = "Template:Displaytip"; if (!isset($dbWiki) || !is_object($dbWiki)) { $dbWiki = new fromdb_nwwiki(); } $main .= $dbWiki->getWikiPage($thispageTitle); $today = time(); if (!(mktime(0, 0, 0, 6, 25) < $today and $today < mktime(0, 0, 0, 8, 10)) && !(mktime(0, 0, 0, 12, 23) < $today) && !($today < mktime(0, 0, 0, 1, 10))) { // --------------------------------------- // WIKI Template:Displaytip_Friday if (date("w") == 5) { $thispageTitle = "Template:Displaytip_Friday"; $main .= $dbWiki->getWikiPage($thispageTitle); } // --------------------------------------- // WIKI Template:Displaytip_Monday if (date("w") == 1) { $thispageTitle = "Template:Displaytip_Monday"; $main .= $dbWiki->getWikiPage($thispageTitle); } // --------------------------------------- // WIKI Template:Displaytip_Monday $thispageTitle = "Template:Widget_Movienight"; $movie = $dbWiki->getWikiPage($thispageTitle); if (!empty($movie)) { $main .= "<ul><li><strong>NORDITA MOVIE NIGHT</strong><br>\r\n" . $movie . "</li></ul>"; } } // end if // --------------------------------------- $main = trim($main); if (!empty($main)) { return " <div id='" . $wid . "' class='widget-table'>\r\n" . " <table>\r\n" . " <tr><th>What else is on at Nordita?</th></tr>\r\n" . " <tr><td>\r\n" . $main . "\r\n" . " </td></tr>\r\n" . " </table>\r\n" . " </div> <!-- " . $wid . " -->\r\n" . "\r\n"; } else { return ""; } }
public function buildCompleteMenuArraysData() { $allMenusArray = array(); $allEventsArray = array(); $wiki2id = array(); $wikiid2paths = array(); $agid2path = array(); $path2agid = array(); $now2agid = array("current" => array(), "future" => array(), "past" => array()); $menuFiles = array(); $all_wikipages = array(); $jointEvents = array(); // -------------------- // -- (1) SUBSITES // Fetch all names of subsites (from $this->allSitesArray, directories in PATH_SITES) // and possible common menus (from '_classes/config/layout/<nr>/common_menus.php') // --> $menuFiles // -------------------- // -- We need the menus for all subsites $menuFiles = $this->allSitesArray; // -- There might be common menu files, like 'm_main_nonmenu' and 'm_event', for this layout if (file_exists(INCLEVEL . PATH_LAYOUT . "/" . DEFAULT_VERSION . "/common_menus.php")) { require_once PATH_LAYOUT . "/" . DEFAULT_VERSION . "/common_menus.php"; if (!empty($common_menus)) { $menuFiles = array_unique(array_merge($menuFiles, $common_menus)); } } // -- We don't need the menu of any test subsite: foreach ($menuFiles as $key => $menu) { if (in_array($menu, array("index.php", DOCROOT_PREFIX))) { unset($menuFiles[$key]); } } // -------------------- // -- (2) WEB PAGES // Load menu file for each SUBSITE and copy menu elements. // --> $allMenusArray // -------------------- foreach ($menuFiles as $menu) { if (file_exists(INCLEVEL . PATH_SITES . "/" . $menu . "/menu_" . $menu . ".php")) { // subsite menu path if (!function_exists("menu_" . $menu)) { require_once PATH_SITES . "/" . $menu . "/menu_" . $menu . ".php"; } } elseif (file_exists(INCLEVEL . PATH_MENU . "/m_" . $menu . ".php")) { // common menu path (there are still some files here!) if (!function_exists("menu_" . $menu)) { require_once PATH_MENU . "/m_" . $menu . ".php"; } } if (function_exists("menu_" . $menu)) { $thisMenuRecords = call_user_func("menu_" . $menu); foreach ($thisMenuRecords as $thisPath => $thisRecord) { if (!isset($allMenusArray[$thisPath])) { $thisRecord["path"] = $thisPath; $thisRecord["subsite"] = $menu; $allMenusArray[$thisPath] = $thisRecord; } } } } // -- Sort and save // DON'T do this: "ksort($allMenusArray)" since it will reshuffle all menus! $this->allMenusArray = $allMenusArray; // -------------------- // -- (3) WEB PAGES // Create convenience lookup tables. // --> $wiki2id // --> $agid2path // --> $path2agid // --> $wikiid2paths // -------------------- foreach ($allMenusArray as $path => $arr) { // -------------------- // Conversion from path to wiki title if (!empty($arr["wikiid"])) { $wiki2id[$arr["wikititle"]] = $arr["wikiid"]; } if (!empty($arr["wikiid"]) && !is_numeric($path)) { $wikiid2paths[$arr["wikiid"]]["name"] = empty($arr["wiki"]) ? "" : $arr["wiki"]; $wikiid2paths[$arr["wikiid"]]["path"][] = $path; } // -------------------- // Conversion from path to agenda index for programs // NB. The 'url' field is typically not present in the menu file 'm_events' but // is constructed in XXX from the 'confid' field. if (preg_match("~^events/([^/]+)\$~imU", $path, $subpath) && !empty($arr["confid"])) { $agid2path[$arr["confid"]] = $subpath[1]; } } // end foreach $path2agid = array_flip($agid2path); // -- Obtain $all_wikipages[] from wiki DB $dbWiki = new fromdb_nwwiki(); $all_wikipages = $dbWiki->get_listAllPages(); $GLOBALS["dbWikiSql"] = $dbWiki->DBq; if (!isset($all_wikipages)) { return BLURB_SORRY_DB_CONNECT; } // array(); // -- Update $wikiid2paths[] with pages in wiki DB but not in menus foreach ($all_wikipages as $namespace => $wps) { foreach ($wps as $wp) { $wikiid2paths[$wp["page_id"]]["name"] = empty($wp['title']) ? "" : $wp['title']; $wikiid2paths[$wp["page_id"]]["timestamp"] = empty($wp["timestamp"]) ? "" : date("Y-m-d", $wp['timestamp']); } } // -- Sort and save ksort($wiki2id); ksort($agid2path); ksort($path2agid); ksort($wikiid2paths); $this->wiki2id = $wiki2id; $this->agid2path = $agid2path; $this->path2agid = $path2agid; $this->wikiid2paths = $wikiid2paths; // -------------------- // -- (4) EVENTS // Create event tables sorted in different ways for convenience. // --> $allEventsArray[$confId] = array("date"=>array("starttime"=<record>) // --> $now2agid[past|current|future][startdate][] = $confId // -------------------- $eventArray = $oneEvent = $jointEvents = array(); // if (!class_exists("fromdb_agenda",FALSE)) require_once PATH_CLASSES . "/fromdb/agenda.php"; // // if (!isset($dbVm) || !is_object($dbVm)) { // require_once PATH_CLASSES . "/fromdb/vm.php"; // $dbVm = new fromdb_vm(); // } // // if (!isset($dbEv) || !is_object($dbEv)) { // require_once PATH_CLASSES . "/fromdb/nwevents.php"; // $dbEv = new fromdb_nwevents(); // } // -- Obtain list of Agenda id:s for Nordita events // --> $allConfids $allConfids = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getAgendaConferenceIdsForNorditaEvents'); // -- Fetch data for each Nordita event from various sources $jointEvents = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getEventsJoint'); //TODO: if (OK_TO_CALL_EVENTS), fetch all data from nwevents at once, rather than for each event in a loop if (IS_TESTSERVER || isInPath("_admin")) { echo "Reading event data from source " . (OK_TO_CALL_EVENTS ? "<em>DB nwevents</em> to DOC->\$menus:" : "<em>Agenda</em>"); } foreach ($allConfids as $confId) { // -- (i) Fetch data for event $confId from the Agenda database, by way of local nwevents database $oneEvent = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getOneEvent', $confId, TRUE); if (IS_TESTSERVER || isInPath("_admin")) { echo " #" . $confId; } if (!empty($oneEvent)) { if (isset($oneEvent["contribution"])) { unset($oneEvent["contribution"]); } if (isset($oneEvent["startdate"]) && substr($oneEvent["startdate"], -5) != "01-01" && isset($agid2path[$confId])) { // -- (ii) Add event data from menu file $path = $agid2path[$confId]; $oneEvent["subpath"] = $path; if (isset($allMenusArray["events/" . $path])) { foreach (array("blurb", "path", "url", "etype", "confid_parent", "surveyid", "surveyresponse") as $field) { if (isset($allMenusArray["events/" . $path][$field])) { $oneEvent[$field] = $allMenusArray["events/" . $path][$field]; } } if (!empty($allMenusArray["events/" . $path]["youtube"])) { $oneEvent["videos"] = "video/index.php?ev=" . $path; // ."&cl=".$theevent["youtube"]; $oneEvent["youtubeid"] = $allMenusArray["events/" . $path]["youtube"]; } } // -- (iii) Add event data from VM $budget = functions::callMethod('fromdb_vm', 'fromdb/vm', 'getEventBudgetsources', $confId, TRUE); //$budget = $dbVm->getEventBudgetsources($confId,1); if ($budget && !empty($budget)) { $oneEvent["budgetsources"] = $budget; } // -- Save event data into array $allEventsArray $allEventsArray[$confId] = $oneEvent; if (!empty($oneEvent["current"]) && !empty($oneEvent["startdate"])) { $now2agid[$oneEvent["current"]][$oneEvent["startdate"]][] = $oneEvent["id"]; } } // end if } // end if } // end foreach // -- Sort and save //ksort($allEventsArray); // don't do this: waste of time $this->allEventsArray = $allEventsArray; $this->now2agid = $now2agid; // -- Return calculated arrays to be saved in cache file return array("allMenusArray" => $allMenusArray, "allEventsArray" => $allEventsArray, "wiki2id" => $wiki2id, "agid2path" => $agid2path, "path2agid" => $path2agid, "now2agid" => $now2agid, "wikiid2paths" => $wikiid2paths, "jointEvents" => $jointEvents); }
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; }
public static function OutputSeminarsNextweek($w = 0) { $stdout = ""; $talks_selection = $events = $colloquium = $visits = $contributions = $seminars = $talks = array(); functions::gpc_declare_input("w", $w, true); $delta = $GLOBALS["w"] == 0 ? 7 : 0; $saturday1 = date("Y-m-d", time() - 3600 + ($delta - 1 + date("w", time() - 3600)) * 86400); $sunday = date("Y-m-d", time() - 3600 + ($delta - date("w", time() - 3600)) * 86400); $saturday2 = date("Y-m-d", time() - 3600 + ($delta + 7 - date("w", time() - 3600)) * 86400); $agenda_timespan = $GLOBALS["w"] == 0 ? "nextweek" : "thisweek"; // ---------------------- // Obtain data from VM DB: records for visitors outside events // ---------------------- $visits = functions::callMethod('fromdb_vm', 'fromdb/vm', 'getArrivingVisitors', "extweek", $GLOBALS["w"]); // 'extweek' = extended week // ---------------------- // Obtain data from Agenda DB: seminars and colloquium // ---------------------- //@@@ -- VERKAR OK -- in OutputSeminarsNextweek() -- calls getTalkRecordsSeminars+getTalkRecordsColloquium // ---------------------- // Obtain data from nw_events DB: programs and other events, and talks inside these events // ---------------------- $events = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getEventsInPeriod', $agenda_timespan); $seminars = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getTalkRecordsSeminars', $agenda_timespan); $colloquium = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getTalkRecordsColloquium', $agenda_timespan); $contributions = functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getEventContributionsInPeriod', $agenda_timespan); // ---------------------- // Postparsing of seminars data records --> array $talks_selection[] // ---------------------- // $seminars = self::mergeTalkRecords($seminars,$colloquium); // $talks = self::mergeTalkRecords($seminars,$contributions); $talks = self::mergeTalkRecords($colloquium, self::mergeTalkRecords($seminars, $contributions)); if (isset($talks) && count($talks)) { foreach ($talks as $day => $dayevents) { if (count($dayevents)) { foreach ($dayevents as $categoryId => $dayevent) { // $dayevent["id"|"end"|"title"] /* if (isset($dayevent["eventtype"]) && in_array(strtolower($dayevent["eventtype"]), array("nordita program","program","conference","workshop","meeting","school")) ) { // -- Nordita event(s) //doesn't seem to work... $talks_selection[0][] = array( "title" => trim($dayevent["title"]), "eventtype" => $dayevent["eventtype"], "startdate" => $dayevent["startdate"], "enddate" => $dayevent["enddate"], "subpath" => $dayevent["subpath"], "id" => $dayevent["id"], "categoryid" => $dayevent["categoryid"] ); unset($talks[$day][$categoryId]); } else { */ // -- Seminars unset($sel); if (isset($dayevent["title"])) { $dayevent["title"] = trim($dayevent["title"]); } $sel["heading"] = ""; if (isset($dayevent["eventtitle"])) { $sel["heading"] = "Event Talk" . (!empty($dayevent["eventtitle"]) ? " (" . $dayevent["eventtitle"] . ")" : ""); } if (isset($dayevent["categoryid"])) { include PATH_DATA . "/agenda_fids.php"; // -> $fids[] if (isset($fids)) { if (in_array($dayevent["categoryid"], array_keys($fids["colloquium"]))) { // -- AN COLLOQUIUM $sel["heading"] = "The AlbaNova Colloquium"; } else { // -- SEMINARS foreach ($fids as $group => $farray) { foreach ($farray as $categoryid => $label) { if ($categoryid == $dayevent["categoryid"] && (preg_match("/^Seminar\\S*\\s*(.*)\$/i", $label, $res) || preg_match("/^Group meeting\\S*\\s*(.*)\$/i", $label, $res)) && !empty($res[1])) { $sel["heading"] = $res[1]; } } } } } } $sel["eventtype"] = isset($dayevent["eventtype"]) ? ucfirst($dayevent["eventtype"]) : ""; $sel["period"] = ucfirst($dayevent["period"]); $sel["period"] = $dayevent["starttime"] . (!empty($dayevent["endtime"]) ? "—" . $dayevent["endtime"] : ""); $sel["room"] = isset($dayevent["room"]) ? ucfirst($dayevent["room"]) : ""; $sel["title"] = """ . $dayevent["title"] . """; $sel["title"] = str_replace("<span class='agenda-programtalk'><span>Event Talk</span></span> ", "", $sel["title"]); //if (isset($dayevent["url"]) && (strpos($dayevent["url"],"contribId")!==false)) $programtalk = "[Program Talk] "; $seltmp = array(); if (isset($dayevent["speakers"])) { foreach ($dayevent["speakers"] as $speaker) { $tmp = (!empty($speaker["nw_fullname"]) ? $speaker["nw_fullname"] . " " : "") . (!empty($speaker["av_institute"]) ? "(" . $speaker["av_institute"] . ")" : ""); $seltmp[] = trim($tmp); } } $sel["thespeaker"] = implode(", ", $seltmp); $sel["url"] = empty($dayevent["id"]) ? "" : AGENDA_URI . "/" . (isset($dayevent["parent_id"]) ? "contributionDisplay.py?contribId=" . $dayevent["id"] . "&confId=" . $dayevent["parent_id"] : "conferenceDisplay.py?confId=" . $dayevent["id"]); $sel["ical"] = empty($dayevent["id"]) && !isset($dayevent["parent_id"]) ? "" : AGENDA_URI . "/conferenceDisplay.py/ical?confId=" . $dayevent["id"]; $talks_selection[$day][$dayevent["starttime"] . ":" . str_pad(rand(0, 999), 3, "0", STR_PAD_LEFT)] = $sel; /* } // end if */ } // end foreach } } // end foreach } // end if ksort($talks_selection); foreach (array_keys($talks_selection) as $key) { ksort($talks_selection[$key]); } // ---------------------- // -- Output data // ---------------------- $stdout .= " <p class='only_online'>" . "[" . ($GLOBALS["w"] == 0 ? "<a href='" . $_SERVER["PHP_SELF"] . "?w=1' class='bold' rel='nofollow'>This Week</a>" : "This Week") . "]" . " " . "[" . ($GLOBALS["w"] == 1 ? "<a href='" . $_SERVER["PHP_SELF"] . "?w=0' class='bold' rel='nofollow'>Next Week</a>" : "Next Week") . "]" . "</p>\r\n" . "\r\n" . "<pre class='box letter'>\r\n" . "Dear Norditans,\r\n" . "\r\n" . "-------------\r\n\r\n"; if (count($visits)) { $visitortext = ""; foreach ($visits as $type) { if (isset($type["Visitors"])) { foreach ($type["Visitors"] as $v) { $visitortext .= "*" . $v["name"] . "*\r\n" . " " . $v["affiliation"] . "\r\n" . " " . $v["dates"] . "\r\n" . "\r\n"; } } } $stdout .= ($GLOBALS["w"] == 0 ? "Next" : "This") . " week, Nordita welcomes these guests:\r\n" . "\r\n" . $visitortext . "-------------\r\n\r\n"; } /* "*MONDAY, __________ 2011* 12:30- Nordita West Seminar Room (122:026) ASTRO-PH LUNCH MEETING http://wiki.nordita.org/index.php/Astro-ph_Meeting " . */ if (empty($talks_selection) && empty($events)) { $stdout .= "Nothing of theoretical interest will happen " . ($GLOBALS["w"] == 0 ? "next" : "this") . " week!\r\n" . "-------------\r\n\r\n"; } else { if (!empty($events)) { $stdout .= "Major Nordita Events " . ($GLOBALS["w"] == 0 ? "next" : "this") . " week:\r\n\r\n"; foreach ($events as $key => $ev) { $stdout .= " During the week, the " . str_replace("nordita", "Nordita", $ev["eventtype"]) . "\r\n" . " "" . strtoupper($ev["title"]) . ""\r\n" . " " . ($sunday < $ev["start"] ? "starts on " . functions::readableDateInterval($ev["start"], $ev["start"]) : "continues") . ", and will continue until " . functions::readableDateInterval($ev["end"], $ev["end"]) . ".\r\n"; if (!empty($ev["subpath"])) { $stdout .= " " . URL_PREFIX . "/" . $ev["subpath"] . "\r\n"; } elseif (!empty($ev["id"])) { $stdout .= " http://agenda.albanova.se/conferenceDisplay.py?confId=" . $ev["id"] . "\r\n"; } $stdout .= "\r\n"; } $stdout .= "-------------\r\n\r\n"; } if (!empty($talks_selection)) { $stdout .= "Here are some of the seminars at Nordita and AlbaNova " . ($GLOBALS["w"] == 0 ? "next" : "this") . " week:\r\n\r\n"; foreach ($talks_selection as $day => $record) { $stdout .= "*" . strtoupper(date("l, j F Y", strtotime($day))) . "*\r\n\r\n"; foreach ($record as $start => $dayevent) { if (count($dayevent)) { if (in_array(strtolower($dayevent["eventtype"]), array("nordita program", "program", "conference", "workshop", "meeting", "school"))) { $stdout .= " " . ucfirst($dayevent["eventtype"]) . "\r\n" . " " . $dayevent["period"] . "\r\n" . "\r\n"; } else { $stdout .= " " . (!empty($dayevent["period"]) ? $dayevent["period"] : "") . (!empty($dayevent["room"]) ? " " . $dayevent["room"] : "") . "\r\n" . (!empty($dayevent["heading"]) ? " " . strtoupper($dayevent["heading"]) . "\r\n" : "") . (!empty($dayevent["thespeaker"]) ? " " . $dayevent["thespeaker"] . "\r\n" : "") . (!empty($dayevent["title"]) ? " " . $dayevent["title"] . "\r\n" : "") . (!empty($dayevent["url"]) ? " Info: " . $dayevent["url"] . "\r\n" : "") . (!empty($dayevent["ical"]) ? " Add to calendar: " . $dayevent["ical"] . "\r\n" : "") . "\r\n"; } } } // end if } // end foreach $stdout .= "-------------\r\n\r\n"; } } // end if (empty($talks_selection)) // ---------------------- move to suitable class! $dbWiki = new fromdb_nwwiki(); $dbWiki->get_text("Cake"); $txt = $dbWiki->wikipage_text["text"]; preg_match_all("~<td>([^<]*)</td>[^<].*<td>([^<]*)</td>~mU", $txt, $res); foreach ($res[1] as $ix => $v) { $cake[strtotime($v)] = $res[2][$ix]; } $delta = $GLOBALS["w"] == 0 ? 8 : 1; $monday = date("Y-m-d", time() - 3600 + ($delta - date("w", time() - 3600)) * 86400); $m = strtotime($monday); $nextm = $m + 604800; $stdout .= "*MONDAY CAKE, " . strtoupper(functions::readableDateInterval($monday, $monday)) . "*\r\n"; //functions::readableDateInterval($monday,$monday) . if (isset($cake[$m]) && strlen($cake[$m]) > 5) { $stdout .= " Cakemaster this week is " . $cake[$m] . ".\r\n"; } else { $stdout .= " No cakemaster appointed!\r\n"; } if (isset($cake[$nextm]) && strlen($cake[$nextm]) > 5) { $stdout .= " (Cakemaster on " . date("l, F jS", $nextm) . " the following week, will be " . $cake[$nextm] . ".)\r\n"; } $stdout .= " " . URL_PREFIX . "/cake\r\n"; // ---------------------- return str_replace("()", "", $stdout) . "</pre>"; }
public static function WdebugMenu() { $thispage = urlencode(URL_PREFIX . "" . $_SERVER["PHP_SELF"]); //str_replace("www.nordita.org/","",$_SERVER["PHP_SELF"])); $stdout = " <script type='text/javascript' " . "src='" . PATH_JS . "/js_viewport.js'></script>\r\n"; $dbWiki = new fromdb_nwwiki(); $stdout .= " " . $dbWiki->cronWiki($dbWiki->wikiLastUsedPageId()); $stdout .= " <dl> \r\n"; // -- code validation $stdout .= " <dt>" . "<strong>DEBUG</strong> - <strong>Code validation</strong>:</dt>\r\n" . " <dd>" . "<a href='http://validator.w3.org/check?" . "uri=" . $thispage . "&verbose=1'" . TARGET_BLANK . ">W3C HTML Validator</a> " . EXTERNAL_LINK . "</dd>\r\n" . " <dd>" . "<a href='http://jigsaw.w3.org/css-validator/validator?" . "uri=" . $thispage . "&warning=1&vextwarning=true&profile=css21&usermedium=all'" . TARGET_BLANK . ">W3C CSS Validator (2.1)</a> " . EXTERNAL_LINK . " <dd>" . "<a href='http://jigsaw.w3.org/css-validator/validator?" . "uri=" . $thispage . "&warning=1&vextwarning=true&profile=css3&usermedium=all'" . TARGET_BLANK . ">W3C CSS Validator (3)</a> " . EXTERNAL_LINK . "</dd>\r\n"; // -- performance testing $stdout .= " <dt>" . "<strong>DEBUG</strong> - <strong>Performance testing</strong>:</dt>\r\n" . " <dd>" . "<a href='http://www.webpagetest.org'" . TARGET_BLANK . ">WebPagetest</a>" . EXTERNAL_LINK . "</dd>\r\n" . " <dd>" . "<a href='http://www.gidnetwork.com/tools/gzip-test.php" . "'" . TARGET_BLANK . ">GDI Network gzip compression test</a>" . EXTERNAL_LINK . "</dd>\r\n"; // http://www.browserscope.org/?category=network&v=top // -- screen resolution $today = date("Ym"); $lastyear = $today - 100; $stdout .= " <dt><strong>DEBUG</strong> " . "- <a href='_admin/varia/screen_resolution/index.php'" . TARGET_BLANK . " rel='nofollow'>" . "<strong>Screen resolutions</strong></a>:</dt>\r\n" . " <dd>" . "<a href='" . $_SERVER["PHP_SELF"] . "?res=" . (isset($_SESSION["nw_screenresolution"]) ? $_SESSION["nw_screenresolution"] ? 0 : 1 : 1) . "'" . TARGET_BLANK . " rel='nofollow'>" . "Toggle background</a></dd>\r\n" . " <dd>" . "<a href='http://browsersize.googlelabs.com/'" . TARGET_BLANK . ">" . "Google browsersize stats</a>" . EXTERNAL_LINK . "</dd>\r\n" . " <dd>" . "<a href='http://gs.statcounter.com/#resolution-ww-monthly-" . $lastyear . "-" . $today . "'" . TARGET_BLANK . ">" . "StatCounter browsersize stats</a>" . EXTERNAL_LINK . "</dd>\r\n"; // -- wiki discovery $stdout .= " <dt><strong>DEBUG</strong> " . "- <a href='_admin/wiki/discovery/index.php'" . TARGET_BLANK . " rel='nofollow'>" . "<strong>Wiki discovery</strong></a></dt>\r\n"; // -- window sizes $stdout .= " <dt><strong>DEBUG</strong> " . "- <strong>Window sizes</strong>:</dt>\r\n" . " <dd><a href='#' onclick='reInnerWindowDimensions(); return false' " . "title='recalculate' rel='nofollow'>Window dim</a>: " . "<script type='text/javascript'>" . "void document.write(innerWindowDimensions());" . "</script> px</dd>\r\n" . " <dd>Page height: <script type='text/javascript'>" . "void document.write(heightOfPage());" . "</script> px</dd>\r\n"; $stdout .= " </dl>\r\n"; // ----------------------------------- // viewport dimension /* http://www.xml.com/pub/a/2003/03/19/dive-into-xml.html Also on the JavaScript front, methods like document.write do not work; you will need to use document.createElementNS and friends instead. For example, if your XHTML-as-HTML document currently uses this script to insert a linked stylesheet: if (document.getElementById) { document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/js.css\" media=\"screen\">") } Your XHTML-as-XML document would need to use something like this instead (thanks to Experts Exchange for this code): if (document.getElementById) { var l=document.createElementNS("http://www.w3.org/1999/xhtml","link"); l.setAttribute("rel", "stylesheet"); l.setAttribute("type", "text/css"); l.setAttribute("href", "/css/js.css"); l.setAttribute("media", "screen"); document.getElementsByTagName("head")[0].appendChild(l); } */ /* $stdout .= " <p class='colophon-stycke'>" . $openbracket . "<script language='javascript'>document.write(howMuchScrolled());</script>" . $closebracket . "</p>\r\n"; <pre id='writeroot'> <script language='javascript'>document.write(getAll());</script> </pre> <p>(<a href='#' onclick='reGet(); return false' rel='nofollow'>Uppdatera</a> listan)</p> */ // ----------------------------------- return $stdout; }
static function OutputWikiCategories() { $stdout = ""; $dbWiki = new fromdb_nwwiki(); $data = $dbWiki->get_categories(); ksort($data); $flera = $ansvarig = array(); foreach ($data as $namn => $sidor) { if (!in_array($namn, array("Obsolete", "Newsletter"))) { foreach ($sidor as $key => $sida) { if (isset($sida["wikititle"])) { $ansvarig[$namn][$sida["wikititle"]] = $sida; $flera[$sida["wikititle"]][] = $namn; } } } } // ---------------------- $selectform = " <div class='col-content-left2thirds only_online'>\r\n" . functions::OutputWikiPage('0', '2467') . " <ul class='tightlist'><li><a href='http://wiki.nordita.org/index.php/Special:Uncategorizedpages'" . " target='a" . rand(10000, 99999) . "'" . ">List of active wiki pages which <strong>have no responsible assigned</strong></a> <br>[the list should be empty!]</li></ul>\r\n" . " </div>\r\n" . " <div class='col-content-right1third divider only_online'>\r\n" . " <h4>Show pages belonging to these <span class='nowrap'>areas of responsibility:</span></h4>\r\n"; foreach ($ansvarig as $namn => $sidor) { $selectform .= " <form action='" . $_SERVER["PHP_SELF"] . "' method='post' class='only_online'>" . " <p style='font-size:medium;display:list-item;list-style-type:disc;margin:0.5em 0 0 2em'>" . "<input class='fakelink bold' style='font-size:medium' " . "type='submit' name='ansvarslista_select' value='" . $namn . "'></p>" . " <input type='hidden' name='ansvarslista' value='1'>" . " </form>"; } /* $selectform .= " <form id='selectmenu' action='".$_SERVER["PHP_SELF"]."' method='post' class='only_online'>" . " <div class='input shadow-whiteinset'><span>Visa:</span>"; foreach ($ansvarig as $namn => $sidor) { $selectform .= " <input type='radio' name='ansvarslista_select' value='".$namn."'> " . $namn; } $selectform .= " </div>" . " <div class=''>" . " <input type='submit' value='Välj ansvarig'>" . " <input type='hidden' name='ansvarslista' value='1'>" . " </div>" . " </form>"; */ $selectform .= " </div>\r\n" . " <div style='clear:both'><br></div>\r\n" . functions::gpc_declare_input("ansvarslista", false, true); functions::gpc_declare_input("ansvarslista_select", "", false, array_keys($ansvarig)); if (isset($GLOBALS["ansvarslista"]) && isset($GLOBALS["ansvarslista_select"]) && isset($ansvarig[$GLOBALS["ansvarslista_select"]])) { ksort($ansvarig[$GLOBALS["ansvarslista_select"]]); foreach ($ansvarig[$GLOBALS["ansvarslista_select"]] as $key => $sida) { $content = $dbWiki->getWikiPage($sida["wikiid"]); $content = trim(preg_replace("/(\\[?\\[[^\\]]*\\]\\]?)/", "", strip_tags($content))); $ansvarig[$GLOBALS["ansvarslista_select"]][$key]["antal"] = strlen($content); } $stdout .= self::outputWikiCategoriesAux($GLOBALS["ansvarslista_select"], $ansvarig[$GLOBALS["ansvarslista_select"]], $flera); } // ---------------------- return $selectform . $stdout . "\r\n"; }