diff -r d52dfa1f08da -r 323c4cd1aa37 includes/namespaces/special.php --- a/includes/namespaces/special.php Mon May 04 23:07:00 2009 -0400 +++ b/includes/namespaces/special.php Tue May 05 00:10:26 2009 -0400 @@ -20,9 +20,50 @@ $this->page_id = sanitize_page_id($page_id); $this->namespace = $namespace; + $this->build_cdata(); $this->revision_id = intval($revision_id); + $this->page_protected = true; + $this->wiki_mode = 0; + } + + public function build_cdata() + { + global $db, $session, $paths, $template, $plugins; // Common objects + global $lang; + $this->exists = function_exists("page_{$this->namespace}_{$this->page_id}"); + + if ( isset($paths->pages[ $paths->get_pathskey($this->page_id, $this->namespace) ]) ) + { + $page_name = $paths->pages[ $paths->get_pathskey($this->page_id, $this->namespace) ]['name']; + } + else + { + $page_name = "{$paths->nslist[ $this->namespace ]}{$this->page_id}"; + if ( ($_ = $lang->get('specialpage_' . strtolower($this->page_id))) !== 'specialpage_' . strtolower($this->page_id) ) + { + $page_name = $_; + } + } + + $this->cdata = array( + 'name' => $page_name, + 'urlname' => $this->page_id, + 'namespace' => $this->namespace, + 'special' => 0, + 'visible' => 0, + 'comments_on' => 0, + 'protected' => 0, + 'delvotes' => 0, + 'delvote_ips' => '', + 'wiki_mode' => 2, + 'page_exists' => false, + 'page_format' => getConfig('default_page_format', 'wikitext') + ); + $this->cdata = Namespace_Default::bake_cdata($this->cdata); + + $this->title =& $this->cdata['name']; } function send() @@ -31,7 +72,7 @@ if ( $this->exists ) { - @call_user_func("page_{$this->namespace}_{$this->page_id}"); + call_user_func("page_{$this->namespace}_{$this->page_id}"); } else { @@ -57,4 +98,12 @@ echo "

$message

"; $output->footer(); } + + function set_conds() + { + parent::set_conds(); + + $this->conds['printable'] = false; + $this->conds['adminpage'] = false; + } }