I am doing a lot of development, creating pages, and every now and then, I
want a clean sheet by deleting them again.
The following is the main bits of code which I have written to do this
automatic deletion; it deletes ONLY the pages which you have created after
installation is finished. If you know PHP this should be everything you
need.
Happy Deleting!
Hugh
// Delete all pages in the Main namespace (except "Main Page")
//
$mediaWiki = new MediaWiki(); // my own class defined below
$pages = new Pages; // another class of my own defined
below
$pageName = $pages->getNextPageTitle();
while ($pageName <> "") {
echo "Deleting page \"$pageName\"<br>";
$mediaWiki->deleteWikiPage($pageName);
$pageName = $pages->getNextPageTitle();
}
/**
* Methods for handling items in the wiki_page table
*/
class Pages {
/**
* Get next page title
*/
function getNextPageTitle() {
$dbWiki = new DbWiki;
$pageTitle = "";
$mainPageTitle = "Main_Page";
$sql = "SELECT page_title FROM wiki_page ".
"WHERE page_namespace = 0 " .
"AND page_title <> \"$mainPageTitle\"";
$result = $dbWiki->query($sql);
if ($result) {
list($pageTitle) = $dbWiki->fetchArray($result);
}
return $pageTitle;
}
}
class MediaWiki {
/**
* Delete a wiki page
*/
function deleteWikiPage($pageName, $reason="No delete reason given.") {
global $wgUser;
$dbw =& wfGetDB( DB_MASTER );
$wgUser = User::newFromName("DeletePageBot");
$title = new Title();
$title = $title->newFromText($pageName);
$article = new Article( $title );
$article->doDelete($reason);
//Now commit any transactions
//$wgLoadBalancer->commitAll();
$dbw->commit();
}
}
"Shai Shen-Orr" <shenorr(a)mcb.harvard.edu> wrote in
message news:004801c69088$c9a5dc00$6d01a8c0@mcb.harvard.edu...
Hi all,
I'd like to delete a large number of pages from my wiki and was wondering
if
there was any easy way to do so (i.e. - asides from manually going into
each
one and deleting it). I was thinking to do so by removing rows from the
PAGE
table in mysql, but am afraid that links to the deleted pageIDs from other
tables will bar me from doing this without the system crashing. Does
anyone
have a clue ?
Thanks,
Shai