summaryrefslogtreecommitdiff
path: root/includes/specials/SpecialAllmessages.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/specials/SpecialAllmessages.php')
-rw-r--r--includes/specials/SpecialAllmessages.php85
1 files changed, 49 insertions, 36 deletions
diff --git a/includes/specials/SpecialAllmessages.php b/includes/specials/SpecialAllmessages.php
index c2a8de4e..0ff94b49 100644
--- a/includes/specials/SpecialAllmessages.php
+++ b/includes/specials/SpecialAllmessages.php
@@ -29,15 +29,19 @@ function wfSpecialAllmessages() {
$wgMessageCache->loadAllMessages();
- $sortedArray = array_merge( Language::getMessagesFor( 'en' ), $wgMessageCache->getExtensionMessagesFor( 'en' ) );
+ $sortedArray = array_merge( Language::getMessagesFor( 'en' ),
+ $wgMessageCache->getExtensionMessagesFor( 'en' ) );
ksort( $sortedArray );
- $messages = array();
- foreach ( $sortedArray as $key => $value ) {
+ $messages = array();
+ foreach( $sortedArray as $key => $value ) {
$messages[$key]['enmsg'] = $value;
- $messages[$key]['statmsg'] = wfMsgReal( $key, array(), false, false, false ); // wfMsgNoDbNoTrans doesn't exist
+ $messages[$key]['statmsg'] = wfMsgReal( $key, array(), false, false, false );
$messages[$key]['msg'] = wfMsgNoTrans( $key );
+ $sortedArray[$key] = NULL; // trade bytes from $sortedArray to this
+
}
+ unset($sortedArray); // trade bytes from $sortedArray to this
wfProfileOut( __METHOD__ . '-setup' );
@@ -63,13 +67,14 @@ function wfSpecialAllmessages() {
wfProfileOut( __METHOD__ );
}
-function wfAllMessagesMakeXml( $messages ) {
+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";
+ $messages[$key] = NULL; // trade bytes
}
$txt .= "</messages>";
return $txt;
@@ -81,7 +86,7 @@ function wfAllMessagesMakeXml( $messages ) {
* @return The PHP messages array.
* @todo Make suitable for language files.
*/
-function wfAllMessagesMakePhp( $messages ) {
+function wfAllMessagesMakePhp( &$messages ) {
global $wgLang;
$txt = "\n\n\$messages = array(\n";
foreach( $messages as $key => $m ) {
@@ -94,6 +99,7 @@ function wfAllMessagesMakePhp( $messages ) {
$comment = '';
}
$txt .= "'$key' => '" . preg_replace( '/(?<!\\\\)\'/', "\'", $m['msg']) . "',$comment\n";
+ $messages[$key] = NULL; // trade bytes
}
$txt .= ');';
return $txt;
@@ -104,7 +110,7 @@ function wfAllMessagesMakePhp( $messages ) {
* @param $messages Messages array.
* @return The HTML list of messages.
*/
-function wfAllMessagesMakeHTMLText( $messages ) {
+function wfAllMessagesMakeHTMLText( &$messages ) {
global $wgLang, $wgContLang, $wgUser;
wfProfileIn( __METHOD__ );
@@ -123,7 +129,8 @@ function wfAllMessagesMakeHTMLText( $messages ) {
'onclick' => 'allmessagesmodified()'
), '' );
- $txt = '<span id="allmessagesfilter" style="display: none;">' . wfMsgHtml( 'allmessagesfilter' ) . " {$input}{$checkbox} " . '</span>';
+ $txt = '<span id="allmessagesfilter" style="display: none;">' . wfMsgHtml( 'allmessagesfilter' ) .
+ " {$input}{$checkbox} " . '</span>';
$txt .= '
<table border="1" cellspacing="0" width="100%" id="allmessagestable">
@@ -144,11 +151,14 @@ function wfAllMessagesMakeHTMLText( $messages ) {
NS_MEDIAWIKI_TALK => array()
);
$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 );
+ $res = $dbr->select( 'page',
+ array( 'page_namespace', 'page_title' ),
+ array( 'page_namespace' => array(NS_MEDIAWIKI,NS_MEDIAWIKI_TALK) ),
+ __METHOD__,
+ array( 'USE INDEX' => 'name_title' )
+ );
while( $s = $dbr->fetchObject( $res ) ) {
- $pageExists[$s->page_namespace][$s->page_title] = true;
+ $pageExists[$s->page_namespace][$s->page_title] = 1;
}
$dbr->freeResult( $res );
wfProfileOut( __METHOD__ . "-check" );
@@ -163,19 +173,21 @@ function wfAllMessagesMakeHTMLText( $messages ) {
$title .= '/' . $wgLang->getCode();
}
- $titleObj =& Title::makeTitle( NS_MEDIAWIKI, $title );
- $talkPage =& Title::makeTitle( NS_MEDIAWIKI_TALK, $title );
+ $titleObj = Title::makeTitle( NS_MEDIAWIKI, $title );
+ $talkPage = Title::makeTitle( NS_MEDIAWIKI_TALK, $title );
$changed = ( $m['statmsg'] != $m['msg'] );
$message = htmlspecialchars( $m['statmsg'] );
$mw = htmlspecialchars( $m['msg'] );
- if( isset( $pageExists[NS_MEDIAWIKI][$title] ) ) {
- $pageLink = $sk->makeKnownLinkObj( $titleObj, "<span id=\"sp-allmessages-i-$i\">" . htmlspecialchars( $key ) . '</span>' );
+ if( array_key_exists( $title, $pageExists[NS_MEDIAWIKI] ) ) {
+ $pageLink = $sk->makeKnownLinkObj( $titleObj, "<span id=\"sp-allmessages-i-$i\">" .
+ htmlspecialchars( $key ) . '</span>' );
} else {
- $pageLink = $sk->makeBrokenLinkObj( $titleObj, "<span id=\"sp-allmessages-i-$i\">" . htmlspecialchars( $key ) . '</span>' );
+ $pageLink = $sk->makeBrokenLinkObj( $titleObj, "<span id=\"sp-allmessages-i-$i\">" .
+ htmlspecialchars( $key ) . '</span>' );
}
- if( isset( $pageExists[NS_MEDIAWIKI_TALK][$title] ) ) {
+ if( array_key_exists( $title, $pageExists[NS_MEDIAWIKI_TALK] ) ) {
$talkLink = $sk->makeKnownLinkObj( $talkPage, htmlspecialchars( $talk ) );
} else {
$talkLink = $sk->makeBrokenLinkObj( $talkPage, htmlspecialchars( $talk ) );
@@ -186,27 +198,28 @@ function wfAllMessagesMakeHTMLText( $messages ) {
if( $changed ) {
$txt .= "
- <tr class=\"orig\" id=\"sp-allmessages-r1-$i\">
- <td rowspan=\"2\">
- $anchor$pageLink<br />$talkLink
- </td><td>
-$message
- </td>
- </tr><tr class=\"new\" id=\"sp-allmessages-r2-$i\">
- <td>
-$mw
- </td>
- </tr>";
+ <tr class=\"orig\" id=\"sp-allmessages-r1-$i\">
+ <td rowspan=\"2\">
+ $anchor$pageLink<br />$talkLink
+ </td><td>
+ $message
+ </td>
+ </tr><tr class=\"new\" id=\"sp-allmessages-r2-$i\">
+ <td>
+ $mw
+ </td>
+ </tr>";
} else {
$txt .= "
- <tr class=\"def\" id=\"sp-allmessages-r1-$i\">
- <td>
- $anchor$pageLink<br />$talkLink
- </td><td>
-$mw
- </td>
- </tr>";
+ <tr class=\"def\" id=\"sp-allmessages-r1-$i\">
+ <td>
+ $anchor$pageLink<br />$talkLink
+ </td><td>
+ $mw
+ </td>
+ </tr>";
}
+ $messages[$key] = NULL; // trade bytes
$i++;
}
$txt .= '</table>';