/**
  * Registers core modules and runs registration hooks.
  * @param $options List of options; if not given or empty, an empty module will be constructed
  */
 public function __construct($options)
 {
     foreach ($options as $member => $option) {
         switch ($member) {
             case 'messages':
                 $this->processMessages($option);
                 $this->hasHackedScriptMode = true;
                 // Prevent them being reinitialised when parent construct is called.
                 unset($options[$member]);
                 break;
         }
     }
     parent::__construct($options);
 }
 public function __construct($options = array(), $localBasePath = null, $remoteBasePath = null)
 {
     global $wgContLang;
     parent::__construct($options, $localBasePath, $remoteBasePath);
     // Get the content language code, and all the fallbacks. The first that
     // has a ext.cite.style.<lang code>.css file present will be used.
     $langCodes = array_merge(array($wgContLang->getCode()), $wgContLang->getFallbackLanguages());
     foreach ($langCodes as $lang) {
         $langStyleFile = 'ext.cite.style.' . $lang . '.css';
         $localPath = $this->getLocalPath($langStyleFile);
         if (file_exists($localPath)) {
             $this->styles[] = $langStyleFile;
             break;
         }
     }
 }
 public function __construct($options = array(), $localBasePath = null, $remoteBasePath = null)
 {
     $veConfig = ConfigFactory::getDefaultInstance()->makeConfig('visualeditor');
     $options['messages'] = array_merge($options['messages'], array_filter($veConfig->get('VisualEditorTabMessages')));
     parent::__construct($options, $localBasePath, $remoteBasePath);
 }