USE INDEX -> DB::useIndexClause()
[lhc/web/wiklou.git] / includes / SpecialAllmessages.php
index f8cd28f..21085bc 100644 (file)
  */
 function wfSpecialAllmessages() {
        global $wgOut, $wgAllMessagesEn, $wgRequest, $wgMessageCache, $wgTitle;
-       
+       global $wgLanguageCode, $wgContLanguageCode, $wgContLang;
+       global $wgUseDatabaseMessages;
+
+       if(!$wgUseDatabaseMessages) {
+               $wgOut->addHTML(wfMsg('allmessagesnotsupportedDB'));
+               return;
+       }
+
        $fname = "wfSpecialAllMessages";
        wfProfileIn( $fname );
        
@@ -19,16 +26,21 @@ function wfSpecialAllmessages() {
        $mwMsg =& MagicWord::get( MAG_MSG );
        
        $navText = wfMsg( 'allmessagestext', $mwMsg->getSynonym( 0 ) );
+
+
        $first = true;
        $sortedArray = $wgAllMessagesEn;
        ksort( $sortedArray );
        $messages = array();
        $wgMessageCache->disableTransform();
+
        foreach ( $sortedArray as $key => $enMsg ) {
                $messages[$key]['enmsg'] = $enMsg;
                $messages[$key]['statmsg'] = wfMsgNoDb( $key );
                $messages[$key]['msg'] = wfMsg ( $key );
        }
+
+       $wgMessageCache->enableTransform();
        wfProfileOut( "$fname-setup" );
        
        wfProfileIn( "$fname-output" );
@@ -76,7 +88,7 @@ function makePhp($messages) {
  *
  */
 function makeHTMLText( $messages ) {
-       global $wgLang, $wgUser;
+       global $wgLang, $wgUser, $wgLanguageCode, $wgContLanguageCode, $wgContLang;
        $fname = "makeHTMLText";
        wfProfileIn( $fname );
        
@@ -100,18 +112,24 @@ function makeHTMLText( $messages ) {
                NS_MEDIAWIKI => array(),
                NS_MEDIAWIKI_TALK => array()
        );
-       $sql = "SELECT cur_namespace,cur_title FROM cur WHERE cur_namespace IN (" . NS_MEDIAWIKI . ", " . NS_MEDIAWIKI_TALK . ")";
        $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 );
        while( $s = $dbr->fetchObject( $res ) ) {
-               $pageExists[$s->cur_namespace][$s->cur_title] = true;
+               $pageExists[$s->page_namespace][$s->page_title] = true;
        }
        $dbr->freeResult( $res );
        wfProfileOut( "$fname-check" );
 
        wfProfileIn( "$fname-output" );
+
        foreach( $messages as $key => $m ) {
+
                $title = $wgLang->ucfirst( $key );
+               if($wgLanguageCode != $wgContLanguageCode)
+                       $title.="/$wgLanguageCode";
+
                $titleObj =& Title::makeTitle( NS_MEDIAWIKI, $title );
                $talkPage =& Title::makeTitle( NS_MEDIAWIKI_TALK, $title );