class ImagePage extends Article {
+ /* private */ var $img; // Image object this page is shown for. Initilaized in openShowImage, not
+ // available in doDelete etc.
+
function view() {
if ( Namespace::getImage() == $this->mTitle->getNamespace() ) {
$this->openShowImage();
function openShowImage()
{
global $wgOut, $wgUser,$wgRequest;
- $name = $this->mTitle->getText();
- $path = wfImagePath( $name );
- $url = wfImageUrl( $name );
+ $this->img = Image::newFromTitle( $this->mTitle );
+ $url = $this->img->getUrl();
- if ( file_exists( $path ) ) {
- list($width, $height, $type, $attr) = getimagesize( $path );
+ if ( $this->img->exists() ) {
$sk = $wgUser->getSkin();
- if ( $type != "" ) {
+ if ( $this->img->getType() != "" ) {
# image
- $s = "<span class=\"fullImage\"><img src=\"{$url}\" width=\"{$width}\" height=\"{$height}\"".
- "alt=\"".$wgRequest->getVal( 'image' )."\" /></span>";
+ $s = "<div class=\"fullImage\">" .
+ "<img src=\"{$url}\" width=\"" . $this->img->getWidth() . "\" height=\"" . $this->img->getHeight() .
+ "\" alt=\"".$wgRequest->getVal( 'image' )."\" /></div>";
} else {
- $s = "<span style=\"text-align: center\">".$sk->makeMediaLink($name,"")."</span>";
+ $s = "<div class=\"fullMedia\">".$sk->makeMediaLink($this->img->getName(),"")."</div>";
}
$wgOut->addHTML( $s );
}
function imageHistory()
{
- global $wgUser, $wgOut, $wgLang;
- $fname = "Article::imageHistory";
-
- $sql = "SELECT img_size,img_description,img_user," .
- "img_user_text,img_timestamp FROM image WHERE " .
- "img_name='" . wfStrencode( $this->mTitle->getDBkey() ) . "'";
- $res = wfQuery( $sql, DB_READ, $fname );
-
- if ( 0 == wfNumRows( $res ) ) { return; }
+ global $wgUser, $wgOut;
$sk = $wgUser->getSkin();
$s = $sk->beginImageHistoryList();
- $line = wfFetchObject( $res );
+ $line = $this->img->nextHistoryLine();
+
$s .= $sk->imageHistoryLine( true, $line->img_timestamp,
- $this->mTitle->getText(), $line->img_user,
+ $this->mTitle->getDBkey(), $line->img_user,
$line->img_user_text, $line->img_size, $line->img_description );
- $sql = "SELECT oi_size,oi_description,oi_user," .
- "oi_user_text,oi_timestamp,oi_archive_name FROM oldimage WHERE " .
- "oi_name='" . wfStrencode( $this->mTitle->getDBkey() ) . "' " .
- "ORDER BY oi_timestamp DESC";
- $res = wfQuery( $sql, DB_READ, $fname );
-
- while ( $line = wfFetchObject( $res ) ) {
- $s .= $sk->imageHistoryLine( false, $line->oi_timestamp,
- $line->oi_archive_name, $line->oi_user,
- $line->oi_user_text, $line->oi_size, $line->oi_description );
+ while ( $line = $this->img->nextHistoryLine() ) {
+ $s .= $sk->imageHistoryLine( false, $line->img_timestamp,
+ $line->oi_archive_name, $line->img_user,
+ $line->img_user_text, $line->img_size, $line->img_description );
}
$s .= $sk->endImageHistoryList();
$wgOut->addHTML( $s );
$wgOut->addHTML( "<h2>" . wfMsg( "imagelinks" ) . "</h2>\n" );
- $sql = "SELECT cur_namespace,cur_title FROM imagelinks,cur WHERE il_to='" .
- wfStrencode( $this->mTitle->getDBkey() ) . "' AND il_from=cur_id";
- $res = wfQuery( $sql, DB_READ, "Article::imageLinks" );
+ $dbr =& wfGetDB( DB_SLAVE );
+ $cur = $dbr->tableName( 'cur' );
+ $imagelinks = $dbr->tableName( 'imagelinks' );
+
+ $sql = "SELECT cur_namespace,cur_title FROM $imagelinks,$cur WHERE il_to=" .
+ $dbr->addQuotes( $this->mTitle->getDBkey() ) . " AND il_from=cur_id";
+ $res = $dbr->query( $sql, DB_SLAVE, "Article::imageLinks" );
- if ( 0 == wfNumRows( $res ) ) {
+ if ( 0 == $dbr->numRows( $res ) ) {
$wgOut->addHtml( "<p>" . wfMsg( "nolinkstoimage" ) . "</p>\n" );
return;
}
$wgOut->addHTML( "<p>" . wfMsg( "linkstoimage" ) . "</p>\n<ul>" );
$sk = $wgUser->getSkin();
- while ( $s = wfFetchObject( $res ) ) {
+ while ( $s = $dbr->fetchObject( $res ) ) {
$name = Title::MakeTitle( $s->cur_namespace, $s->cur_title );
$link = $sk->makeKnownLinkObj( $name, "" );
$wgOut->addHTML( "<li>{$link}</li>\n" );
}
if ( !is_null( $image ) ) {
- $q = "&image={$image}";
+ $q = "&image=" . urlencode( $image );
} else if ( !is_null( $oldimage ) ) {
- $q = "&oldimage={$oldimage}";
+ $q = "&oldimage=" . urlencode( $oldimage );
} else {
$q = "";
}
$reason = $wgRequest->getVal( 'wpReason' );
$image = $wgRequest->getVal( 'image' );
$oldimage = $wgRequest->getVal( 'oldimage' );
+
+ $dbw =& wfGetDB( DB_MASTER );
if ( !is_null( $image ) ) {
$dest = wfImageDir( $image );
$wgOut->fileDeleteError( "{$dest}/{$image}" );
return;
}
- $sql = "DELETE FROM image WHERE img_name='" .
- wfStrencode( $image ) . "'";
- wfQuery( $sql, DB_WRITE, $fname );
-
- $sql = "SELECT oi_archive_name FROM oldimage WHERE oi_name='" .
- wfStrencode( $image ) . "'";
- $res = wfQuery( $sql, DB_READ, $fname );
-
+ $dbw->delete( 'image', array( 'img_name' => $image ) );
+ $res = $dbw->select( 'oldimage', array( 'oi_archive_name' ), array( 'oi_name' => $image ) );
+
# Squid purging
if ( $wgUseSquid ) {
$urlArr = Array(
- $wgInternalServer.wfImageUrl( $image )
+ $wgInternalServer . Image::wfImageUrl( $image )
);
wfPurgeSquidServers($urlArr);
}
$urlArr = Array();
- while ( $s = wfFetchObject( $res ) ) {
+ while ( $s = $dbr->fetchObject( $res ) ) {
$this->doDeleteOldImage( $s->oi_archive_name );
$urlArr[] = $wgInternalServer.wfImageArchiveUrl( $s->oi_archive_name );
}
array_push( $wgDeferredUpdateList, $u );
}
- $sql = "DELETE FROM oldimage WHERE oi_name='" .
- wfStrencode( $image ) . "'";
- wfQuery( $sql, DB_WRITE, $fname );
+ $dbw->delete( 'oldimage', array( 'oi_name' => $image ) );
# Image itself is now gone, and database is cleaned.
# Now we remove the image description page.
wfPurgeSquidServers($urlArr);
}
$this->doDeleteOldImage( $oldimage );
- $sql = "DELETE FROM oldimage WHERE oi_archive_name='" .
- wfStrencode( $oldimage ) . "'";
- wfQuery( $sql, DB_WRITE, $fname );
-
+ $dbw->delete( 'oldimage', array( 'oi_archive_name' => $oldimage ) );
$deleted = $oldimage;
} else {
$this->doDeleteArticle( $reason ); # ignore errors
return;
}
$oldver = wfTimestampNow() . "!{$name}";
- $size = wfGetSQL( "oldimage", "oi_size", "oi_archive_name='" .
- wfStrencode( $oldimage ) . "'" );
+
+ $dbr =& wfGetDB( DB_SLAVE );
+ $size = $dbr->getField( "oldimage", "oi_size", "oi_archive_name='" .
+ $dbr->strencode( $oldimage ) . "'" );
if ( ! rename( $curfile, "${archive}/{$oldver}" ) ) {
$wgOut->fileRenameError( $curfile, "${archive}/{$oldver}" );
if ( $wgUseSquid ) {
$urlArr = Array(
$wgInternalServer.wfImageArchiveUrl( $name ),
- $wgInternalServer.wfImageUrl( $name )
+ $wgInternalServer . Image::wfImageUrl( $name )
);
wfPurgeSquidServers($urlArr);
}