Fixed tons of bugs relating to non-templated pages
authorDan
Tue, 26 Jun 2007 21:49:46 -0400
changeset 24 9ecc94c4c7f5
parent 23 320acf077276
child 25 08d027882993
Fixed tons of bugs relating to non-templated pages
includes/pageprocess.php
includes/render.php
includes/wikiengine/Tables.php
--- a/includes/pageprocess.php	Tue Jun 26 21:03:02 2007 -0400
+++ b/includes/pageprocess.php	Tue Jun 26 21:49:46 2007 -0400
@@ -134,6 +134,16 @@
       $this->err_access_denied();
       return false;
     }
+    $pathskey = $paths->nslist[ $this->namespace ] . $this->page_id;
+    $strict_no_headers = false;
+    if ( isset($paths->pages[$pathskey]) )
+    {
+      if ( $paths->pages[$pathskey]['special'] == 1 )
+      {
+        $this->send_headers = false;
+        $strict_no_headers = true;
+      }
+    }
     if ( $this->namespace == 'Special' || $this->namespace == 'Admin' )
     {
       if ( !$this->page_exists )
@@ -217,7 +227,7 @@
       }
       else
       {
-        $this->render();
+        $this->render( (!$strict_no_headers) );
       }
     }
   }
@@ -287,15 +297,15 @@
    * @access private
    */
   
-  function render()
+  function render($incl_inner_headers = true)
   {
     $text = $this->fetch_text();
     
     $this->header();
-    // if ( $this->send_headers )
-    // {
+    if ( $incl_inner_headers )
+    {
       display_page_headers();
-    // }
+    }
     
     if ( $this->revision_id )
     {
@@ -306,10 +316,10 @@
     // echo('<pre>'.htmlspecialchars($text).'</pre>');
     eval ( $text );
     
-    // if ( $this->send_headers )
-    // {
+    if ( $incl_inner_headers )
+    {
       display_page_footers();
-    // }
+    }
     
     $this->footer();
   }
--- a/includes/render.php	Tue Jun 26 21:03:02 2007 -0400
+++ b/includes/render.php	Tue Jun 26 21:49:46 2007 -0400
@@ -597,10 +597,9 @@
     
     $can_do_php = ( $session->get_permissions('php_in_pages') && !$strip_all_php );
     
-    $text = sanitize_html($text, ( !$can_do_php ));
-    
     if ( !$can_do_php )
     {
+      $text = sanitize_html($text, true);
       // If we can't do PHP, we can't do Javascript either.
       $text = RenderMan::destroy_javascript($text);
     }
--- a/includes/wikiengine/Tables.php	Tue Jun 26 21:03:02 2007 -0400
+++ b/includes/wikiengine/Tables.php	Tue Jun 26 21:49:46 2007 -0400
@@ -982,13 +982,13 @@
 	 */
 	function decodeCharReferencesCallback( $matches ) {
 		if( $matches[1] != '' ) {
-			return Sanitizer::decodeEntity( $matches[1] );
+			return decodeEntity( $matches[1] );
 		} elseif( $matches[2] != '' ) {
-			return  Sanitizer::decodeChar( intval( $matches[2] ) );
+			return  decodeChar( intval( $matches[2] ) );
 		} elseif( $matches[3] != ''  ) {
-			return  Sanitizer::decodeChar( hexdec( $matches[3] ) );
+			return  decodeChar( hexdec( $matches[3] ) );
 		} elseif( $matches[4] != '' ) {
-			return  Sanitizer::decodeChar( hexdec( $matches[4] ) );
+			return  decodeChar( hexdec( $matches[4] ) );
 		}
 		# Last case should be an ampersand by itself
 		return $matches[0];