addWikiText( wfMsg( "exporttext" ) ); $action = wfLocalUrlE( $wgLang->SpecialPage( "Export" ) ); $wgOut->addHTML( "


" ); } function pages2xml( $pages, $curonly = false ) { global $wgLanguageCode, $wgInputEncoding, $wgLang; $xml = "\n"; foreach( $pages as $page ) { $xml .= page2xml( $page, $curonly ); } $xml .= "\n"; if($wgInputEncoding != "utf-8") $xml = $wgLang->iconv( $wgInputEncoding, "utf-8", $xml ); return $xml; } function page2xml( $page, $curonly, $full = false ) { global $wgInputCharset, $wgLang; $title = Title::NewFromText( $page ); if( !$title ) return ""; $t = wfStrencode( $title->getDBKey() ); $ns = $title->getNamespace(); $sql = "SELECT 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 FROM cur " . "WHERE cur_namespace=$ns AND cur_title='$t'"; $res = wfQuery( $sql, DB_READ ); if( $s = wfFetchObject( $res ) ) { $tl = htmlspecialchars( $title->getPrefixedText() ); $xml = " \n"; $xml .= " $tl\n"; if( $full ) { $xml .= " $s->id\n"; } if( $s->restrictions ) { $xml .= " $s->restrictions\n"; } if( !$curonly ) { $sql = "SELECT 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 FROM old " . "WHERE old_namespace=$ns AND old_title='$t' ORDER BY old_timestamp"; $res = wfQuery( $sql, DB_READ ); while( $s = wfFetchObject( $res ) ) { $xml .= revision2xml( $s, $full, false ); } } $xml .= revision2xml( $s, $full, true ); $xml .= " \n"; return $xml; } else { return ""; } } function revision2xml( $s, $full, $cur ) { $ts = wfTimestamp2ISO8601( $s->timestamp ); $xml = " \n"; if($full && !$cur) $xml .= " $s->id\n"; $xml .= " $ts\n"; if($s->user) { $u = "" . htmlspecialchars( $s->user_text ) . ""; if($full) $u .= "$s->user"; } else { $u = "" . htmlspecialchars( $s->user_text ) . ""; } $xml .= " $u\n"; if($s->minor) { $xml .= " \n"; } if($s->comment != "") { $c = htmlspecialchars( $s->comment ); $xml .= " $c\n"; } $t = htmlspecialchars( $s->text ); $xml .= " $t\n"; $xml .= " \n"; return $xml; } function wfTimestamp2ISO8601( $ts ) { #2003-08-05T18:30:02Z return preg_replace( '/^(....)(..)(..)(..)(..)(..)$/', '$1-$2-$3T$4:$5:$6Z', $ts ); } ?>