function initGlobals() { global $request; static $already = 0; if (!$already) { $script_url = deduce_script_name(); $script_url .= '/' . $GLOBALS['group_name']; if (DEBUG & _DEBUG_REMOTE and isset($_GET['start_debug'])) { $script_url .= "?start_debug=" . $_GET['start_debug']; } $folderArrowPath = dirname($this->_findData('images/folderArrowLoading.gif')); $pagename = $request->getArg('pagename'); $this->addMoreHeaders(JavaScript('', array('src' => $this->_findData("wikilens.js")))); $js = "var data_path = '" . javascript_quote_string(DATA_PATH) . "';\n" . "var script_url= '" . javascript_quote_string($script_url) . "';\n" . "var stylepath = data_path+'/" . javascript_quote_string($this->_theme) . "/';\n" . "var folderArrowPath = '" . javascript_quote_string($folderArrowPath) . "';\n" . "var use_path_info = " . (USE_PATH_INFO ? "true" : "false") . ";\n"; $this->addMoreHeaders(JavaScript($js)); $already = 1; } }
function calendarInit($force = false) { $dbi = $GLOBALS['request']->getDbh(); // display flat calender dhtml in the sidebar if ($force or $dbi->isWikiPage($this->calendarBase())) { $jslang = @$GLOBALS['LANG']; $this->addMoreHeaders($this->_CSSlink(0, $this->_findFile('jscalendar/calendar-phpwiki.css'), 'all')); $this->addMoreHeaders(JavaScript('', array('src' => $this->_findData('jscalendar/calendar' . (DEBUG ? '' : '_stripped') . '.js')))); if (!($langfile = $this->_findData("jscalendar/lang/calendar-{$jslang}.js"))) { $langfile = $this->_findData("jscalendar/lang/calendar-en.js"); } $this->addMoreHeaders(JavaScript('', array('src' => $langfile))); $this->addMoreHeaders(JavaScript('', array('src' => $this->_findData('jscalendar/calendar-setup' . (DEBUG ? '' : '_stripped') . '.js')))); // Get existing date entries for the current user require_once "lib/TextSearchQuery.php"; $iter = $dbi->titleSearch(new TextSearchQuery("^" . $this->calendarBase() . SUBPAGE_SEPARATOR, true, "auto")); $existing = array(); while ($page = $iter->next()) { if ($page->exists()) { $existing[] = basename($page->_pagename); } } if (!empty($existing)) { $js_exist = '{"' . join('":1,"', $existing) . '":1}'; //var SPECIAL_DAYS = {"2004-05-11":1,"2004-05-12":1,"2004-06-01":1} $this->addMoreHeaders(JavaScript(' /* This table holds the existing calender entries for the current user * calculated from the database */ var SPECIAL_DAYS = ' . javascript_quote_string($js_exist) . '; /* This function returns true if the date exists in SPECIAL_DAYS */ function dateExists(date, y, m, d) { var year = date.getFullYear(); m = m + 1; m = m < 10 ? "0" + m : m; // integer, 0..11 d = d < 10 ? "0" + d : d; // integer, 1..31 var date = year+"-"+m+"-"+d; var exists = SPECIAL_DAYS[date]; if (!exists) return false; else return true; } // This is the actual date status handler. // Note that it receives the date object as well as separate // values of year, month and date. function dateStatusFunc(date, y, m, d) { if (dateExists(date, y, m, d)) return "existing"; else return false; } ')); } else { $this->addMoreHeaders(JavaScript(' function dateStatusFunc(date, y, m, d) { return false;}')); } } }