/** * Get a new image gallery. This is the method other callers * should use to get a gallery. * * @param string|bool $mode Mode to use. False to use the default * @param IContextSource|null $context * @return ImageGalleryBase * @throws MWException */ static function factory($mode = false, IContextSource $context = null) { global $wgContLang; self::loadModes(); if (!$context) { $context = RequestContext::getMainAndWarn(__METHOD__); } if (!$mode) { $galleryOpions = $context->getConfig()->get('GalleryOptions'); $mode = $galleryOpions['mode']; } $mode = $wgContLang->lc($mode); if (isset(self::$modeMapping[$mode])) { return new self::$modeMapping[$mode]($mode, $context); } else { throw new MWException("No gallery class registered for mode {$mode}"); } }