X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=maintenance%2FInitialiseMessages.inc;h=3976d1864d66bb0556965c4042dedb7aa5b5e0f8;hb=739cab780c0fd0265da048f709688eca0b0edd72;hp=3e3b200dfebeb513173ba9d63eaae2696a3c2bb0;hpb=b6f4bb64ea883bd0a556b791328d4b3a9de5063a;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/InitialiseMessages.inc b/maintenance/InitialiseMessages.inc index 3e3b200dfe..3976d1864d 100755 --- a/maintenance/InitialiseMessages.inc +++ b/maintenance/InitialiseMessages.inc @@ -10,8 +10,7 @@ * @subpackage Maintenance */ -require_once('languages/Names.php'); - +/** */ function initialiseMessages( $overwrite = false, $messageArray = false ) { global $wgContLang, $wgContLanguageCode; global $wgContLangClass, $wgAllMessagesEn; @@ -53,6 +52,8 @@ function initialiseMessages( $overwrite = false, $messageArray = false ) { } } + require_once('languages/Names.php'); + /* initialize all messages in $wgForceUIMsgAsContentMsg for all languages in Names.php @@ -68,16 +69,9 @@ function initialiseMessages( $overwrite = false, $messageArray = false ) { } } } - initialiseMessagesReal( $overwrite, $messages ); } - - - - - - /** */ function initialiseMessagesReal( $overwrite = false, $messageArray = false ) { global $wgContLang, $wgScript, $wgServer, $wgAllMessagesEn; @@ -108,12 +102,14 @@ function initialiseMessagesReal( $overwrite = false, $messageArray = false ) { $dbr =& wfGetDB( DB_SLAVE ); $dbw =& wfGetDB( DB_MASTER ); - $cur = $dbr->tableName( 'cur' ); + $page = $dbr->tableName( 'page' ); + $revision = $dbr->tableName( 'revision' ); $timestamp = wfTimestampNow(); - $invTimestamp = wfInvertTimestamp( $timestamp ); - $sql = "SELECT cur_title,cur_is_new,cur_user_text FROM $cur WHERE cur_namespace=$ns AND cur_title IN("; + #$sql = "SELECT cur_title,cur_is_new,cur_user_text FROM $cur WHERE cur_namespace=$ns AND cur_title IN("; + $sql = "SELECT page_title,page_is_new,rev_user_text FROM $page, $revision WHERE + page_namespace=$ns AND rev_page=page_id AND page_title IN("; # Get keys from $wgAllMessagesEn, which is more complete than the local language $first = true; @@ -136,7 +132,7 @@ function initialiseMessagesReal( $overwrite = false, $messageArray = false ) { } else { $sql .= ','; } - $titleObj = Title::newFromText( $key ); + $titleObj = Title::newFromText( $wgContLang->ucfirst( $key ) ); $enctitle = $dbr->strencode($titleObj->getDBkey()); $sql .= "'$enctitle'"; } @@ -148,10 +144,10 @@ function initialiseMessagesReal( $overwrite = false, $messageArray = false ) { # Decide whether or not each one needs to be overwritten $existingTitles = array(); while ( $row ) { - if ( $row->cur_user_text != $username ) { - $existingTitles[$row->cur_title] = 'keep'; + if ( $row->rev_user_text != $username && $row->rev_user_text != 'Template namespace initialisation script' ) { + $existingTitles[$row->page_title] = 'keep'; } else { - $existingTitles[$row->cur_title] = 'chuck'; + $existingTitles[$row->page_title] = 'chuck'; } $row = $dbr->fetchObject( $res ); @@ -174,43 +170,44 @@ function initialiseMessagesReal( $overwrite = false, $messageArray = false ) { } else { $message = wfMsgNoDBForContent( $key ); } - $titleObj = Title::newFromText( $key ); + $titleObj = Title::newFromText( $wgContLang->ucfirst( $key ), NS_MEDIAWIKI ); $title = $titleObj->getDBkey(); # Update messages which already exist if ( array_key_exists( $title, $existingTitles ) ) { if ( $existingTitles[$title] == 'chuck' || $overwrite) { - # print "$title\n"; - $mwTitleObj = Title::makeTitle( NS_MEDIAWIKI, $title ); - $article = new Article( $mwTitleObj ); - $article->quickEdit( $message ); + # Don't bother writing a new revision if we're the same + # as the current text! + $revision = Revision::newFromTitle( $titleObj ); + if( is_null( $revision ) || $revision->getText() != $message ) { + $article = new Article( $titleObj ); + $article->quickEdit( $message ); + } } - $doInsert = false; } else { - array_push( $arr, array( - 'cur_namespace' => $ns, - 'cur_title' => $title, - 'cur_text' => $message, - 'cur_user' => 0, - 'cur_user_text' => $username, - 'cur_timestamp' => $dbw->timestamp( $timestamp ), - 'cur_restrictions' => 'sysop', - 'cur_is_new' => 1, - 'inverse_timestamp' => $invTimestamp, - 'cur_touched' => $dbw->timestamp( $timestamp ) ) ); + $article = new Article( $titleObj ); + $newid = $article->insertOn( $dbw, 'sysop' ); + # FIXME: set restrictions + $revision = new Revision( array( + 'page' => $newid, + 'text' => $message, + 'user' => 0, + 'user_text' => $username, + 'comment' => '', + ) ); + $revid = $revision->insertOn( $dbw ); + $article->updateRevisionOn( $dbw, $revision ); } } - $dbw->insert( 'cur', $arr, $fname ); - # Clear the relevant memcached key print 'Clearing message cache...'; $wgMessageCache->clear(); print "Done.\n"; } -function loadLanguageFile( $filename ) -{ +/** */ +function loadLanguageFile( $filename ) { $contents = file_get_contents( $filename ); # Remove header line $p = strpos( $contents, "\n" ) + 1; @@ -219,9 +216,9 @@ function loadLanguageFile( $filename ) return unserialize( $contents ); } +/** */ function doUpdates() { global $wgDeferredUpdateList; foreach ( $wgDeferredUpdateList as $up ) { $up->doUpdate(); } } - ?>