+
+ /**
+ * Dumps a <logitem> section on the output stream, with
+ * data filled in from the given database row.
+ *
+ * @param $row object
+ * @return string
+ * @access private
+ */
+ function writeLogItem( $row ) {
+ $fname = 'WikiExporter::writeLogItem';
+ wfProfileIn( $fname );
+
+ $out = " <logitem>\n";
+ $out .= " " . wfElement( 'id', null, strval( $row->log_id ) ) . "\n";
+
+ $out .= $this->writeTimestamp( $row->log_timestamp );
+
+ if( $row->log_deleted & LogPage::DELETED_USER ) {
+ $out .= " " . wfElement( 'contributor', array( 'deleted' => 'deleted' ) ) . "\n";
+ } else {
+ $out .= $this->writeContributor( $row->log_user, $row->user_name );
+ }
+
+ if( $row->log_deleted & LogPage::DELETED_COMMENT ) {
+ $out .= " " . wfElement( 'comment', array( 'deleted' => 'deleted' ) ) . "\n";
+ } elseif( $row->log_comment != '' ) {
+ $out .= " " . wfElementClean( 'comment', null, strval( $row->log_comment ) ) . "\n";
+ }
+
+ $out .= " " . wfElement( 'type', null, strval( $row->log_type ) ) . "\n";
+ $out .= " " . wfElement( 'action', null, strval( $row->log_action ) ) . "\n";
+
+ if( $row->log_deleted & LogPage::DELETED_ACTION ) {
+ $out .= " " . wfElement( 'text', array( 'deleted' => 'deleted' ) ) . "\n";
+ } else {
+ $title = Title::makeTitle( $row->log_namespace, $row->log_title );
+ $out .= " " . wfElementClean( 'title', null, $title->getPrefixedText() ) . "\n";
+ $out .= " " . wfElementClean( 'params',
+ array( 'xml:space' => 'preserve' ),
+ strval( $row->log_params ) ) . "\n";
+ }
+
+ $out .= " </logitem>\n";
+
+ wfProfileOut( $fname );
+ return $out;
+ }