$dbw->delete( 'externallinks', array( 'el_from' => $id ) );
$dbw->delete( 'langlinks', array( 'll_from' => $id ) );
$dbw->delete( 'redirect', array( 'rd_from' => $id ) );
+ $dbw->delete( 'imageredirects', array( 'ir_from' => $t ) );
}
# If using cleanup triggers, we can skip some manual deletes
}
switch( $title->getNamespace() ) {
- case NS_IMAGE:
- return new ImagePage( $title );
- case NS_CATEGORY:
- return new CategoryPage( $title );
- default:
- return new Article( $title );
+ case NS_IMAGE:
+ $file = RepoGroup::singleton()->findFile( $title->getText() );
+ if( $file && $file->getRedirectedFrom() ) {
+ return new Article( $title );
+ } else {
+ return new ImagePage( $title );
+ }
+ case NS_CATEGORY:
+ return new CategoryPage( $title );
+ default:
+ return new Article( $title );
}
}
/**
* The following member variables are not lazy-initialised
*/
- var $repo, $title, $lastError;
+ var $repo, $title, $lastError, $redirected;
/**
* Call this constructor from child classes
return '';
}
}
+
+ function getRedirectedFrom() { return $this->redirected; }
+ function setRedirectedFrom( $v ) { $this->redirected = $v; }
}
/**
* Aliases for backwards compatibility with 1.6
return false;
}
if ( $img->exists() && ( !$time || $img->getTimestamp() <= $time ) ) {
+ $img->setRedirectedFrom( $redirected );
return $img;
}
# Now try an old version of the file
$img = $this->newFile( $title, $time );
if ( $img->exists() ) {
+ $img->setRedirectedFrom( $redirected );
return $img;
}