<?php
/**
* Use this special page to get a list of the MediaWiki system messages.
- * @package MediaWiki
- * @subpackage SpecialPage
+ * @addtogroup SpecialPage
*/
/**
# The page isn't much use if the MediaWiki namespace is not being used
if( !$wgUseDatabaseMessages ) {
- $wgOut->addWikiText( wfMsg( 'allmessagesnotsupportedDB' ) );
+ $wgOut->addWikiMsg( 'allmessagesnotsupportedDB' );
return;
}
$navText = wfMsg( 'allmessagestext' );
# Make sure all extension messages are available
- MessageCache::loadAllMessages();
+
+ $wgMessageCache->loadAllMessages();
- $first = true;
$sortedArray = array_merge( Language::getMessagesFor( 'en' ), $wgMessageCache->getExtensionMessagesFor( 'en' ) );
ksort( $sortedArray );
$messages = array();
- $wgMessageCache->disableTransform();
foreach ( $sortedArray as $key => $value ) {
$messages[$key]['enmsg'] = $value;
- $messages[$key]['statmsg'] = wfMsgNoDb( $key );
- $messages[$key]['msg'] = wfMsg ( $key );
+ $messages[$key]['statmsg'] = wfMsgReal( $key, array(), false, false, false ); // wfMsgNoDbNoTrans doesn't exist
+ $messages[$key]['msg'] = wfMsgNoTrans( $key );
}
- $wgMessageCache->enableTransform();
wfProfileOut( __METHOD__ . '-setup' );
wfProfileIn( __METHOD__ . '-output' );
if ( $ot == 'php' ) {
- $navText .= makePhp( $messages );
- $wgOut->addHTML( 'PHP | <a href="' . $wgTitle->escapeLocalUrl( 'ot=html' ) . '">HTML</a><pre>' . htmlspecialchars( $navText ) . '</pre>' );
+ $navText .= wfAllMessagesMakePhp( $messages );
+ $wgOut->addHTML( 'PHP | <a href="' . $wgTitle->escapeLocalUrl( 'ot=html' ) . '">HTML</a> | ' .
+ '<a href="' . $wgTitle->escapeLocalUrl( 'ot=xml' ) . '">XML</a>' .
+ '<pre>' . htmlspecialchars( $navText ) . '</pre>' );
+ } else if ( $ot == 'xml' ) {
+ $wgOut->disable();
+ header( 'Content-type: text/xml' );
+ echo wfAllMessagesMakeXml( $messages );
} else {
- $wgOut->addHTML( '<a href="' . $wgTitle->escapeLocalUrl( 'ot=php' ) . '">PHP</a> | HTML' );
+ $wgOut->addHTML( '<a href="' . $wgTitle->escapeLocalUrl( 'ot=php' ) . '">PHP</a> | ' .
+ 'HTML | <a href="' . $wgTitle->escapeLocalUrl( 'ot=xml' ) . '">XML</a>' );
$wgOut->addWikiText( $navText );
- $wgOut->addHTML( makeHTMLText( $messages ) );
+ $wgOut->addHTML( wfAllMessagesMakeHTMLText( $messages ) );
}
wfProfileOut( __METHOD__ . '-output' );
wfProfileOut( __METHOD__ );
}
+function wfAllMessagesMakeXml( $messages ) {
+ global $wgLang;
+ $lang = $wgLang->getCode();
+ $txt = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
+ $txt .= "<messages lang=\"$lang\">\n";
+ foreach( $messages as $key => $m ) {
+ $txt .= "\t" . Xml::element( 'message', array( 'name' => $key ), $m['msg'] ) . "\n";
+ }
+ $txt .= "</messages>";
+ return $txt;
+}
+
/**
* Create the messages array, formatted in PHP to copy to language files.
* @param $messages Messages array.
* @return The PHP messages array.
* @todo Make suitable for language files.
*/
-function makePhp( $messages ) {
+function wfAllMessagesMakePhp( $messages ) {
global $wgLang;
$txt = "\n\n\$messages = array(\n";
foreach( $messages as $key => $m ) {
} else {
$comment = '';
}
- $txt .= "'$key' => '" . preg_replace( "/(?<!\\\\)'/", "\'", $m['msg']) . "',$comment\n";
+ $txt .= "'$key' => '" . preg_replace( '/(?<!\\\\)\'/', "\'", $m['msg']) . "',$comment\n";
}
$txt .= ');';
return $txt;
* @param $messages Messages array.
* @return The HTML list of messages.
*/
-function makeHTMLText( $messages ) {
+function wfAllMessagesMakeHTMLText( $messages ) {
global $wgLang, $wgContLang, $wgUser;
wfProfileIn( __METHOD__ );
- $sk =& $wgUser->getSkin();
- $talk = $wgLang->getNsText( NS_TALK );
- $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI );
- $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK );
+ $sk = $wgUser->getSkin();
+ $talk = wfMsg( 'talkpagelinktext' );
- $input = wfElement( 'input', array(
+ $input = Xml::element( 'input', array(
'type' => 'text',
'id' => 'allmessagesinput',
'onkeyup' => 'allmessagesfilter()'
), '' );
- $checkbox = wfElement( 'input', array(
+ $checkbox = Xml::element( 'input', array(
'type' => 'button',
'value' => wfMsgHtml( 'allmessagesmodified' ),
'id' => 'allmessagescheckbox',
NS_MEDIAWIKI => array(),
NS_MEDIAWIKI_TALK => array()
);
- $dbr =& wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_SLAVE );
$page = $dbr->tableName( 'page' );
$sql = "SELECT page_namespace,page_title FROM $page WHERE page_namespace IN (" . NS_MEDIAWIKI . ", " . NS_MEDIAWIKI_TALK . ")";
$res = $dbr->query( $sql );
return $txt;
}
-?>
+