bug fix
[mediawiki.git] / maintenance / InitialiseMessages.inc
bloba2961476d437aea2f935c420a10a66ab7101e79d
1 <?
3 # This script is included from update.php and install.php. Do not run it 
4 # by itself.
6 function initialiseMessages( $overwrite = false) {
7         global $wgLang, $wgScript, $wgServer, $wgAllMessagesEn;
9         $fname = "initialiseMessages";
10         $ns = NS_MEDIAWIKI;
12         $timestamp = wfTimestampNow();
13         $invTimestamp = wfInvertTimestamp( $timestamp );
14         $navText = wfMsgNoDB( "allmessagestext" );
15         $navText .= "
17 <table border=1 width=100%><tr><td>
18   '''Name'''
19 </td><td>
20   '''Default text'''
21 </td><td>
22   '''Current text'''
23 </td></tr>";
24         
25         print "Initialising \"MediaWiki\" namespace...";
27         foreach ( $wgAllMessagesEn as $key => $enMsg ) {
28                 $message = wfMsgNoDB( $key );
29                 $titleObj = Title::newFromText( $key );
30                 $title = $titleObj->getDBkey();
31                 $dbencMsg = wfStrencode( $message );
32                 
33                 $doInsert = true;
34                 if ( $overwrite ) {
35                         $sql = "DELETE FROM cur WHERE cur_namespace=$ns AND cur_title='$title'";
36                         wfQuery( $sql, DB_WRITE, $fname );
37                 } else {        
38                         $row = wfGetArray("cur", array("1"),    
39                                 array("cur_namespace"=>$ns, "cur_title"=>$title));
40                         if ($row) {
41                                 $doInsert = false;
42                         }
43                 }
44                 if ( $doInsert ) {
45                         $sql = "INSERT INTO cur (cur_namespace, cur_title, cur_text,
46                                 cur_user_text, cur_timestamp, cur_restrictions,
47                                 cur_is_new, inverse_timestamp, cur_touched) VALUES (
48                                 $ns,
49                                 '$title',
50                                 '$dbencMsg',
51                                 'MediaWiki default',
52                                 '$timestamp',
53                                 'sysop',
54                                 1,
55                                 '$invTimestamp',
56                                 '$timestamp')";
57                         wfQuery( $sql, DB_WRITE, $fname );
58                 }
59                 $mwObj =& MagicWord::get( MAG_MSGNW );
60                 $mw = $mwObj->getSynonym( 0 );
61                 $mw = str_replace( "$1", $key, $mw );
63                 $message = wfEscapeWikiText( $message );
64                 $navText .= 
65 "<tr><td>
66   [$wgServer$wgScript?title=MediaWiki:$title&action=edit $key]
67 </td><td>
68   $message
69 </td><td>
70   $mw
71 </td></tr>";
72         }
73         $navText .= "</table>";
74         $navText = wfStrencode( $navText );
76         $title = wfMsgNoDB( "allmessages" );
77         $sql = "DELETE FROM cur WHERE cur_namespace=$ns AND cur_title='$title'";
78         wfQuery( $sql, DB_WRITE, $fname );
80         $sql = "INSERT INTO cur (cur_namespace, cur_title, cur_text,
81                 cur_user_text, cur_timestamp, cur_restrictions,
82                 cur_is_new, inverse_timestamp, cur_touched) VALUES (
83                 $ns,
84                 '$title',
85                 '$navText',
86                 'MediaWiki default',
87                 '$timestamp',
88                 'sysop',
89                 1,
90                 '$invTimestamp',
91                 '$timestamp')";
92         wfQuery( $sql, DB_WRITE, $fname );
93         print "done \n";