X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FSpecialAllmessages.php;h=e20d1749c2d98b1a81d5dcf7ee370bdafa77e0ff;hb=f39215283421d4319e9c2e46b5a7181c6a1b4ead;hp=1a787bc6ab50ee552f6a8ae9cd6234c34ab23e34;hpb=5edddf8238e6b02ac7eafab09d56bf0323a8bc92;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialAllmessages.php b/includes/SpecialAllmessages.php index 1a787bc6ab..e20d1749c2 100644 --- a/includes/SpecialAllmessages.php +++ b/includes/SpecialAllmessages.php @@ -1,139 +1,169 @@ getText( 'ot' ); - $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 ); - } - wfProfileOut( "$fname-setup" ); - - wfProfileIn( "$fname-output" ); - if ($ot == 'php') { - $navText .= makePhp($messages); - $wgOut->addHTML('PHP | HTML
'.htmlspecialchars($navText).'
'); - } else { - $wgOut->addHTML( 'PHP | HTML' ); - $wgOut->addWikiText( $navText ); - $wgOut->addHTML( makeHTMLText( $messages ) ); - } - wfProfileOut( "$fname-output" ); - - wfProfileOut( $fname ); +/** + * + */ +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 ); + + wfProfileIn( "$fname-setup"); + $ot = $wgRequest->getText( 'ot' ); + + $navText = wfMsg( 'allmessagestext' ); + + + $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" ); - function makePhp($messages) { - global $wgLanguageCode; - $txt = "\n\n".'$wgAllMessages'.ucfirst($wgLanguageCode).' = array('."\n"; - foreach( $messages as $key => $m ) { - if(strtolower($wgLanguageCode) != 'en' and $m['msg'] == $m['enmsg'] ) { - if (strstr($m['msg'],"\n")) { - $txt.='/* '; - $comment=' */'; - } else { - $txt .= '#'; - $comment = ''; - } - } elseif ($m['msg'] == '<'.$key.'>'){ - $m['msg'] = ''; - $comment = ' #empty'; + wfProfileIn( "$fname-output" ); + if ($ot == 'php') { + $navText .= makePhp($messages); + $wgOut->addHTML('PHP | HTML
'.htmlspecialchars($navText).'
'); + } else { + $wgOut->addHTML( 'PHP | HTML' ); + $wgOut->addWikiText( $navText ); + $wgOut->addHTML( makeHTMLText( $messages ) ); + } + wfProfileOut( "$fname-output" ); + + wfProfileOut( $fname ); +} + +/** + * + */ +function makePhp($messages) { + global $wgLanguageCode; + $txt = "\n\n".'$wgAllMessages'.ucfirst($wgLanguageCode).' = array('."\n"; + foreach( $messages as $key => $m ) { + if(strtolower($wgLanguageCode) != 'en' and $m['msg'] == $m['enmsg'] ) { + if (strstr($m['msg'],"\n")) { + $txt.='/* '; + $comment=' */'; } else { + $txt .= '#'; $comment = ''; } - $txt .= "'".$key."' => \"".str_replace('"','\"',$m['msg'])."\",$comment\n"; + } elseif ($m['msg'] == '<'.$key.'>'){ + $m['msg'] = ''; + $comment = ' #empty'; + } else { + $comment = ''; } - $txt .= ');'; - return $txt; + $txt .= "'$key' => '" . preg_replace( "/(?getSkin(); - $talk = $wgLang->getNsText( NS_TALK ); - $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI ); - $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK ); - $txt = " - - - - - - - "; +/** + * + */ +function makeHTMLText( $messages ) { + global $wgLang, $wgUser, $wgLanguageCode, $wgContLanguageCode, $wgContLang; + $fname = "makeHTMLText"; + wfProfileIn( $fname ); + + $sk =& $wgUser->getSkin(); + $talk = $wgLang->getNsText( NS_TALK ); + $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI ); + $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK ); + $txt = " + +
NameDefault textCurrent text
+ + + + + "; + + wfProfileIn( "$fname-check" ); + # This is a nasty hack to avoid doing independent existence checks + # without sending the links and table through the slow wiki parser. + $pageExists = array( + NS_MEDIAWIKI => array(), + 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 ); + while( $s = $dbr->fetchObject( $res ) ) { + $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 ); + + $colorIt = ($m['statmsg'] == $m['msg']) ? " bgcolor=\"#f0f0ff\"" : " bgcolor=\"#ffe2e2\""; + $message = htmlspecialchars( $m['statmsg'] ); + $mw = htmlspecialchars( $m['msg'] ); - wfProfileIn( "$fname-check" ); - # This is a nasty hack to avoid doing independent existence checks - # without sending the links and table through the slow wiki parser. - $pageExists = array( - 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 ); - $res = $dbr->query( $sql ); - while( $s = $dbr->fetchObject( $res ) ) { - $pageExists[$s->cur_namespace][$s->cur_title] = true; + #$pageLink = $sk->makeLinkObj( $titleObj, htmlspecialchars( $key ) ); + #$talkLink = $sk->makeLinkObj( $talkPage, htmlspecialchars( $talk ) ); + if( isset( $pageExists[NS_MEDIAWIKI][$title] ) ) { + $pageLink = $sk->makeKnownLinkObj( $titleObj, htmlspecialchars( $key ) ); + } else { + $pageLink = $sk->makeBrokenLinkObj( $titleObj, htmlspecialchars( $key ) ); } - $dbr->freeResult( $res ); - wfProfileOut( "$fname-check" ); - - wfProfileIn( "$fname-output" ); - foreach( $messages as $key => $m ) { - $title = $wgLang->ucfirst( $key ); - $titleObj =& Title::makeTitle( NS_MEDIAWIKI, $title ); - $talkPage =& Title::makeTitle( NS_MEDIAWIKI_TALK, $title ); - - $colorIt = ($m['statmsg'] == $m['msg']) ? " bgcolor=\"#f0f0ff\"" : " bgcolor=\"#ffe2e2\""; - $message = htmlspecialchars( $m['statmsg'] ); - $mw = htmlspecialchars( $m['msg'] ); - - #$pageLink = $sk->makeLinkObj( $titleObj, htmlspecialchars( $key ) ); - #$talkLink = $sk->makeLinkObj( $talkPage, htmlspecialchars( $talk ) ); - if( isset( $pageExists[NS_MEDIAWIKI][$title] ) ) { - $pageLink = $sk->makeKnownLinkObj( $titleObj, htmlspecialchars( $key ) ); - } else { - $pageLink = $sk->makeBrokenLinkObj( $titleObj, htmlspecialchars( $key ) ); - } - if( isset( $pageExists[NS_MEDIAWIKI_TALK][$title] ) ) { - $talkLink = $sk->makeKnownLinkObj( $talkPage, htmlspecialchars( $talk ) ); - } else { - $talkLink = $sk->makeBrokenLinkObj( $talkPage, htmlspecialchars( $talk ) ); - } - - $txt .= - ""; + if( isset( $pageExists[NS_MEDIAWIKI_TALK][$title] ) ) { + $talkLink = $sk->makeKnownLinkObj( $talkPage, htmlspecialchars( $talk ) ); + } else { + $talkLink = $sk->makeBrokenLinkObj( $talkPage, htmlspecialchars( $talk ) ); } - $txt .= "
" . wfMsg('allmessagesname') . "" . wfMsg('allmessagesdefault') . "" . wfMsg('allmessagescurrent') . "
- $pageLink
- $talkLink -
- $message - - $mw -
"; - wfProfileOut( "$fname-output" ); - wfProfileOut( $fname ); - return $txt; + $txt .= + " + $pageLink
+ $talkLink + + $message + + $mw + "; } + $txt .= ""; + wfProfileOut( "$fname-output" ); + + wfProfileOut( $fname ); + return $txt; +} ?>