Record and report memory usage change in profiling.
[lhc/web/wiklou.git] / includes / SpecialAllmessages.php
1 <?php
2
3 function wfSpecialAllmessages()
4 {
5 global $wgOut, $wgAllMessagesEn, $wgRequest, $wgMessageCache, $wgTitle;
6 $ot = $wgRequest->getText('ot');
7 $mwMsg =& MagicWord::get( MAG_MSG );
8 set_time_limit(0);
9 $navText = wfMsg( 'allmessagestext', $mwMsg->getSynonym( 0 ) );
10 $first = true;
11 $sortedArray = $wgAllMessagesEn;
12 ksort( $sortedArray );
13 $messages = array();
14 $wgMessageCache->disableTransform();
15 foreach ( $sortedArray as $key => $enMsg ) {
16 $messages[$key]['enmsg'] = $enMsg;
17 $messages[$key]['statmsg'] = wfMsgNoDb( $key );
18 $messages[$key]['msg'] = wfMsg ( $key );
19 }
20 if ($ot == 'html') {
21 $navText .= makeWikiText($messages);
22 $wgOut->addHTML('<a href="'.$wgTitle->getLocalUrl('ot=php').'">PHP</a> | HTML');
23 $wgOut->addWikiText($navText);
24 } else {
25 $navText .= makePhp($messages);
26 $wgOut->addHTML('PHP | <a href="'.$wgTitle->getLocalUrl('ot=html').'">HTML</a><pre>'.htmlspecialchars($navText).'</pre>');
27 }
28 return;
29 }
30 function makePhp($messages) {
31 global $wgLanguageCode;
32 $txt = "\n\n".'$wgAllMessages'.ucfirst($wgLanguageCode).' = array('."\n";
33 foreach( $messages as $key => $m ) {
34 if(strtolower($wgLanguageCode) != 'en' and $m['msg'] == $m['enmsg'] ) {
35 if (strstr($m['msg'],"\n")) {
36 $txt.='/* ';
37 $comment=' */';
38 } else {
39 $txt .= '#';
40 }
41 } elseif ($m['msg'] == '&lt;'.$key.'&gt;'){
42 $m['msg'] = '';
43 $comment = ' #empty';
44 } else {
45 $comment = '';
46 }
47 $txt .= "'".$key."' => \"".str_replace('"','\"',$m['msg'])."\",$comment\n";
48 }
49 $txt .= ');';
50 return $txt;
51 }
52
53
54 function makeWikiText($messages) {
55 global $wgLang;
56 $talk = $wgLang->getNsText( NS_TALK );
57 $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI );
58 $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK );
59 $txt = "
60
61 <table border=1 cellspacing=0 width=100%><tr bgcolor=#b2b2ff><td>
62 '''Name'''
63 </td><td>
64 '''Default text'''
65 </td><td>
66 '''Current text'''
67 </td></tr>";
68 foreach( $messages as $key => $m ) {
69 $titleObj = Title::newFromText( $key );
70 $title = $titleObj->getDBkey();
71
72 $colorIt = ($m['statmsg'] == $m['msg']) ? " bgcolor=\"#f0f0ff\"" : " bgcolor=\"#ffe2e2\"";
73 $message = wfEscapeWikiText( $m['statmsg'] );
74 $mw = wfEscapeWikiText( $m['msg'] );
75
76 $txt .=
77 "<tr$colorIt><td>
78 [[$mwnspace:$title|$key]]<br>
79 [[$mwtalk:$title|$talk]]
80 </td><td>
81 $message
82 </td><td>
83 $mw
84 </td></tr>";
85 }
86 $txt .= "</table>";
87
88 return $txt;
89 }
90
91 ?>