/** * Update the redirect entry for a given page * @param $id int The page_id of the redirect */ private function fixRedirect( $id ){ global $wgTitle; $wgTitle = Title::newFromID( $id ); $dbw = wfGetDB( DB_MASTER ); if ( is_null( $wgTitle ) ) { // This page doesn't exist (any more) // Delete any redirect table entry for it $dbw->delete( 'redirect', array( 'rd_from' => $id ), __METHOD__ ); return; } $article = new Article($wgTitle); $rt = $article->followRedirect(); if($rt == false || !is_object($rt)) { // $wgTitle is not a redirect // Delete any redirect table entry for it $dbw->delete( 'redirect', array( 'rd_from' => $id ), __METHOD__ ); } else { $article->updateRedirectOn($dbw,$rt); } }