One less $wgTitle, and use dbw->update() instead of raw sql
[lhc/web/wiklou.git] / maintenance / addwiki.php
index f4f9617..65f1aa1 100644 (file)
@@ -44,7 +44,7 @@ class AddWiki extends Maintenance {
        }
 
        public function execute() {
-               global $IP, $wgDefaultExternalStore, $wgNoDBParam, $wgPasswordSender;
+               global $IP, $wgDefaultExternalStore, $wgNoDBParam;
 
                $wgNoDBParam = true;
                $lang = $this->getArg( 0 );
@@ -83,7 +83,7 @@ class AddWiki extends Maintenance {
                $dbw->sourceFile( "$IP/extensions/UsabilityInitiative/ClickTracking/ClickTrackingEvents.sql" );
                $dbw->sourceFile( "$IP/extensions/UsabilityInitiative/ClickTracking/ClickTracking.sql" );
                $dbw->sourceFile( "$IP/extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.sql" );
-               $dbw->sourceFile( "$IP/extensions/UsabilityInitiative/Optin/OptIn.sql" );
+               $dbw->sourceFile( "$IP/extensions/UsabilityInitiative/OptIn/OptIn.sql" );
 
                $dbw->query( "INSERT INTO site_stats(ss_row_id) VALUES (1)" );
 
@@ -132,8 +132,7 @@ class AddWiki extends Maintenance {
                $wgArticle = new Article( $wgTitle );
                $ucsite = ucfirst( $site );
 
-               $wgArticle->doEdit( $this->getFirstArticle( $ucsite, $name ), '', EDIT_NEW | EDIT_DEFER_UPDATES | EDIT_AUTOSUMMARY,
-                       false, null, false, false, '', true );
+               $wgArticle->insertNewArticle( $this->getFirstArticle( $ucsite, $name ), '', false, false );
 
                $this->output( "Adding to dblists\n" );
 
@@ -148,23 +147,24 @@ class AddWiki extends Maintenance {
                # print "Constructing interwiki SQL\n";
                # Rebuild interwiki tables
                # passthru( '/home/wikipedia/conf/interwiki/update' );
-               
+
                $time = wfTimestamp( TS_RFC2822 );
-               $escDbName = wfEscapeShellArg( $dbname );
-               $escTime = wfEscapeShellArg( $time );
-               $escUcsite = wfEscapeShellArg( $ucsite );
-               $escName = wfEscapeShellArg( $name );
-               $escLang = wfEscapeShellArg( $lang );
-               $escDomain = wfEscapeShellArg( $domain );
+               // These arguments need to be escaped twice: once for echo and once for at
+               $escDbName = wfEscapeShellArg( wfEscapeShellArg( $dbName ) );
+               $escTime = wfEscapeShellArg( wfEscapeShellArg( $time ) );
+               $escUcsite = wfEscapeShellArg( wfEscapeShellArg( $ucsite ) );
+               $escName = wfEscapeShellArg( wfEscapeShellArg( $name ) );
+               $escLang = wfEscapeShellArg( wfEscapeShellArg( $lang ) );
+               $escDomain = wfEscapeShellArg( wfEscapeShellArg( $domain ) );
                shell_exec( "echo notifyNewProjects $escDbName $escTime $escUcsite $escName $escLang $escDomain | at now + 15 minutes" );
-               
+
                $this->output( "Script ended. You still have to:
        * Add any required settings in InitialiseSettings.php
        * Run sync-common-all
        * Run /home/wikipedia/conf/interwiki/update
        " );
        }
-       
+
        private function getFirstArticle( $ucsite, $name ) {
                return <<<EOT
 ==This subdomain is reserved for the creation of a [[wikimedia:Our projects|$ucsite]] in '''[[w:en:{$name}|{$name}]]''' language==