* (bug 1430) Don't check for template data when editing page that doesn't exist
authorBrion Vibber <brion@users.mediawiki.org>
Sun, 6 Feb 2005 07:28:21 +0000 (07:28 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Sun, 6 Feb 2005 07:28:21 +0000 (07:28 +0000)
patch from zigger

includes/Article.php
includes/EditPage.php

index 79c0eb0..bff74f0 100644 (file)
@@ -479,12 +479,16 @@ class Article {
                if ( -1 != $this->mUser )
                        return;
 
+               # New or non-existent articles have no user information
+               $id = $this->getID();
+               if ( 0 == $id ) return;
+
                $fname = 'Article::loadLastEdit';
 
                $dbr =& $this->getDB();
                $s = $dbr->selectRow( array( 'revision', 'page') ,
                  array( 'rev_user','rev_user_text','rev_timestamp', 'rev_comment','rev_minor_edit' ),
-                 array( 'page_id' => $this->getID(), 'page_latest=rev_id' ), $fname, $this->getSelectOptions() );
+                 array( 'page_id' => $id, 'page_latest=rev_id' ), $fname, $this->getSelectOptions() );
 
                if ( $s !== false ) {
                        $this->mUser = $s->rev_user;
index f645af1..95e59c8 100644 (file)
@@ -580,24 +580,27 @@ class EditPage {
                        $wgOut->setOnloadHandler( 'document.editform.wpTextbox1.focus()' );
                }
                # Prepare a list of templates used by this page
-               $db =& wfGetDB( DB_SLAVE );
-               $page = $db->tableName( 'page' );
-               $links = $db->tableName( 'links' );
+               $templates = '';
                $id = $this->mTitle->getArticleID();
-               $sql = "SELECT page_namespace,page_title,page_id ".
-                       "FROM $page,$links WHERE l_to=page_id AND l_from={$id} and page_namespace=".NS_TEMPLATE;
-               $res = $db->query( $sql, "EditPage::editform" );
-
-               if ( $db->numRows( $res ) ) {
-                       $templates = '<br />'. wfMsg( 'templatesused' ) . '<ul>';
-                       while ( $row = $db->fetchObject( $res ) ) {
-                               if ( $titleObj = Title::makeTitle( $row->page_namespace, $row->page_title ) ) {
-                                       $templates .= '<li>' . $sk->makeLinkObj( $titleObj ) . '</li>';
+               if ( 0 !== $id ) {
+                       $db =& wfGetDB( DB_SLAVE );
+                       $page = $db->tableName( 'page' );
+                       $links = $db->tableName( 'links' );
+                       $sql = "SELECT page_namespace,page_title,page_id ".
+                               "FROM $page,$links WHERE l_to=page_id AND l_from={$id} and page_namespace=".NS_TEMPLATE;
+                       $res = $db->query( $sql, "EditPage::editform" );
+                       if ( false !== $res ) {
+                               if ( $db->numRows( $res ) ) {
+                                       $templates = '<br />'. wfMsg( 'templatesused' ) . '<ul>';
+                                       while ( $row = $db->fetchObject( $res ) ) {
+                                               if ( $titleObj = Title::makeTitle( $row->page_namespace, $row->page_title ) ) {
+                                                       $templates .= '<li>' . $sk->makeLinkObj( $titleObj ) . '</li>';
+                                               }
+                                       }
+                                       $templates .= '</ul>';
                                }
+                               $db->freeResult( $res );
                        }
-                       $templates .= '</ul>';
-               } else {        
-                       $templates = '';
                }
                
                global $wgLivePreview, $wgStylePath;