X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FImageGallery.php;h=5bff0ae3352c5bac3f7be1134e4cb81f2e2bb996;hb=cec03907dfcfa8d4fd03e5746e22e66c0fb638d3;hp=c9eb96a0298ec0b6f5ba83fafc63a0cec7b0f50b;hpb=b672f737ab1f173714f45a06856419c4e9c12f4a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ImageGallery.php b/includes/ImageGallery.php index c9eb96a029..5bff0ae335 100644 --- a/includes/ImageGallery.php +++ b/includes/ImageGallery.php @@ -2,25 +2,29 @@ if ( ! defined( 'MEDIAWIKI' ) ) die( 1 ); -/** - */ - /** * Image gallery * * Add images to the gallery using add(), then render that list to HTML using toHTML(). * + * @ingroup Media */ class ImageGallery { var $mImages, $mShowBytes, $mShowFilename; var $mCaption = false; var $mSkin = false; + var $mRevisionId = 0; /** - * Is the gallery on a wiki page (i.e. not a special page) + * Hide blacklisted images? */ - var $mParsing; + var $mHideBadImages; + + /** + * Registered parser object for output callbacks + */ + var $mParser; /** * Contextual title, used when images are being screened @@ -31,6 +35,8 @@ class ImageGallery private $mPerRow = 4; // How many images wide should the gallery be? private $mWidths = 120, $mHeights = 120; // How wide/tall each thumbnail should be + private $mAttribs = array(); + /** * Create a new image gallery object. */ @@ -38,14 +44,22 @@ class ImageGallery $this->mImages = array(); $this->mShowBytes = true; $this->mShowFilename = true; - $this->mParsing = false; + $this->mParser = false; + $this->mHideBadImages = false; } /** - * Set the "parse" bit so we know to hide "bad" images + * Register a parser object */ - function setParsing( $val = true ) { - $this->mParsing = $val; + function setParser( $parser ) { + $this->mParser = $parser; + } + + /** + * Set bad image flag + */ + function setHideBadImages( $flag = true ) { + $this->mHideBadImages = $flag; } /** @@ -126,22 +140,30 @@ class ImageGallery /** * Add an image to the gallery. * - * @param $image Image object that is added to the gallery + * @param $title Title object of the image that is added to the gallery * @param $html String: additional HTML text to be shown. The name and size of the image are always shown. */ - function add( $image, $html='' ) { - $this->mImages[] = array( &$image, $html ); - wfDebug( "ImageGallery::add " . $image->getName() . "\n" ); + function add( $title, $html='' ) { + if ( $title instanceof File ) { + // Old calling convention + $title = $title->getTitle(); + } + $this->mImages[] = array( $title, $html ); + wfDebug( "ImageGallery::add " . $title->getText() . "\n" ); } /** * Add an image at the beginning of the gallery. * - * @param $image Image object that is added to the gallery + * @param $title Title object of the image that is added to the gallery * @param $html String: Additional HTML text to be shown. The name and size of the image are always shown. */ - function insert( $image, $html='' ) { - array_unshift( $this->mImages, array( &$image, $html ) ); + function insert( $title, $html='' ) { + if ( $title instanceof File ) { + // Old calling convention + $title = $title->getTitle(); + } + array_unshift( $this->mImages, array( &$title, $html ) ); } @@ -172,6 +194,19 @@ class ImageGallery $this->mShowFilename = ( $f == true); } + /** + * Set arbitrary attributes to go on the HTML gallery output element. + * Should be suitable for a <table> element. + * + * Note -- if taking from user input, you should probably run through + * Sanitizer::validateAttributes() first. + * + * @param array of HTML attribute pairs + */ + function setAttributes( $attribs ) { + $this->mAttribs = $attribs; + } + /** * Return a HTML representation of the image gallery * @@ -183,44 +218,83 @@ class ImageGallery * */ function toHTML() { - global $wgLang, $wgGenerateThumbnailOnParse; + global $wgLang; $sk = $this->getSkin(); - $s = '
'
+ "\n\t\t" . ' '
. $thumbhtml
. "\n\t\t\t" . ' ' . "\n"
. $textlink . $text . $nb
@@ -268,7 +348,7 @@ class ImageGallery
public function count() {
return count( $this->mImages );
}
-
+
/**
* Set the contextual title
*
@@ -277,7 +357,7 @@ class ImageGallery
public function setContextTitle( $title ) {
$this->contextTitle = $title;
}
-
+
/**
* Get the contextual title, if applicable
*
@@ -290,4 +370,3 @@ class ImageGallery
}
} //class
-?>
|