Guarding newFromText calls
[mediawiki.git] / maintenance / InitialiseMessages.inc
blob0b9a6898ceeae3705a748396cb5783da63ad2ace
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;
11         if ( !$overwrite ) {
12                 $sql = "SELECT 1 FROM cur WHERE cur_namespace=$ns LIMIT 1";
13                 $res = wfQuery( $sql, DB_READ, $fname );
14                 if ( wfNumRows( $res ) ) {
15                         print "MediaWiki: namespace already initialised\n";
16                         return;
17                 }
18         }
20         $timestamp = wfTimestampNow();
21         $invTimestamp = wfInvertTimestamp( $timestamp );
22         $navText = wfMsgNoDB( "allmessagestext" );
23         $navText .= "
25 <table border=1 width=100%><tr><td>
26   '''Name'''
27 </td><td>
28   '''Default text'''
29 </td><td>
30   '''Current text'''
31 </td></tr>";
32         
33         print "Initialising \"MediaWiki\" namespace...";
35         foreach ( $wgAllMessagesEn as $key => $enMsg ) {
36                 $message = wfMsgNoDB( $key );
37                 $titleObj = Title::newFromText( $key );
38                 $title = $titleObj->getDBkey();
39                 $dbencMsg = wfStrencode( $message );
41                 if ( $overwrite ) {
42                         $sql = "DELETE FROM cur WHERE cur_namespace=$ns AND cur_title='$title'";
43                         wfQuery( $sql, DB_WRITE, $fname );
44                 }
45                 
46                 $sql = "INSERT INTO cur (cur_namespace, cur_title, cur_text,
47                         cur_user_text, cur_timestamp, cur_restrictions,
48                         cur_is_new, inverse_timestamp) VALUES (
49                         $ns,
50                         '$title',
51                         '$dbencMsg',
52                         'MediaWiki default',
53                         '$timestamp',
54                         'sysop',
55                         1,
56                         '$invTimestamp')";
57                 wfQuery( $sql, DB_WRITE, $fname );
58                 $mwObj =& MagicWord::get( MAG_MSGNW );
59                 $mw = $mwObj->getSynonym( 0 );
60                 $mw = str_replace( "$1", $key, $mw );
62                 $message = wfEscapeWikiText( $message );
63                 $navText .= 
64 "<tr><td>
65   [$wgServer$wgScript?title=MediaWiki:$title&action=edit $key]
66 </td><td>
67   $message
68 </td><td>
69   $mw
70 </td></tr>";
71         }
72         $navText .= "</table>";
73         $navText = wfStrencode( $navText );
74         $title = wfMsgNoDB( "allmessages" );
76         if ( $overwrite ) {
77                 $sql = "DELETE FROM cur WHERE cur_namespace=$ns AND cur_title='$title'";
78                 wfQuery( $sql, DB_WRITE, $fname );
79         }
81         $sql = "INSERT INTO cur (cur_namespace, cur_title, cur_text,
82                 cur_user_text, cur_timestamp, cur_restrictions,
83                 cur_is_new, inverse_timestamp) VALUES (
84                 $ns,
85                 '$title',
86                 '$navText',
87                 'MediaWiki default',
88                 '$timestamp',
89                 'sysop',
90                 1,
91                 '$invTimestamp')";
92         wfQuery( $sql, DB_WRITE, $fname );
93         print "done \n";