diff -r d52dfa1f08da -r 323c4cd1aa37 includes/pageprocess.php
--- a/includes/pageprocess.php Mon May 04 23:07:00 2009 -0400
+++ b/includes/pageprocess.php Tue May 05 00:10:26 2009 -0400
@@ -181,10 +181,6 @@
if ( !$this->perms->get_permissions('read') )
{
- if ( $this->send_headers )
- {
- $template->init_vars($this);
- }
// Permission denied to read page. Is this one of our core pages that must always be allowed?
// NOTE: Not even the administration panel will work if ACLs deny access to it.
if ( $this->namespace == 'Special' && in_array($this->page_id, array('Login', 'Logout', 'LangExportJSON', 'CSS')) )
@@ -218,10 +214,6 @@
$admin_fail = false;
if ( $this->namespace == 'Admin' && strstr($this->page_id, '/') )
{
- if ( $this->send_headers )
- {
- $template->init_vars($this);
- }
$this->page_id = substr($this->page_id, 0, strpos($this->page_id, '/'));
$funcname = "page_{$this->namespace}_{$this->page_id}";
if ( function_exists($funcname) )
@@ -231,21 +223,19 @@
}
if ( isPage($pathskey) )
{
- if ( $this->send_headers )
- {
- $template->init_vars($this);
- }
- if ( $paths->pages[$pathskey]['special'] == 1 )
+ $cdata = $this->ns->get_cdata();
+
+ if ( $cdata['special'] == 1 )
{
$this->send_headers = false;
$strict_no_headers = true;
$GLOBALS['output'] = new Output_Naked();
}
- if ( isset($paths->pages[$pathskey]['password']) )
+ if ( isset($cdata['password']) )
{
- if ( $paths->pages[$pathskey]['password'] != '' && $paths->pages[$pathskey]['password'] != sha1('') )
+ if ( $cdata['password'] != '' && $cdata['password'] != sha1('') )
{
- $password =& $paths->pages[$pathskey]['password'];
+ $password =& $cdata['password'];
if ( $this->password != $password )
{
$this->err_wrong_password();
@@ -253,7 +243,7 @@
}
}
}
- if ( isset($paths->pages[$pathskey]['require_admin']) && $paths->pages[$pathskey]['require_admin'] )
+ if ( isset($cdata['require_admin']) && $cdata['require_admin'] )
{
if ( $session->auth_level < USER_LEVEL_ADMIN )
{
@@ -288,11 +278,6 @@
// We are all done. Ship off the page.
- if ( $this->send_headers )
- {
- $template->init_vars($this);
- }
-
$this->ns->send();
}
@@ -325,15 +310,12 @@
{
return '';
}
- $pathskey = $paths->nslist[ $this->namespace ] . $this->page_id;
- if ( isPage($pathskey) )
+ $cdata = $this->ns->get_cdata();
+ if ( isset($cdata['password']) )
{
- if ( isset($paths->pages[$pathskey]['password']) )
+ if ( $cdata['password'] != sha1('') && $cdata['password'] !== $this->password && !empty($cdata['password']) )
{
- if ( $paths->pages[$pathskey]['password'] != sha1('') && $paths->pages[$pathskey]['password'] !== $this->password && !empty($paths->pages[$pathskey]['password']) )
- {
- return false;
- }
+ return false;
}
}
return $this->fetch_text();
@@ -462,9 +444,9 @@
}
// Set page_format
- $pathskey = $paths->nslist[ $this->namespace ] . $this->page_id;
// Using @ due to warning thrown when saving new page
- if ( @$paths->pages[ $pathskey ]['page_format'] !== $page_format )
+ $cdata = $this->ns->get_cdata();
+ if ( @$cdata['page_format'] !== $page_format )
{
// Note: no SQL injection to worry about here. Everything that goes into this is sanitized already, barring some rogue plugin.
// (and if there's a rogue plugin running, we have bigger things to worry about anyway.)
@@ -906,15 +888,7 @@
}
// Retrieve page metadata
- $pathskey = $paths->nslist[ $this->namespace ] . $this->page_id;
- if ( !isPage($pathskey) )
- {
- return array(
- 'success' => false,
- 'error' => 'page_metadata_not_found'
- );
- }
- $metadata =& $paths->pages[$pathskey];
+ $metadata = $this->ns->get_cdata();
// Log the action
$username = $db->escape($session->username);
@@ -1000,8 +974,7 @@
foreach ( $stack as $oldtarget )
{
$url = makeUrlNS($oldtarget[1], $oldtarget[0], 'redirect=no', true);
- $page_id_key = $paths->nslist[ $oldtarget[1] ] . $oldtarget[0];
- $page_data = $paths->pages[$page_id_key];
+ $page_data = $this->ns->get_cdata();
$title = ( isset($page_data['name']) ) ? $page_data['name'] : $paths->nslist[$oldtarget[1]] . htmlspecialchars( str_replace('_', ' ', dirtify_page_id( $oldtarget[0] ) ) );
$a = '' . $title . '';
$output->add_after_header('' . $lang->get('page_msg_redirected_from', array('from' => $a)) . '
');
@@ -1125,14 +1098,13 @@
foreach ( $stack as $oldtarget )
{
$url = makeUrlNS($oldtarget[1], $oldtarget[0], 'redirect=no', true);
- $page_id_key = $paths->nslist[ $oldtarget[1] ] . $oldtarget[0];
- $page_data = $paths->pages[$page_id_key];
+ $old_page = namespace_factory($oldtarget[0], $oldtarget[1]);
+ $page_data = $old_page->get_cdata();
$title = ( isset($page_data['name']) ) ? $page_data['name'] : $paths->nslist[$oldtarget[1]] . htmlspecialchars( str_replace('_', ' ', dirtify_page_id( $oldtarget[0] ) ) );
$a = '' . $title . '';
$url = makeUrlNS($this->namespace, $this->page_id, 'redirect=no', true);
- $page_id_key = $paths->nslist[ $this->namespace ] . $this->page_id;
- $page_data = $paths->pages[$page_id_key];
+ $page_data = $this->ns->get_cdata();
$title = ( isset($page_data['name']) ) ? $page_data['name'] : $paths->nslist[$this->namespace] . htmlspecialchars( str_replace('_', ' ', dirtify_page_id( $this->page_id ) ) );
$b = '' . $title . '';