protected function getContent($title, $titleText, $options = array()) { global $wgCityId; $content = null; wfProfileIn(__METHOD__); if ($title instanceof GlobalTitle) { // todo: think of pages like NS_MAIN:Test/code.js that are pulled // from dev.wikia.com /* if ( !$title->isCssJsSubpage() && !$title->isCssOrJsPage() ) { return null; } */ if (WikiFactory::isWikiPrivate($title->getCityId()) == false) { $content = $title->getContent(); } // Try to load the contents of an article before falling back to a message (BugId:45352) // CE-1225 Load scripts from the MediaWiki namespace } elseif (WikiFactory::isWikiPrivate($wgCityId) == false || $title->getNamespace() == NS_MEDIAWIKI) { $revision = Revision::newFromTitle($title); if ($revision) { $content = $revision->getRawText(); } // Fall back to parent logic if (!$content) { $content = parent::getContent($title, $options); } } // Failed to get contents if ($content === false || $content === null || isset($options['missing'])) { $missingArticle = $this->getResourceName($title, $titleText, $options); if ($options['type'] == 'script' && isset($options['missingCallback'])) { $missingCallback = $options['missingCallback']; $missingArticle = json_encode((string) $missingArticle); $content = "window.{$missingCallback} && window.{$missingCallback}({$missingArticle});"; } else { if ($options['type'] == 'style') { $content = "/* Not found (requested by user-supplied javascript) */"; } } } wfProfileOut(__METHOD__); return $content; }