merged master
[lhc/web/wiklou.git] / includes / ImagePage.php
index 3fbbcba..23bbc01 100644 (file)
@@ -157,8 +157,10 @@ class ImagePage extends Article {
                        $out->addHTML( Xml::openElement( 'div', array( 'id' => 'mw-imagepage-content',
                                'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(),
                                'class' => 'mw-content-'.$pageLang->getDir() ) ) );
-                       parent::view();
-                       $out->addHTML( Xml::closeElement( 'div' ) );
+
+            parent::view(); #FIXME: use ContentHandler::makeArticle() !!
+
+                       $wgOut->addHTML( Xml::closeElement( 'div' ) );
                } else {
                        # Just need to set the right headers
                        $out->setArticleFlag( true );
@@ -268,20 +270,20 @@ class ImagePage extends Article {
                return $r;
        }
 
-       /**
-        * Overloading Article's getContent method.
-        *
-        * Omit noarticletext if sharedupload; text will be fetched from the
-        * shared upload server if possible.
-        * @return string
-        */
-       public function getContent() {
-               $this->loadFile();
-               if ( $this->mPage->getFile() && !$this->mPage->getFile()->isLocal() && 0 == $this->getID() ) {
-                       return '';
-               }
-               return parent::getContent();
-       }
+    /**
+     * Overloading Article's getContentObject method.
+     *
+     * Omit noarticletext if sharedupload; text will be fetched from the
+     * shared upload server if possible.
+     * @return string
+     */
+    public function getContentObject() {
+        $this->loadFile();
+        if ( $this->mPage->getFile() && !$this->mPage->getFile()->isLocal() && 0 == $this->getID() ) {
+            return null;
+        }
+        return parent::getContentObject();
+    }
 
        protected function openShowImage() {
                global $wgImageLimits, $wgEnableUploads, $wgSend404Code;
@@ -346,18 +348,30 @@ class ImagePage extends Article {
                                                # Note that $height <= $maxHeight now, but might not be identical
                                                # because of rounding.
                                        }
-                                       $msgbig  = wfMsgHtml( 'show-big-image' );
+                                       $msgbig = wfMsgHtml( 'show-big-image' );
+                                       if ( $this->displayImg->getRepo()->canTransformVia404() ) {
+                                               $thumbSizes = $wgImageLimits;
+                                       } else {
+                                               # Creating thumb links triggers thumbnail generation.
+                                               # Just generate the thumb for the current users prefs.
+                                               $thumbOption = $user->getOption( 'thumbsize' );
+                                               $thumbSizes = array( isset( $wgImageLimits[$thumbOption] )
+                                                       ? $wgImageLimits[$thumbOption]
+                                                       : $wgImageLimits[User::getDefaultOption( 'thumbsize' )] );
+                                       }
+                                       # Generate thumbnails or thumbnail links as needed...
                                        $otherSizes = array();
-                                       foreach ( $wgImageLimits as $size ) {
-                                               if ( $size[0] < $width_orig && $size[1] < $height_orig &&
-                                                               $size[0] != $width && $size[1] != $height ) {
+                                       foreach ( $thumbSizes as $size ) {
+                                               if ( $size[0] < $width_orig && $size[1] < $height_orig
+                                                       && $size[0] != $width && $size[1] != $height )
+                                               {
                                                        $otherSizes[] = $this->makeSizeLink( $params, $size[0], $size[1] );
                                                }
                                        }
                                        $msgsmall = wfMessage( 'show-big-image-preview' )->
                                                rawParams( $this->makeSizeLink( $params, $width, $height ) )->
                                                parse();
-                                       if ( count( $otherSizes ) && $this->displayImg->getRepo()->canTransformVia404() ) {
+                                       if ( count( $otherSizes ) ) {
                                                $msgsmall .= ' ' .
                                                Html::rawElement( 'span', array( 'class' => 'mw-filepage-other-resolutions' ),
                                                        wfMessage( 'show-big-image-other' )->rawParams( $lang->pipeList( $otherSizes ) )->
@@ -978,7 +992,7 @@ class ImageHistoryList extends ContextSource {
                $img = $iscur ? $file->getName() : $file->getArchiveName();
                $userId = $file->getUser( 'id' );
                $userText = $file->getUser( 'text' );
-               $description = $file->getDescription();
+               $description = $file->getDescription( File::FOR_THIS_USER, $user );
 
                $local = $this->current->isLocal();
                $row = $selected = '';
@@ -1026,7 +1040,9 @@ class ImageHistoryList extends ContextSource {
                $row .= '<td>';
                if ( $iscur ) {
                        $row .= wfMsgHtml( 'filehist-current' );
-               } elseif ( $local && $user->isLoggedIn() && $this->title->userCan( 'edit' ) ) {
+               } elseif ( $local && $this->title->quickUserCan( 'edit' )
+                       && $this->title->quickUserCan( 'upload' )
+               ) {
                        if ( $file->isDeleted( File::DELETED_FILE ) ) {
                                $row .= wfMsgHtml( 'filehist-revert' );
                        } else {
@@ -1087,7 +1103,10 @@ class ImageHistoryList extends ContextSource {
                // Image dimensions + size
                $row .= '<td>';
                $row .= htmlspecialchars( $file->getDimensionsString() );
-               $row .= ' <span style="white-space: nowrap;">(' . Linker::formatSize( $file->getSize() ) . ')</span>';
+               $row .= $this->getContext()->msg( 'word-separator' )->plain();
+               $row .= '<span style="white-space: nowrap;">';
+               $row .= $this->getContext()->msg( 'parentheses' )->rawParams( Linker::formatSize( $file->getSize() ) )->plain();
+               $row .= '</span>';
                $row .= '</td>';
 
                // Uploading user