From 400dfb3550cabfeb7730563c8321e2c3d65bf637 Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 29 Oct 2012 22:47:19 +0100 Subject: [PATCH] Don't fail on incomplete row info when exporting. This allows XmlDumpWriter to output rows that are missing some information without triggering php warnings. This fixes warnings caused by the OAI extension when using XmlDumpWriter::writeRevision without setting the row's rev_parent_id field. Generally, it seems convenient to allow optional fields to be unset instead of skipping them if they are empty, but requiering them to be set. Change-Id: I246ba3a899bd9e833232444a11ac63e1b0225ab6 --- includes/Export.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/includes/Export.php b/includes/Export.php index e2b01b5397..45a5366e1a 100644 --- a/includes/Export.php +++ b/includes/Export.php @@ -636,29 +636,29 @@ class XmlDumpWriter { $out = " \n"; $out .= " " . Xml::element( 'id', null, strval( $row->rev_id ) ) . "\n"; - if( $row->rev_parent_id ) { + if( isset( $row->rev_parent_id ) && $row->rev_parent_id ) { $out .= " " . Xml::element( 'parentid', null, strval( $row->rev_parent_id ) ) . "\n"; } $out .= $this->writeTimestamp( $row->rev_timestamp ); - if ( $row->rev_deleted & Revision::DELETED_USER ) { + if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_USER ) ) { $out .= " " . Xml::element( 'contributor', array( 'deleted' => 'deleted' ) ) . "\n"; } else { $out .= $this->writeContributor( $row->rev_user, $row->rev_user_text ); } - if ( $row->rev_minor_edit ) { + if ( isset( $row->rev_minor_edit ) && $row->rev_minor_edit ) { $out .= " \n"; } - if ( $row->rev_deleted & Revision::DELETED_COMMENT ) { + if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_COMMENT ) ) { $out .= " " . Xml::element( 'comment', array( 'deleted' => 'deleted' ) ) . "\n"; } elseif ( $row->rev_comment != '' ) { $out .= " " . Xml::elementClean( 'comment', array(), strval( $row->rev_comment ) ) . "\n"; } $text = ''; - if ( $row->rev_deleted & Revision::DELETED_TEXT ) { + if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_TEXT ) ) { $out .= " " . Xml::element( 'text', array( 'deleted' => 'deleted' ) ) . "\n"; } elseif ( isset( $row->old_text ) ) { // Raw text from the database may have invalid chars @@ -673,7 +673,7 @@ class XmlDumpWriter { "" ) . "\n"; } - if ( $row->rev_sha1 && !( $row->rev_deleted & Revision::DELETED_TEXT ) ) { + if ( isset( $row->rev_sha1 ) && $row->rev_sha1 && !( $row->rev_deleted & Revision::DELETED_TEXT ) ) { $out .= " " . Xml::element('sha1', null, strval( $row->rev_sha1 ) ) . "\n"; } else { $out .= " \n"; -- 2.20.1