From: daniel Date: Mon, 29 Oct 2012 21:47:19 +0000 (+0100) Subject: Don't fail on incomplete row info when exporting. X-Git-Tag: 1.31.0-rc.0~21808^2 X-Git-Url: http://git.cyclocoop.org/%22.%24h.%22?a=commitdiff_plain;h=400dfb3550cabfeb7730563c8321e2c3d65bf637;p=lhc%2Fweb%2Fwiklou.git 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 --- 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";