From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- maintenance/attribute.php | 105 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 maintenance/attribute.php (limited to 'maintenance/attribute.php') diff --git a/maintenance/attribute.php b/maintenance/attribute.php new file mode 100644 index 00000000..3326180c --- /dev/null +++ b/maintenance/attribute.php @@ -0,0 +1,105 @@ + \n"; + } else { + print "Usage: php attribute.php \n"; + } + exit; +} + +$source = $args[0]; +$dest = $args[1]; + +$dbr =& wfGetDB( DB_SLAVE ); +extract( $dbr->tableNames( 'page', 'revision','user' )); +$eSource = $dbr->strencode( $source ); +$eDest = $dbr->strencode( $dest ); + +# Get user id +$res = $dbr->query( "SELECT user_id FROM $user WHERE user_name='$eDest'" ); +$row = $dbr->fetchObject( $res ); +if ( !$row ) { + print "Warning: the target name \"$dest\" does not exist"; + $uid = 0; +} else { + $uid = $row->user_id; +} + +# Initialise files +$logfile = fopen( "attribute.log", "a" ); +$sqlfile = fopen( "attribute.sql", "a" ); + +fwrite( $logfile, "* $source → $dest\n" ); + +fwrite( $sqlfile, +"-- Changing attribution SQL file +-- Generated with attribute.php +-- $source -> $dest ($uid) +"); + +$omitTitle = "Wikipedia:Changing_attribution_for_an_edit"; + +# Get revisions +print "\nPage revisions\n\n"; + +$res = $dbr->query( "SELECT page_namespace, page_title, rev_id, rev_timestamp +FROM $revision,$page +WHERE rev_user_text='$eSource' and rev_page=page_id" ); +$row = $dbr->fetchObject( $res ); + +if ( $row ) { +/* + if ( $row->old_title=='Votes_for_deletion' && $row->old_namespace == 4 ) { + # We don't have that long + break; + } +*/ + fwrite( $logfile, "**Revision IDs: " ); + fwrite( $sqlfile, "UPDATE $revision SET rev_user=$uid, rev_user_text='$eDest' WHERE rev_id IN (\n" ); + + for ( $first=true; $row; $row = $dbr->fetchObject( $res ) ) { + $title = Title::makeTitle( $row->page_namespace, $row->page_title ); + $fullTitle = $title->getPrefixedDbKey(); + if ( $fullTitle == $omitTitle ) { + continue; + } + + print "$fullTitle\n"; + $url = $title->getFullUrl( "oldid={$row->rev_id}" ); + + # Output + fwrite( $sqlfile, " " ); + if ( $first ) { + $first = false; + } else { + fwrite( $sqlfile, ", " ); + fwrite( $logfile, ", " ); + } + + fwrite( $sqlfile, "{$row->rev_id} -- $url\n" ); + fwrite( $logfile, "[$url {$row->rev_id}]" ); + + } + fwrite( $sqlfile, ");\n" ); + fwrite( $logfile, "\n" ); +} + +print "\n"; + +fclose( $sqlfile ); +fclose( $logfile ); + +?> -- cgit v1.2.3-54-g00ecf