diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2006-10-11 18:12:39 +0000 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2006-10-11 18:12:39 +0000 |
commit | 183851b06bd6c52f3cae5375f433da720d410447 (patch) | |
tree | a477257decbf3360127f6739c2f9d0ec57a03d39 /maintenance/addwiki.php |
MediaWiki 1.7.1 wiederhergestellt
Diffstat (limited to 'maintenance/addwiki.php')
-rw-r--r-- | maintenance/addwiki.php | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/maintenance/addwiki.php b/maintenance/addwiki.php new file mode 100644 index 00000000..253033a3 --- /dev/null +++ b/maintenance/addwiki.php @@ -0,0 +1,210 @@ +<?php + +$wgNoDBParam = true; + +require_once( "commandLine.inc" ); +require_once( "rebuildInterwiki.inc" ); +require_once( "languages/Names.php" ); +if ( count( $args ) != 3 ) { + wfDie( "Usage: php addwiki.php <language> <site> <dbname>\n" ); +} + +addWiki( $args[0], $args[1], $args[2] ); + +# ----------------------------------------------------------------- + +function addWiki( $lang, $site, $dbName ) +{ + global $IP, $wgLanguageNames, $wgDefaultExternalStore; + + $name = $wgLanguageNames[$lang]; + + $dbw =& wfGetDB( DB_WRITE ); + $common = "/home/wikipedia/common"; + $maintenance = "$IP/maintenance"; + + print "Creating database $dbName for $lang.$site\n"; + + # Set up the database + $dbw->query( "SET table_type=Innodb" ); + $dbw->query( "CREATE DATABASE $dbName" ); + $dbw->selectDB( $dbName ); + + print "Initialising tables\n"; + dbsource( "$maintenance/tables.sql", $dbw ); + dbsource( "$IP/extensions/OAI/update_table.sql", $dbw ); + $dbw->query( "INSERT INTO site_stats(ss_row_id) VALUES (1)" ); + + # Initialise external storage + if ( $wgDefaultExternalStore && preg_match( '!^DB://(.*)$!', $wgDefaultExternalStore, $m ) ) { + print "Initialising external storage...\n"; + require_once( 'ExternalStoreDB.php' ); + global $wgDBuser, $wgDBpassword, $wgExternalServers; + $cluster = $m[1]; + + # Hack + $wgExternalServers[$cluster][0]['user'] = $wgDBuser; + $wgExternalServers[$cluster][0]['password'] = $wgDBpassword; + + $store = new ExternalStoreDB; + $extdb =& $store->getMaster( $cluster ); + $extdb->query( "SET table_type=InnoDB" ); + $extdb->query( "CREATE DATABASE $dbName" ); + $extdb->selectDB( $dbName ); + dbsource( "$maintenance/storage/blobs.sql", $extdb ); + $extdb->immediateCommit(); + } + + $wgTitle = Title::newMainPage(); + $wgArticle = new Article( $wgTitle ); + $ucsite = ucfirst( $site ); + + $wgArticle->insertNewArticle( " +==This subdomain is reserved for the creation of a $ucsite in '''[[:en:{$name}|{$name}]]''' language== + +If you can write in this language and want to collaborate in the creation of this encyclopedia then '''you''' can make it. + +Go ahead. Translate this page and start working on your encyclopedia. + +For help, see '''[[m:Help:How to start a new Wikipedia|how to start a new Wikipedia]]'''. + +==Sister projects== +[http://meta.wikipedia.org Meta-Wikipedia] | [http://www.wiktionary.org Wikitonary] | [http://www.wikibooks.org Wikibooks] | [http://www.wikinews.org Wikinews] | [http://www.wikiquote.org Wikiquote] | [http://www.wikisource.org Wikisource] + +See the [http://www.wikipedia.org Wikipedia portal] for other language Wikipedias. + +[[aa:]] +[[af:]] +[[als:]] +[[ar:]] +[[de:]] +[[en:]] +[[as:]] +[[ast:]] +[[ay:]] +[[az:]] +[[be:]] +[[bg:]] +[[bn:]] +[[bo:]] +[[bs:]] +[[cs:]] +[[co:]] +[[cs:]] +[[cy:]] +[[da:]] +[[el:]] +[[eo:]] +[[es:]] +[[et:]] +[[eu:]] +[[fa:]] +[[fi:]] +[[fr:]] +[[fy:]] +[[ga:]] +[[gl:]] +[[gn:]] +[[gu:]] +[[he:]] +[[hi:]] +[[hr:]] +[[hy:]] +[[ia:]] +[[id:]] +[[is:]] +[[it:]] +[[ja:]] +[[ka:]] +[[kk:]] +[[km:]] +[[kn:]] +[[ko:]] +[[ks:]] +[[ku:]] +[[ky:]] +[[la:]] +[[ln:]] +[[lo:]] +[[lt:]] +[[lv:]] +[[hu:]] +[[mi:]] +[[mk:]] +[[ml:]] +[[mn:]] +[[mr:]] +[[ms:]] +[[mt:]] +[[my:]] +[[na:]] +[[nah:]] +[[nds:]] +[[ne:]] +[[nl:]] +[[no:]] +[[oc:]] +[[om:]] +[[pa:]] +[[pl:]] +[[ps:]] +[[pt:]] +[[qu:]] +[[ro:]] +[[ru:]] +[[sa:]] +[[si:]] +[[sk:]] +[[sl:]] +[[sq:]] +[[sr:]] +[[sv:]] +[[sw:]] +[[ta:]] +[[te:]] +[[tg:]] +[[th:]] +[[tk:]] +[[tl:]] +[[tr:]] +[[tt:]] +[[ug:]] +[[uk:]] +[[ur:]] +[[uz:]] +[[vi:]] +[[vo:]] +[[xh:]] +[[yo:]] +[[za:]] +[[zh:]] +[[zu:]] +", '', false, false ); + + print "Adding to dblists\n"; + + # Add to dblist + $file = fopen( "$common/all.dblist", "a" ); + fwrite( $file, "$dbName\n" ); + fclose( $file ); + + # Update the sublists + system("cd $common && ./refresh-dblist"); + + print "Constructing interwiki SQL\n"; + # Rebuild interwiki tables + $sql = getRebuildInterwikiSQL(); + $tempname = tempnam( '/tmp', 'addwiki' ); + $file = fopen( $tempname, 'w' ); + if ( !$file ) { + wfDie( "Error, unable to open temporary file $tempname\n" ); + } + fwrite( $file, $sql ); + fclose( $file ); + print "Sourcing interwiki SQL\n"; + dbsource( $tempname, $dbw ); + unlink( $tempname ); + + print "Script ended. You now want to run sync-common-all to publish *dblist files (check them for duplicates first)\n"; +} +?> |