function xmlCommentSafe($text) { return str_replace('--', '\\-\\-', xmlsafe(recodeText($text))); }
/** */ function dumpReplayEntry($row) { $title = Title::MakeTitle($row->rc_namespace, $row->rc_title); switch ($row->rc_type) { case RC_EDIT: case RC_NEW: # Edit $dbr =& wfGetDB(DB_MASTER); $out = " <edit>\n"; $out .= " <title>" . xmlsafe($title->getPrefixedText()) . "</title>\n"; # Get previous edit timestamp if ($row->rc_last_oldid) { $s = $dbr->selectRow('old', array('old_timestamp'), array('old_id' => $row->rc_last_oldid)); $out .= " <lastedit>" . wfTimestamp2ISO8601($s->old_timestamp) . "</lastedit>\n"; } else { $out .= " <newpage/>\n"; } if ($row->rc_this_oldid) { $s = $dbr->selectRow('old', array('old_id as id', 'old_timestamp as timestamp', 'old_user as user', 'old_user_text as user_text', 'old_comment as comment', 'old_text as text', 'old_flags as flags'), array('old_id' => $row->rc_this_oldid)); $out .= revision2xml($s, true, false); } else { $s = $dbr->selectRow('cur', array('cur_id as id', 'cur_timestamp as timestamp', 'cur_user as user', 'cur_user_text as user_text', 'cur_restrictions as restrictions', 'cur_comment as comment', 'cur_text as text'), array('cur_id' => $row->rc_cur_id)); $out .= revision2xml($s, true, true); } $out .= " </edit>\n"; break; case RC_LOG: $dbr =& wfGetDB(DB_MASTER); $s = $dbr->selectRow('logging', array('log_type', 'log_action', 'log_timestamp', 'log_user', 'log_namespace', 'log_title', 'log_comment'), array('log_timestamp' => $row->rc_timestamp, 'log_user' => $row->rc_user)); $ts = wfTimestamp2ISO8601($row->rc_timestamp); $target = Title::MakeTitle($s->log_namespace, $s->log_title); $out = " <log>\n"; $out .= " <type>" . xmlsafe($s->log_type) . "</type>\n"; $out .= " <action>" . xmlsafe($s->log_action) . "</action>\n"; $out .= " <timestamp>" . $ts . "</timestamp>\n"; $out .= " <contributor><username>" . xmlsafe($row->rc_user_text) . "</username></contributor>\n"; $out .= " <target>" . xmlsafe($target->getPrefixedText()) . "</target>\n"; $out .= " <comment>" . xmlsafe($s->log_comment) . "</comment>\n"; $out .= " </log>\n"; break; case RC_MOVE: case RC_MOVE_OVER_REDIRECT: $target = Title::MakeTitle($row->rc_moved_to_ns, $row->rc_moved_to_title); $out = " <move>\n"; $out .= " <title>" . xmlsafe($title->getPrefixedText()) . "</title>\n"; $out .= " <target>" . xmlsafe($target->getPrefixedText()) . "</target>\n"; if ($row->rc_type == RC_MOVE_OVER_REDIRECT) { $out .= " <override/>\n"; } $ts = wfTimestamp2ISO8601($row->rc_timestamp); $out .= " <id>{$row->rc_cur_id}</id>\n"; $out .= " <timestamp>{$ts}</timestamp>\n"; if ($row->rc_user_text) { $u = "<username>" . xmlsafe($row->rc_user_text) . "</username>"; $u .= "<id>{$row->rc_user}</id>"; } else { $u = "<ip>" . xmlsafe($row->rc_user_text) . "</ip>"; } $out .= " <contributor>{$u}</contributor>\n"; $out .= " </move>\n"; } return $out; }
function renderHeader($datestyle) { $tag = $this->isDeleted() ? 'header status="deleted"' : 'header'; $ident = xmlsafe($this->getIdentifier()); $date = oaiDatestamp($this->getDatestamp(), $datestyle); return "<{$tag}>\n" . " <identifier>{$ident}</identifier>\n" . " <datestamp>{$date}</datestamp>\n" . "</header>\n"; }