nukepage.inc

来自「php 开发的内容管理系统」· INC 代码 · 共 80 行

INC
80
字号
<?php/** * Support functions for the nukeArticle script * * @package MediaWiki * @subpackage Maintenance * @author Rob Church <robchur@gmail.com> */require_once( 'purgeOldText.inc' );function NukePage( $name, $delete = false ) {	$dbw =& wfGetDB( DB_MASTER );	$dbw->begin();		$tbl_pag = $dbw->tableName( 'page' );	$tbl_rec = $dbw->tableName( 'recentchanges' );	$tbl_rev = $dbw->tableName( 'revision' );		# Get page ID	echo( "Searching for \"$name\"..." );	$title = Title::newFromText( $name );	if( $title ) {		$id   = $title->getArticleID();		$real = $title->getPrefixedText();		echo( "found \"$real\" with ID $id.\n" );				# Get corresponding revisions		echo( "Searching for revisions..." );		$res = $dbw->query( "SELECT rev_id FROM $tbl_rev WHERE rev_page = $id" );		while( $row = $dbw->fetchObject( $res ) ) {			$revs[] = $row->rev_id;		}		$count = count( $revs );		echo( "found $count.\n" );				# Delete the page record and associated recent changes entries		if( $delete ) {			echo( "Deleting page record..." );			$dbw->query( "DELETE FROM $tbl_pag WHERE page_id = $id" );			echo( "done.\n" );			echo( "Cleaning up recent changes..." );			$dbw->query( "DELETE FROM $tbl_rec WHERE rc_cur_id = $id" );			echo( "done.\n" );		}		$dbw->commit();				# Delete revisions as appropriate		if( $delete && $count ) {			echo( "Deleting revisions..." );			DeleteRevisions( $revs );			echo( "done.\n" );			PurgeRedundantText( true );		}			} else {		echo( "not found in database.\n" );		$dbw->commit();	}	}function DeleteRevisions( $ids ) {	$dbw =& wfGetDB( DB_MASTER );	$dbw->begin();		$tbl_rev = $dbw->tableName( 'revision' );		$set = implode( ', ', $ids );	$dbw->query( "DELETE FROM $tbl_rev WHERE rev_id IN ( $set )" );		$dbw->commit();		}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?