/** * Finds search suggestions phrases for chosen query * * @requestParam string $query search term for suggestions * * @responseParam array $items The list of phrases matching the query * * @example &query=los */ public function getList() { wfProfileIn(__METHOD__); if (!empty($this->wg->EnableLinkSuggestExt)) { $query = trim($this->request->getVal(self::PARAMETER_QUERY, null)); if (empty($query)) { throw new MissingParameterApiException(self::PARAMETER_QUERY); } $request = new WebRequest(); $request->setVal('format', 'array'); $linkSuggestions = LinkSuggest::getLinkSuggest($request); if (!empty($linkSuggestions)) { foreach ($linkSuggestions as $suggestion) { $searchSuggestions[]['title'] = $suggestion; } $this->response->setVal('items', $searchSuggestions); } else { throw new NotFoundApiException(); } $this->response->setCacheValidity(WikiaResponse::CACHE_STANDARD); } else { throw new NotFoundApiException('Link Suggest extension not available'); } wfProfileOut(__METHOD__); }
/** * Returns information to summarize an article with a snippet of text and a picture if applicable. */ public function blurb() { wfProfileIn(__METHOD__); $idStr = $this->request->getVal('ids'); $ids = explode(',', $idStr); $summary = array(); # Iterate through each title per wiki ID foreach ($ids as $id) { $title = Title::newFromID($id); if (empty($title)) { $summary[$this->wg->CityId]['error'][] = "Unable to find title for ID {$id}"; break; } $service = new ArticleService($id); $snippet = $service->getTextSnippet(); $imageServing = new ImageServing(array($id), 200, array('w' => 2, 'h' => 1)); $images = $imageServing->getImages(1); // get just one image per article $imageURL = ''; if (isset($images[$id])) { $imageURL = $images[$id][0]['url']; } $summary[$id] = array('wiki' => $this->wg->Sitename, 'wikiUrl' => $this->wg->Server, 'titleDBkey' => $title->getPrefixedDBkey(), 'titleText' => $title->getFullText(), 'articleId' => $title->getArticleID(), 'imageUrl' => $imageURL, 'url' => $title->getFullURL(), 'snippet' => $snippet); } wfProfileOut(__METHOD__); $this->summary = $summary; }
/** * Get list of Title objects representing existing boards * * @author Władysław Bodzek <*****@*****.**> * * @return array List of board IDs */ public function getListTitles($db = DB_SLAVE, $namespace = NS_USER_WALL) { wfProfileIn(__METHOD__); $titles = TitleBatch::newFromConds('page_wikia_props', array('page.page_namespace' => $namespace, 'page_wikia_props.page_id = page.page_id'), __METHOD__, array('ORDER BY' => 'page_title'), $db); wfProfileOut(__METHOD__); return $titles; }
protected function filterImages($imagesList = array()) { wfProfileIn(__METHOD__); # get image names from imagelinks table $imagesName = array_keys($imagesList); if (!empty($imagesName)) { foreach ($imagesName as $img_name) { $result = $this->db->select(array('imagelinks'), array('il_from'), array('il_to' => $img_name), __METHOD__, array('LIMIT' => $this->maxCount + 1)); #something goes wrong if (empty($result)) { continue; } # skip images which are too popular if ($result->numRows() > $this->maxCount) { continue; } # check image table $oRowImg = $this->db->selectRow(array('image'), array('img_name', 'img_height', 'img_width', 'img_minor_mime'), array('img_name' => $img_name), __METHOD__); if (empty($oRowImg)) { continue; } if ($oRowImg->img_height > $this->minSize && $oRowImg->img_width > $this->minSize) { if (!in_array($oRowImg->img_minor_mime, array("svg+xml", "svg"))) { $this->addToFiltredList($oRowImg->img_name, $result->numRows(), $oRowImg->img_width, $oRowImg->img_height, $oRowImg->img_minor_mime); } } } } wfProfileOut(__METHOD__); }
/** * Render Quiz namespace page */ public function view() { global $wgOut, $wgUser, $wgTitle, $wgRequest; wfProfileIn(__METHOD__); // let MW handle basic stuff parent::view(); // don't override history pages $action = $wgRequest->getVal('action'); if (in_array($action, array('history', 'historysubmit'))) { wfProfileOut(__METHOD__); return; } // quiz doesn't exist if (!$wgTitle->exists() || empty($this->mQuiz)) { wfProfileOut(__METHOD__); return; } // set page title $title = $this->mQuiz->getTitle(); $wgOut->setPageTitle($title); // add CSS/JS $wgOut->addStyle(AssetsManager::getInstance()->getSassCommonURL('extensions/wikia/WikiaQuiz/css/WikiaQuizBuilder.scss')); // render quiz page $wgOut->clearHTML(); $wgOut->addHTML($this->mQuiz->render()); wfProfileOut(__METHOD__); }
/** * Records a hit and enforces rate limits unless that is explicitly disabled in the call (see 'enforceRateLimits' param). * * @param apiKey - string - the API key of the app that made the request we are now logging * @param method - string - the method-name that was called in this request (should include class-name if appropriate - eg: 'MyClass::myMethod'). * @param timestamp - int - number of seconds since the unix epoch at the time that this hit was made. * @param params - array - array of key-value pairs of the parameters that were passed into the method * @param enforceRateLimits - boolean - optional (default:true) - if true, then this function will check rate-limits after logging, and ban the apiKey if * it has surpassed any of its rate-limits. */ public function processHit($apiKey, $method, $timestamp, $params, $enforceRateLimits = true) { wfProfileIn(__METHOD__); // TODO: IMPLEMENT // TODO: IMPLEMENT wfProfileOut(__METHOD__); }
function performAction() { global $wgAjaxExportList, $wgOut; if (empty($this->mode)) { return; } wfProfileIn('AjaxDispatcher::performAction'); if (!in_array($this->func_name, $wgAjaxExportList)) { header('Status: 400 Bad Request', true, 400); print "unknown function " . htmlspecialchars((string) $this->func_name); } else { try { $result = call_user_func_array($this->func_name, $this->args); if ($result === false || $result === NULL) { header('Status: 500 Internal Error', true, 500); echo "{$this->func_name} returned no data"; } else { if (is_string($result)) { $result = new AjaxResponse($result); } $result->sendHeaders(); $result->printText(); } } catch (Exception $e) { if (!headers_sent()) { header('Status: 500 Internal Error', true, 500); print $e->getMessage(); } else { print $e->getMessage(); } } } wfProfileOut('AjaxDispatcher::performAction'); $wgOut = null; }
public function onSubmit($data) { wfProfileIn(__METHOD__); self::doWatch($this->getTitle(), $this->getUser()); wfProfileOut(__METHOD__); return true; }
/** * Run a pageSchemasCreatePage job * @return boolean success */ function run() { wfProfileIn( __METHOD__ ); if ( is_null( $this->title ) ) { $this->error = "pageSchemasCreatePage: Invalid title"; wfProfileOut( __METHOD__ ); return false; } $article = new Article( $this->title ); if ( !$article ) { $this->error = 'pageSchemasCreatePage: Article not found "' . $this->title->getPrefixedDBkey() . '"'; wfProfileOut( __METHOD__ ); return false; } $page_text = $this->params['page_text']; // change global $wgUser variable to the one // specified by the job only for the extent of this // replacement global $wgUser; $actual_user = $wgUser; $wgUser = User::newFromId( $this->params['user_id'] ); $edit_summary = wfMsgForContent( 'ps-generatepages-editsummary' ); $article->doEdit( $page_text, $edit_summary ); $wgUser = $actual_user; wfProfileOut( __METHOD__ ); return true; }
function execute($par) { wfProfileIn(__METHOD__); global $wgOut, $wgExtensionsPath, $wgResourceBasePath, $wgJsMimeType, $wgUser; // set basic headers $this->setHeaders(); if (wfReadOnly()) { $wgOut->readOnlyPage(); wfProfileOut(__METHOD__); return; } if (!$this->userCanExecute($wgUser)) { $this->displayRestrictionError(); wfProfileOut(__METHOD__); return; } // include resources (css and js) $wgOut->addExtensionStyle("{$wgExtensionsPath}/wikia/AchievementsII/css/platinum.css\n"); $wgOut->addStyle(AssetsManager::getInstance()->getSassCommonURL('extensions/wikia/AchievementsII/css/oasis.scss')); $wgOut->addScript("<script type=\"{$wgJsMimeType}\" src=\"{$wgExtensionsPath}/wikia/AchievementsII/js/platinum.js\"></script>\n"); $wgOut->addScript("<script type=\"{$wgJsMimeType}\" src=\"{$wgResourceBasePath}/resources/wikia/libraries/aim/jquery.aim.js\"></script>\n"); // call service to get needed data $badges = AchPlatinumService::getList(); // pass data to template $template = new EasyTemplate(dirname(__FILE__) . '/templates'); $template->set_vars(array('badges' => $badges)); // render template $wgOut->addHTML($template->render('SpecialPlatinum')); wfProfileOut(__METHOD__); }
/** * @author Inez Korczynski <*****@*****.**> */ private function getWikiaFooterLinks() { wfProfileIn( __METHOD__ ); global $wgCityId; $catId = WikiFactoryHub::getInstance()->getCategoryId( $wgCityId ); $message_key = 'shared-Oasis-footer-wikia-links'; $nodes = array(); if ( !isset( $catId ) || null == ( $lines = getMessageAsArray( $message_key . '-' . $catId ) ) ) { if ( null == ( $lines = getMessageAsArray( $message_key ) ) ) { wfProfileOut( __METHOD__ ); return $nodes; } } foreach( $lines as $line ) { $depth = strrpos( $line, '*' ); if( $depth === 0 ) { $nodes[] = parseItem( $line ); } } wfProfileOut( __METHOD__ ); return $nodes; }
function execute($par) { global $wgOut, $wgRequest, $wgUser, $wgFBAppId, $wgFBAppSecret, $wgLanguageCode, $IP; wfProfileIn(__METHOD__); $wgOut->setRobotpolicy('noindex,nofollow'); if ($wgUser->getId() == 0) { $wgOut->errorpage('nosuchspecialpage', 'nospecialpagetext'); return; } require_once "{$IP}/extensions/wikihow/common/facebook-platform/facebook-php-sdk-771862b/src/facebook.php"; $this->facebook = new Facebook(array('appId' => $wgFBAppId, 'secret' => $wgFBAppSecret)); $accessToken = $wgRequest->getVal('token', null); $this->facebook->setAccessToken($accessToken); $action = $wgRequest->getVal('a', ''); switch ($action) { case 'confirm': $this->showConfirmation(); break; case 'link': $this->linkAccounts(); break; } wfProfileOut(__METHOD__); return; }
/** * Get RelatedPages for a given article ID * * @requestParam array $id Id of an article to fetch related pages for * @requestParam integer $limit [OPTIONAL] Limit the number of related pages to return default: 3 * * @responseParam object $items List of articles with related pages * @responseParam array $basepath domain of a wiki to create a url for an article * * @example &ids=2087 * @example &ids=2087,3090 * @example &ids=2087&limit=5 */ function getList() { wfProfileIn(__METHOD__); if (!empty($this->wg->EnableRelatedPagesExt) && empty($this->wg->EnableAnswers)) { $ids = $this->request->getArray(self::PARAMETER_ARTICLE_IDS, null); $limit = $this->request->getInt(self::PARAMETER_LIMIT, 3); $related = []; if (is_array($ids)) { $relatedPages = RelatedPages::getInstance(); foreach ($ids as $id) { if (is_numeric($id)) { $related[$id] = $relatedPages->get($id, $limit); } else { throw new InvalidParameterApiException(self::PARAMETER_ARTICLE_IDS); } $relatedPages->reset(); } } else { wfProfileOut(__METHOD__); throw new MissingParameterApiException('ids'); } $this->setResponseData(['items' => $related, 'basepath' => $this->wg->Server], ['imgFields' => 'imgUrl', 'urlFields' => ['imgUrl', 'url']], WikiaResponse::CACHE_SHORT); wfProfileOut(__METHOD__); } else { wfProfileOut(__METHOD__); throw new NotFoundApiException('Related Pages extension not available'); } }
/** * Initalize the settings stored in a serialized file. * This have to be done before the end of LocalSettings.php but is in a function * because administrators might configure some settings between the moment where * the file is loaded and the execution of these function. * Settings are not filled only if they doesn't exists because of a security * hole if the register_globals feature of PHP is enabled. * * @param $wiki String */ function efConfigureSetup($wiki = 'default') { global $wgConf, $wgConfigureFilesPath, $wgConfigureExtDir, $wgConfigureHandler, $wgConfigureAllowDeferSetup; wfProfileIn(__FUNCTION__); # Create the new configuration object... $oldConf = $wgConf; require_once dirname(__FILE__) . '/Configure.obj.php'; $wgConf = new WebConfiguration($wiki, $wgConfigureFilesPath); # Copy the existing settings... $wgConf->suffixes = $oldConf->suffixes; $wgConf->wikis = $oldConf->wikis; $wgConf->settings = $oldConf->settings; $wgConf->localVHosts = $oldConf->localVHosts; $wgConf->siteParamsCallback = $oldConf->siteParamsCallback; $wgConf->snapshotDefaults(); if ($wgConfigureAllowDeferSetup && $wgConfigureHandler == 'db') { // Defer to after caches and database are set up. global $wgExtensionFunctions; $wgExtensionFunctions[] = 'efConfigureInitialise'; } else { efConfigureInitialise(); } # Cleanup $wgConfigureExtDir as needed if (substr($wgConfigureExtDir, -1) != '/' && substr($wgConfigureExtDir, -1) != '\\') { $wgConfigureExtDir .= '/'; } wfProfileOut(__FUNCTION__); }
function __autoload($className) { global $wgAutoloadClasses; # Locations of core classes # Extension classes are specified with $wgAutoloadClasses static $localClasses = array('AjaxDispatcher' => 'includes/AjaxDispatcher.php', 'AjaxCachePolicy' => 'includes/AjaxFunctions.php', 'AjaxResponse' => 'includes/AjaxResponse.php', 'AlphabeticPager' => 'includes/Pager.php', 'Article' => 'includes/Article.php', 'AuthPlugin' => 'includes/AuthPlugin.php', 'Autopromote' => 'includes/Autopromote.php', 'BagOStuff' => 'includes/BagOStuff.php', 'HashBagOStuff' => 'includes/BagOStuff.php', 'SqlBagOStuff' => 'includes/BagOStuff.php', 'MediaWikiBagOStuff' => 'includes/BagOStuff.php', 'TurckBagOStuff' => 'includes/BagOStuff.php', 'APCBagOStuff' => 'includes/BagOStuff.php', 'eAccelBagOStuff' => 'includes/BagOStuff.php', 'XCacheBagOStuff' => 'includes/BagOStuff.php', 'DBABagOStuff' => 'includes/BagOStuff.php', 'Block' => 'includes/Block.php', 'HTMLFileCache' => 'includes/HTMLFileCache.php', 'DependencyWrapper' => 'includes/CacheDependency.php', 'FileDependency' => 'includes/CacheDependency.php', 'TitleDependency' => 'includes/CacheDependency.php', 'TitleListDependency' => 'includes/CacheDependency.php', 'CategoryPage' => 'includes/CategoryPage.php', 'CategoryViewer' => 'includes/CategoryPage.php', 'Categoryfinder' => 'includes/Categoryfinder.php', 'RCCacheEntry' => 'includes/ChangesList.php', 'ChangesList' => 'includes/ChangesList.php', 'OldChangesList' => 'includes/ChangesList.php', 'EnhancedChangesList' => 'includes/ChangesList.php', 'CoreParserFunctions' => 'includes/CoreParserFunctions.php', 'DBObject' => 'includes/Database.php', 'Database' => 'includes/Database.php', 'DatabaseMysql' => 'includes/Database.php', 'ResultWrapper' => 'includes/Database.php', 'DatabasePostgres' => 'includes/DatabasePostgres.php', 'DatabaseOracle' => 'includes/DatabaseOracle.php', 'DateFormatter' => 'includes/DateFormatter.php', 'DifferenceEngine' => 'includes/DifferenceEngine.php', '_DiffOp' => 'includes/DifferenceEngine.php', '_DiffOp_Copy' => 'includes/DifferenceEngine.php', '_DiffOp_Delete' => 'includes/DifferenceEngine.php', '_DiffOp_Add' => 'includes/DifferenceEngine.php', '_DiffOp_Change' => 'includes/DifferenceEngine.php', '_DiffEngine' => 'includes/DifferenceEngine.php', 'Diff' => 'includes/DifferenceEngine.php', 'MappedDiff' => 'includes/DifferenceEngine.php', 'DiffFormatter' => 'includes/DifferenceEngine.php', 'UnifiedDiffFormatter' => 'includes/DifferenceEngine.php', 'ArrayDiffFormatter' => 'includes/DifferenceEngine.php', 'DjVuImage' => 'includes/DjVuImage.php', '_HWLDF_WordAccumulator' => 'includes/DifferenceEngine.php', 'WordLevelDiff' => 'includes/DifferenceEngine.php', 'TableDiffFormatter' => 'includes/DifferenceEngine.php', 'EditPage' => 'includes/EditPage.php', 'MWException' => 'includes/Exception.php', 'Exif' => 'includes/Exif.php', 'FormatExif' => 'includes/Exif.php', 'WikiExporter' => 'includes/Export.php', 'XmlDumpWriter' => 'includes/Export.php', 'DumpOutput' => 'includes/Export.php', 'DumpFileOutput' => 'includes/Export.php', 'DumpPipeOutput' => 'includes/Export.php', 'DumpGZipOutput' => 'includes/Export.php', 'DumpBZip2Output' => 'includes/Export.php', 'Dump7ZipOutput' => 'includes/Export.php', 'DumpFilter' => 'includes/Export.php', 'DumpNotalkFilter' => 'includes/Export.php', 'DumpNamespaceFilter' => 'includes/Export.php', 'DumpLatestFilter' => 'includes/Export.php', 'DumpMultiWriter' => 'includes/Export.php', 'ExternalEdit' => 'includes/ExternalEdit.php', 'ExternalStore' => 'includes/ExternalStore.php', 'ExternalStoreDB' => 'includes/ExternalStoreDB.php', 'ExternalStoreHttp' => 'includes/ExternalStoreHttp.php', 'FakeTitle' => 'includes/FakeTitle.php', 'FeedItem' => 'includes/Feed.php', 'ChannelFeed' => 'includes/Feed.php', 'RSSFeed' => 'includes/Feed.php', 'AtomFeed' => 'includes/Feed.php', 'FileStore' => 'includes/FileStore.php', 'FSException' => 'includes/FileStore.php', 'FSTransaction' => 'includes/FileStore.php', 'HistoryBlob' => 'includes/HistoryBlob.php', 'ConcatenatedGzipHistoryBlob' => 'includes/HistoryBlob.php', 'HistoryBlobStub' => 'includes/HistoryBlob.php', 'HistoryBlobCurStub' => 'includes/HistoryBlob.php', 'HTMLCacheUpdate' => 'includes/HTMLCacheUpdate.php', 'Http' => 'includes/HttpFunctions.php', 'IP' => 'includes/IP.php', 'ImageGallery' => 'includes/ImageGallery.php', 'ImagePage' => 'includes/ImagePage.php', 'ImageHistoryList' => 'includes/ImagePage.php', 'FileDeleteForm' => 'includes/FileDeleteForm.php', 'FileRevertForm' => 'includes/FileRevertForm.php', 'Job' => 'includes/JobQueue.php', 'EmaillingJob' => 'includes/EmaillingJob.php', 'EnotifNotifyJob' => 'includes/EnotifNotifyJob.php', 'HTMLCacheUpdateJob' => 'includes/HTMLCacheUpdate.php', 'RefreshLinksJob' => 'includes/RefreshLinksJob.php', 'Licenses' => 'includes/Licenses.php', 'License' => 'includes/Licenses.php', 'LinkBatch' => 'includes/LinkBatch.php', 'LinkCache' => 'includes/LinkCache.php', 'LinkFilter' => 'includes/LinkFilter.php', 'Linker' => 'includes/Linker.php', 'LinksUpdate' => 'includes/LinksUpdate.php', 'LoadBalancer' => 'includes/LoadBalancer.php', 'LogPage' => 'includes/LogPage.php', 'MacBinary' => 'includes/MacBinary.php', 'MagicWord' => 'includes/MagicWord.php', 'MagicWordArray' => 'includes/MagicWord.php', 'MathRenderer' => 'includes/Math.php', 'MediaTransformOutput' => 'includes/MediaTransformOutput.php', 'ThumbnailImage' => 'includes/MediaTransformOutput.php', 'MediaTransformError' => 'includes/MediaTransformOutput.php', 'TransformParameterError' => 'includes/MediaTransformOutput.php', 'MessageCache' => 'includes/MessageCache.php', 'MimeMagic' => 'includes/MimeMagic.php', 'Namespace' => 'includes/Namespace.php', 'FakeMemCachedClient' => 'includes/ObjectCache.php', 'OutputPage' => 'includes/OutputPage.php', 'PageHistory' => 'includes/PageHistory.php', 'IndexPager' => 'includes/Pager.php', 'ReverseChronologicalPager' => 'includes/Pager.php', 'TablePager' => 'includes/Pager.php', 'Parser' => 'includes/Parser.php', 'Parser_OldPP' => 'includes/Parser_OldPP.php', 'Parser_DiffTest' => 'includes/Parser_DiffTest.php', 'ParserCache' => 'includes/ParserCache.php', 'ParserOutput' => 'includes/ParserOutput.php', 'ParserOptions' => 'includes/ParserOptions.php', 'PatrolLog' => 'includes/PatrolLog.php', 'Preprocessor' => 'includes/Preprocessor.php', 'PrefixSearch' => 'includes/PrefixSearch.php', 'PPFrame' => 'includes/Preprocessor.php', 'PPNode' => 'includes/Preprocessor.php', 'Preprocessor_DOM' => 'includes/Preprocessor_DOM.php', 'PPFrame_DOM' => 'includes/Preprocessor_DOM.php', 'PPTemplateFrame_DOM' => 'includes/Preprocessor_DOM.php', 'PPDStack' => 'includes/Preprocessor_DOM.php', 'PPDStackElement' => 'includes/Preprocessor_DOM.php', 'PPNode_DOM' => 'includes/Preprocessor_DOM.php', 'Preprocessor_Hash' => 'includes/Preprocessor_Hash.php', 'ProfilerSimple' => 'includes/ProfilerSimple.php', 'ProfilerSimpleUDP' => 'includes/ProfilerSimpleUDP.php', 'Profiler' => 'includes/Profiler.php', 'ProxyTools' => 'includes/ProxyTools.php', 'ProtectionForm' => 'includes/ProtectionForm.php', 'QueryPage' => 'includes/QueryPage.php', 'PageQueryPage' => 'includes/PageQueryPage.php', 'ImageQueryPage' => 'includes/ImageQueryPage.php', 'RawPage' => 'includes/RawPage.php', 'RecentChange' => 'includes/RecentChange.php', 'Revision' => 'includes/Revision.php', 'Sanitizer' => 'includes/Sanitizer.php', 'SearchEngine' => 'includes/SearchEngine.php', 'SearchResultSet' => 'includes/SearchEngine.php', 'SearchResult' => 'includes/SearchEngine.php', 'SearchEngineDummy' => 'includes/SearchEngine.php', 'SearchMySQL' => 'includes/SearchMySQL.php', 'MySQLSearchResultSet' => 'includes/SearchMySQL.php', 'SearchMySQL4' => 'includes/SearchMySQL4.php', 'SearchPostgres' => 'includes/SearchPostgres.php', 'SearchUpdate' => 'includes/SearchUpdate.php', 'SearchUpdateMyISAM' => 'includes/SearchUpdate.php', 'SearchOracle' => 'includes/SearchOracle.php', 'SiteConfiguration' => 'includes/SiteConfiguration.php', 'SiteStats' => 'includes/SiteStats.php', 'SiteStatsUpdate' => 'includes/SiteStats.php', 'Skin' => 'includes/Skin.php', 'MediaWiki_I18N' => 'includes/SkinTemplate.php', 'SkinTemplate' => 'includes/SkinTemplate.php', 'QuickTemplate' => 'includes/SkinTemplate.php', 'SpecialAllpages' => 'includes/SpecialAllpages.php', 'AncientPagesPage' => 'includes/SpecialAncientpages.php', 'IPBlockForm' => 'includes/SpecialBlockip.php', 'SpecialBookSources' => 'includes/SpecialBooksources.php', 'BrokenRedirectsPage' => 'includes/SpecialBrokenRedirects.php', 'EmailConfirmation' => 'includes/SpecialConfirmemail.php', 'ContributionsPage' => 'includes/SpecialContributions.php', 'DeadendPagesPage' => 'includes/SpecialDeadendpages.php', 'DisambiguationsPage' => 'includes/SpecialDisambiguations.php', 'DoubleRedirectsPage' => 'includes/SpecialDoubleRedirects.php', 'EmailUserForm' => 'includes/SpecialEmailuser.php', 'WikiRevision' => 'includes/SpecialImport.php', 'WikiImporter' => 'includes/SpecialImport.php', 'ImportStringSource' => 'includes/SpecialImport.php', 'ImportStreamSource' => 'includes/SpecialImport.php', 'IPUnblockForm' => 'includes/SpecialIpblocklist.php', 'ListredirectsPage' => 'includes/SpecialListredirects.php', 'DBLockForm' => 'includes/SpecialLockdb.php', 'LogReader' => 'includes/SpecialLog.php', 'LogViewer' => 'includes/SpecialLog.php', 'LonelyPagesPage' => 'includes/SpecialLonelypages.php', 'LongPagesPage' => 'includes/SpecialLongpages.php', 'MIMEsearchPage' => 'includes/SpecialMIMEsearch.php', 'MostcategoriesPage' => 'includes/SpecialMostcategories.php', 'MostimagesPage' => 'includes/SpecialMostimages.php', 'MostlinkedPage' => 'includes/SpecialMostlinked.php', 'MostlinkedCategoriesPage' => 'includes/SpecialMostlinkedcategories.php', 'SpecialMostlinkedtemplates' => 'includes/SpecialMostlinkedtemplates.php', 'MostrevisionsPage' => 'includes/SpecialMostrevisions.php', 'FewestrevisionsPage' => 'includes/SpecialFewestrevisions.php', 'MovePageForm' => 'includes/SpecialMovepage.php', 'NewbieContributionsPage' => 'includes/SpecialNewbieContributions.php', 'NewPagesPage' => 'includes/SpecialNewpages.php', 'SpecialPage' => 'includes/SpecialPage.php', 'UnlistedSpecialPage' => 'includes/SpecialPage.php', 'IncludableSpecialPage' => 'includes/SpecialPage.php', 'PopularPagesPage' => 'includes/SpecialPopularpages.php', 'PreferencesForm' => 'includes/SpecialPreferences.php', 'SpecialPrefixindex' => 'includes/SpecialPrefixindex.php', 'RandomPage' => 'includes/SpecialRandompage.php', 'SpecialRandomredirect' => 'includes/SpecialRandomredirect.php', 'PasswordResetForm' => 'includes/SpecialResetpass.php', 'RevisionDeleteForm' => 'includes/SpecialRevisiondelete.php', 'RevisionDeleter' => 'includes/SpecialRevisiondelete.php', 'SpecialSearch' => 'includes/SpecialSearch.php', 'ShortPagesPage' => 'includes/SpecialShortpages.php', 'UncategorizedCategoriesPage' => 'includes/SpecialUncategorizedcategories.php', 'UncategorizedPagesPage' => 'includes/SpecialUncategorizedpages.php', 'UncategorizedTemplatesPage' => 'includes/SpecialUncategorizedtemplates.php', 'PageArchive' => 'includes/SpecialUndelete.php', 'UndeleteForm' => 'includes/SpecialUndelete.php', 'DBUnlockForm' => 'includes/SpecialUnlockdb.php', 'UnusedCategoriesPage' => 'includes/SpecialUnusedcategories.php', 'UnusedimagesPage' => 'includes/SpecialUnusedimages.php', 'UnusedtemplatesPage' => 'includes/SpecialUnusedtemplates.php', 'UnwatchedpagesPage' => 'includes/SpecialUnwatchedpages.php', 'UploadForm' => 'includes/SpecialUpload.php', 'UploadFormMogile' => 'includes/SpecialUploadMogile.php', 'LoginForm' => 'includes/SpecialUserlogin.php', 'UserrightsPage' => 'includes/SpecialUserrights.php', 'SpecialVersion' => 'includes/SpecialVersion.php', 'WantedCategoriesPage' => 'includes/SpecialWantedcategories.php', 'WantedPagesPage' => 'includes/SpecialWantedpages.php', 'WhatLinksHerePage' => 'includes/SpecialWhatlinkshere.php', 'WithoutInterwikiPage' => 'includes/SpecialWithoutinterwiki.php', 'SquidUpdate' => 'includes/SquidUpdate.php', 'ReplacementArray' => 'includes/StringUtils.php', 'Replacer' => 'includes/StringUtils.php', 'RegexlikeReplacer' => 'includes/StringUtils.php', 'DoubleReplacer' => 'includes/StringUtils.php', 'HashtableReplacer' => 'includes/StringUtils.php', 'StringUtils' => 'includes/StringUtils.php', 'Title' => 'includes/Title.php', 'User' => 'includes/User.php', 'UserRightsProxy' => 'includes/UserRightsProxy.php', 'MailAddress' => 'includes/UserMailer.php', 'EmailNotification' => 'includes/UserMailer.php', 'UserMailer' => 'includes/UserMailer.php', 'WatchedItem' => 'includes/WatchedItem.php', 'WebRequest' => 'includes/WebRequest.php', 'WebResponse' => 'includes/WebResponse.php', 'FauxRequest' => 'includes/WebRequest.php', 'MediaWiki' => 'includes/Wiki.php', 'WikiError' => 'includes/WikiError.php', 'WikiErrorMsg' => 'includes/WikiError.php', 'WikiXmlError' => 'includes/WikiError.php', 'Xml' => 'includes/Xml.php', 'XmlTypeCheck' => 'includes/XmlTypeCheck.php', 'ZhClient' => 'includes/ZhClient.php', 'memcached' => 'includes/memcached-client.php', 'EmaillingJob' => 'includes/JobQueue.php', 'WatchlistEditor' => 'includes/WatchlistEditor.php', 'ArchivedFile' => 'includes/filerepo/ArchivedFile.php', 'File' => 'includes/filerepo/File.php', 'FileRepo' => 'includes/filerepo/FileRepo.php', 'FileRepoStatus' => 'includes/filerepo/FileRepoStatus.php', 'ForeignDBFile' => 'includes/filerepo/ForeignDBFile.php', 'ForeignDBRepo' => 'includes/filerepo/ForeignDBRepo.php', 'FSRepo' => 'includes/filerepo/FSRepo.php', 'Image' => 'includes/filerepo/LocalFile.php', 'LocalFile' => 'includes/filerepo/LocalFile.php', 'LocalFileDeleteBatch' => 'includes/filerepo/LocalFile.php', 'LocalFileRestoreBatch' => 'includes/filerepo/LocalFile.php', 'LocalRepo' => 'includes/filerepo/LocalRepo.php', 'OldLocalFile' => 'includes/filerepo/OldLocalFile.php', 'RepoGroup' => 'includes/filerepo/RepoGroup.php', 'UnregisteredLocalFile' => 'includes/filerepo/UnregisteredLocalFile.php', 'BitmapHandler' => 'includes/media/Bitmap.php', 'BmpHandler' => 'includes/media/BMP.php', 'DjVuHandler' => 'includes/media/DjVu.php', 'MediaHandler' => 'includes/media/Generic.php', 'ImageHandler' => 'includes/media/Generic.php', 'SvgHandler' => 'includes/media/SVG.php', 'UtfNormal' => 'includes/normal/UtfNormal.php', 'UsercreateTemplate' => 'includes/templates/Userlogin.php', 'UserloginTemplate' => 'includes/templates/Userlogin.php', 'Language' => 'languages/Language.php', 'ApiBase' => 'includes/api/ApiBase.php', 'ApiExpandTemplates' => 'includes/api/ApiExpandTemplates.php', 'ApiFormatFeedWrapper' => 'includes/api/ApiFormatBase.php', 'ApiFeedWatchlist' => 'includes/api/ApiFeedWatchlist.php', 'ApiFormatBase' => 'includes/api/ApiFormatBase.php', 'Services_JSON' => 'includes/api/ApiFormatJson_json.php', 'ApiFormatJson' => 'includes/api/ApiFormatJson.php', 'ApiFormatPhp' => 'includes/api/ApiFormatPhp.php', 'ApiFormatWddx' => 'includes/api/ApiFormatWddx.php', 'ApiFormatXml' => 'includes/api/ApiFormatXml.php', 'ApiFormatTxt' => 'includes/api/ApiFormatTxt.php', 'ApiFormatDbg' => 'includes/api/ApiFormatDbg.php', 'Spyc' => 'includes/api/ApiFormatYaml_spyc.php', 'ApiFormatYaml' => 'includes/api/ApiFormatYaml.php', 'ApiHelp' => 'includes/api/ApiHelp.php', 'ApiLogin' => 'includes/api/ApiLogin.php', 'ApiLogout' => 'includes/api/ApiLogout.php', 'ApiMain' => 'includes/api/ApiMain.php', 'ApiOpenSearch' => 'includes/api/ApiOpenSearch.php', 'ApiPageSet' => 'includes/api/ApiPageSet.php', 'ApiParamInfo' => 'includes/api/ApiParamInfo.php', 'ApiParse' => 'includes/api/ApiParse.php', 'ApiQuery' => 'includes/api/ApiQuery.php', 'ApiQueryAllpages' => 'includes/api/ApiQueryAllpages.php', 'ApiQueryAllLinks' => 'includes/api/ApiQueryAllLinks.php', 'ApiQueryAllCategories' => 'includes/api/ApiQueryAllCategories.php', 'ApiQueryAllUsers' => 'includes/api/ApiQueryAllUsers.php', 'ApiQueryBase' => 'includes/api/ApiQueryBase.php', 'ApiQueryGeneratorBase' => 'includes/api/ApiQueryBase.php', 'ApiQueryBacklinks' => 'includes/api/ApiQueryBacklinks.php', 'ApiQueryCategories' => 'includes/api/ApiQueryCategories.php', 'ApiQueryCategoryMembers' => 'includes/api/ApiQueryCategoryMembers.php', 'ApiQueryContributions' => 'includes/api/ApiQueryUserContributions.php', 'ApiQueryExternalLinks' => 'includes/api/ApiQueryExternalLinks.php', 'ApiQueryExtLinksUsage' => 'includes/api/ApiQueryExtLinksUsage.php', 'ApiQueryImages' => 'includes/api/ApiQueryImages.php', 'ApiQueryImageInfo' => 'includes/api/ApiQueryImageInfo.php', 'ApiQueryInfo' => 'includes/api/ApiQueryInfo.php', 'ApiQueryLangLinks' => 'includes/api/ApiQueryLangLinks.php', 'ApiQueryLinks' => 'includes/api/ApiQueryLinks.php', 'ApiQueryLogEvents' => 'includes/api/ApiQueryLogEvents.php', 'ApiQueryRandom' => 'includes/api/ApiQueryRandom.php', 'ApiQueryRecentChanges' => 'includes/api/ApiQueryRecentChanges.php', 'ApiQueryRevisions' => 'includes/api/ApiQueryRevisions.php', 'ApiQuerySearch' => 'includes/api/ApiQuerySearch.php', 'ApiQueryAllmessages' => 'includes/api/ApiQueryAllmessages.php', 'ApiQuerySiteinfo' => 'includes/api/ApiQuerySiteinfo.php', 'ApiQueryUsers' => 'includes/api/ApiQueryUsers.php', 'ApiQueryUserInfo' => 'includes/api/ApiQueryUserInfo.php', 'ApiQueryWatchlist' => 'includes/api/ApiQueryWatchlist.php', 'ApiResult' => 'includes/api/ApiResult.php', 'ApiBlock' => 'includes/api/ApiBlock.php', 'ApiDelete' => 'includes/api/ApiDelete.php', 'ApiMove' => 'includes/api/ApiMove.php', 'ApiProtect' => 'includes/api/ApiProtect.php', 'ApiQueryBlocks' => 'includes/api/ApiQueryBlocks.php', 'ApiQueryDeletedrevs' => 'includes/api/ApiQueryDeletedrevs.php', 'ApiRollback' => 'includes/api/ApiRollback.php', 'ApiUnblock' => 'includes/api/ApiUnblock.php', 'ApiUndelete' => 'includes/api/ApiUndelete.php'); wfProfileIn(__METHOD__); if (isset($localClasses[$className])) { $filename = $localClasses[$className]; } elseif (isset($wgAutoloadClasses[$className])) { $filename = $wgAutoloadClasses[$className]; } else { # Try a different capitalisation # The case can sometimes be wrong when unserializing PHP 4 objects $filename = false; $lowerClass = strtolower($className); foreach ($localClasses as $class2 => $file2) { if (strtolower($class2) == $lowerClass) { $filename = $file2; } } if (!$filename) { # Give up wfProfileOut(__METHOD__); return; } } # Make an absolute path, this improves performance by avoiding some stat calls if (substr($filename, 0, 1) != '/' && substr($filename, 1, 1) != ':') { global $IP; $filename = "{$IP}/{$filename}"; } require $filename; wfProfileOut(__METHOD__); }
public function index() { wfProfileIn(__METHOD__); $socialSharingService = SocialSharingService::getInstance(); $this->setVal('networks', $socialSharingService->getNetworks(array('facebook', 'twitter', 'plusone', 'email'))); wfProfileOut(__METHOD__); }
public function Wordmark() { $themeSettings = new ThemeSettings(); $settings = $themeSettings->getSettings(); $wordmarkURL = ''; if ($settings['wordmark-type'] == 'graphic') { wfProfileIn(__METHOD__ . 'graphicWordmark'); $imageTitle = Title::newFromText($themeSettings::WordmarkImageName, NS_IMAGE); $file = wfFindFile($imageTitle); $attributes = []; $wordmarkStyle = ''; if ($file instanceof File) { $wordmarkURL = $file->getUrl(); $attributes[] = 'width="' . $file->width . '"'; $attributes[] = 'height="' . $file->height . '"'; if (!empty($attributes)) { $this->wordmarkStyle = ' ' . implode(' ', $attributes) . ' '; } } wfProfileOut(__METHOD__ . 'graphicWordmark'); } $mainPageURL = Title::newMainPage()->getLocalURL(); $this->setVal('mainPageURL', $mainPageURL); $this->setVal('wordmarkText', $settings['wordmark-text']); $this->setVal('wordmarkFontSize', $settings['wordmark-font-size']); $this->setVal('wordmarkUrl', $wordmarkURL); $this->setVal('wordmarkStyle', $wordmarkStyle); }
/** * Execute function for generating view of Button template * Sets params' values of template * @param $params array of params described below * @param $params['link_url'] string Full link to some destination (mandatory) * @param $params['link_text'] string Description showed on a button */ public function executeButton($params) { wfProfileIn(__METHOD__); $this->link_url = $params['link_url']; $this->link_text = array_key_exists('link_text', $params) ? $params['link_text'] : $this->link_url; wfProfileOut(__METHOD__); }
/** * @param $langCode string * @return array * @throws MWException */ private static function getFeedsInternal($langCode) { global $wgFeaturedFeeds, $wgFeaturedFeedsDefaults, $wgContLang; wfProfileIn(__METHOD__); $feedDefs = $wgFeaturedFeeds; wfRunHooks('FeaturedFeeds::getFeeds', array(&$feedDefs)); // fill defaults foreach ($feedDefs as $name => $opts) { foreach ($wgFeaturedFeedsDefaults as $setting => $value) { if (!isset($opts[$setting])) { $feedDefs[$name][$setting] = $value; } } } $feeds = array(); $requestedLang = Language::factory($langCode); $parser = new Parser(); foreach ($feedDefs as $name => $opts) { $feed = new FeaturedFeedChannel($name, $opts, $requestedLang); if (!$feed->isOK()) { continue; } $feed->getFeedItems(); $feeds[$name] = $feed; } wfProfileOut(__METHOD__); return $feeds; }
/** * @see Content::replaceSection() */ public function replaceSection($section, Content $with, $sectionTitle = '') { wfProfileIn(__METHOD__); $myModelId = $this->getModel(); $sectionModelId = $with->getModel(); if ($sectionModelId != $myModelId) { wfProfileOut(__METHOD__); throw new MWException("Incompatible content model for section: " . "document uses {$myModelId} but " . "section uses {$sectionModelId}."); } $oldtext = $this->getNativeData(); $text = $with->getNativeData(); if ($section === '') { wfProfileOut(__METHOD__); return $with; # XXX: copy first? } if ($section == 'new') { # Inserting a new section $subject = $sectionTitle ? wfMessage('newsectionheaderdefaultlevel')->rawParams($sectionTitle)->inContentLanguage()->text() . "\n\n" : ''; if (wfRunHooks('PlaceNewSection', array($this, $oldtext, $subject, &$text))) { $text = strlen(trim($oldtext)) > 0 ? "{$oldtext}\n\n{$subject}{$text}" : "{$subject}{$text}"; } } else { # Replacing an existing section; roll out the big guns global $wgParser; $text = $wgParser->replaceSection($oldtext, $section, $text); } $newContent = new WikitextContent($text); wfProfileOut(__METHOD__); return $newContent; }
/** * Returns the HTML which is added to $wgOut after the article text. * * @return string */ protected function getHtml() { wfProfileIn(__METHOD__ . ' (SMW)'); if ($this->limit > 0) { // limit==0: configuration setting to disable this completely $store = smwfGetStore(); $description = new SMWConceptDescription($this->getDataItem()); $query = SMWPageLister::getQuery($description, $this->limit, $this->from, $this->until); $queryResult = $store->getQueryResult($query); $diWikiPages = $queryResult->getResults(); if ($this->until !== '') { $diWikiPages = array_reverse($diWikiPages); } $errors = $queryResult->getErrors(); } else { $diWikiPages = array(); $errors = array(); } $pageLister = new SMWPageLister($diWikiPages, null, $this->limit, $this->from, $this->until); $this->mTitle->setFragment('#SMWResults'); // Make navigation point to the result list. $navigation = $pageLister->getNavigationLinks($this->mTitle); $titleText = htmlspecialchars($this->mTitle->getText()); $resultNumber = min($this->limit, count($diWikiPages)); $result = "<a name=\"SMWResults\"></a><div id=\"mw-pages\">\n" . '<h2>' . wfMsg('smw_concept_header', $titleText) . "</h2>\n" . wfMsgExt('smw_conceptarticlecount', array('parsemag'), $resultNumber) . smwfEncodeMessages($errors) . "\n" . $navigation . $pageLister->formatList() . $navigation . "</div>\n"; wfProfileOut(__METHOD__ . ' (SMW)'); return $result; }
/** * Load JS needed to display the VideosModule at the bottom of the article content * @param OutputPage $out * @param string $text * @return bool */ public static function onOutputPageBeforeHTML(OutputPage $out, &$text) { wfProfileIn(__METHOD__); // Check if we're on a page where we want to show the Videos Module. // If we're not, stop right here. if (!self::canShowVideosModule()) { wfProfileOut(__METHOD__); return true; } // On file pages, this hook can be called multiple times, so we're going to check if the // assets are loaded already before we load them again. $app = F::app(); // Don't do anything if we've already loaded the assets if ($app->wg->VideosModuleAssetsLoaded) { wfProfileOut(__METHOD__); return true; } // Don't do anything if this is the main page of a site with the VPT enabled if ($app->wg->Title->isMainPage() && $app->wg->EnableVideoPageToolExt) { wfProfileOut(__METHOD__); return true; } JSMessages::enqueuePackage('VideosModule', JSMessages::EXTERNAL); if ($app->checkSkin('venus')) { Wikia::addAssetsToOutput('videos_module_venus_js'); Wikia::addAssetsToOutput('videos_module_venus_scss'); } else { Wikia::addAssetsToOutput('videos_module_js'); } $app->wg->VideosModuleAssetsLoaded = true; wfProfileOut(__METHOD__); return true; }
/** * Stream a file to the browser, adding all the headings and fun stuff. * Headers sent include: Content-type, Content-Length, Last-Modified, * and Content-Disposition. * * @param string $fname Full name and path of the file to stream * @param array $headers Any additional headers to send * @param bool $sendErrors Send error messages if errors occur (like 404) * @throws MWException * @return bool Success */ public static function stream($fname, $headers = array(), $sendErrors = true) { wfProfileIn(__METHOD__); if (FileBackend::isStoragePath($fname)) { // sanity wfProfileOut(__METHOD__); throw new MWException(__FUNCTION__ . " given storage path '{$fname}'."); } wfSuppressWarnings(); $stat = stat($fname); wfRestoreWarnings(); $res = self::prepareForStream($fname, $stat, $headers, $sendErrors); if ($res == self::NOT_MODIFIED) { $ok = true; // use client cache } elseif ($res == self::READY_STREAM) { wfProfileIn(__METHOD__ . '-send'); $ok = readfile($fname); wfProfileOut(__METHOD__ . '-send'); } else { $ok = false; // failed } wfProfileOut(__METHOD__); return $ok; }
function ActivityFeedTag_render($content, $attributes, $parser, $frame) { global $wgExtensionsPath, $wgEnableAchievementsInActivityFeed, $wgEnableAchievementsExt; if (!class_exists('ActivityFeedHelper')) { return ''; } wfProfileIn(__METHOD__); $parameters = ActivityFeedHelper::parseParameters($attributes); $tagid = str_replace('.', '_', uniqid('activitytag_', true)); //jQuery might have a problem with . in ID $jsParams = "size={$parameters['maxElements']}"; if (!empty($parameters['includeNamespaces'])) { $jsParams .= "&ns={$parameters['includeNamespaces']}"; } if (!empty($parameters['flags'])) { $jsParams .= '&flags=' . implode('|', $parameters['flags']); } $parameters['tagid'] = $tagid; $feedHTML = ActivityFeedHelper::getList($parameters); $style = empty($parameters['style']) ? '' : ' style="' . $parameters['style'] . '"'; $timestamp = wfTimestampNow(); $snippetsDependencies = array('/extensions/wikia/MyHome/ActivityFeedTag.js', '/extensions/wikia/MyHome/ActivityFeedTag.css'); if (!empty($wgEnableAchievementsInActivityFeed) && !empty($wgEnableAchievementsExt)) { array_push($snippetsDependencies, '/extensions/wikia/AchievementsII/css/achievements_sidebar.css'); } $snippets = F::build('JSSnippets')->addToStack($snippetsDependencies, null, 'ActivityFeedTag.initActivityTag', array('tagid' => $tagid, 'jsParams' => $jsParams, 'timestamp' => $timestamp)); wfProfileOut(__METHOD__); return "<div{$style}>{$feedHTML}</div>{$snippets}"; }
public function executeWordmark() { $themeSettings = new ThemeSettings(); $settings = $themeSettings->getSettings(); $this->wordmarkText = $settings['wordmark-text']; $this->wordmarkType = $settings['wordmark-type']; $this->wordmarkSize = $settings['wordmark-font-size']; $this->wordmarkFont = $settings['wordmark-font']; $this->wordmarkFontClass = !empty($settings["wordmark-font"]) ? "font-{$settings['wordmark-font']}" : ''; $this->wordmarkUrl = ''; if ($this->wordmarkType == "graphic") { wfProfileIn(__METHOD__ . 'graphicWordmark'); $this->wordmarkUrl = $themeSettings->getWordmarkUrl(); $imageTitle = Title::newFromText($themeSettings::WordmarkImageName, NS_IMAGE); if ($imageTitle instanceof Title) { $attributes = array(); $file = wfFindFile($imageTitle); if ($file instanceof File) { $attributes[] = 'width="' . $file->width . '"'; $attributes[] = 'height="' . $file->height . '"'; if (!empty($attributes)) { $this->wordmarkStyle = ' ' . implode(' ', $attributes) . ' '; } } } wfProfileOut(__METHOD__ . 'graphicWordmark'); } $this->mainPageURL = Title::newMainPage()->getLocalURL(); }
public static function onArticleSaveComplete($article, $user, $revision, $status) { wfProfileIn(__METHOD__); $insertedImages = Wikia::getVar('imageInserts'); $imageDeletes = Wikia::getVar('imageDeletes'); $changedImages = $imageDeletes; foreach ($insertedImages as $img) { $changedImages[$img['il_to']] = true; } $sendTrackEvent = false; foreach ($changedImages as $imageDBName => $dummy) { $title = Title::newFromDBkey($imageDBName); if (!empty($title)) { $mq = new self($title); $mq->unsetCache(); $sendTrackEvent = true; } } // send track event if embed change if ($sendTrackEvent) { Track::event('embed_change'); } wfProfileOut(__METHOD__); return true; }
public function execute() { global $wgRevisionCacheExpiry, $wgMemc; wfProfileIn(__METHOD__); $cluster = $blobid = null; extract($this->extractRequestParams()); if (empty($blobid)) { $this->dieUsage('Invalid blobid', 1, 404); } if (empty($cluster)) { $this->dieUsage('Invalid cluster', 2, 404); } $url = sprintf("DB://%s/%d", $cluster, $blobid); $text = ExternalStore::fetchFromURL($url); if ($text === false) { $this->dieUsage('Text not found', 3, 404); } $result = $this->getResult(); $result->setRawMode(); $result->disableSizeCheck(); $result->reset(); $result->addValue(null, 'text', $text); $result->addValue(null, 'mime', 'text/plain'); $result->enableSizeCheck(); wfProfileOut(__METHOD__); }
public function getExhibitionItems(Title $title) { wfProfileIn(__METHOD__); if (class_exists('CategoryDataService')) { $cacheKey = $this->getExhibitionItemsCacheKey($title->getText()); $items = $this->wg->memc->get($cacheKey); if (!is_array($items)) { $exh = CategoryDataService::getMostVisited($title->getDBkey(), null, self::EXHIBITION_ITEMS_LIMIT); $ids = array_keys($exh); $length = count($ids); $items = array(); for ($i = 0; $i < $length; $i++) { $pageId = $ids[$i]; $imgRespnse = $this->app->sendRequest('ImageServing', 'index', array('ids' => array($pageId), 'height' => 150, 'width' => 150, 'count' => 1)); $img = $imgRespnse->getVal('result'); if (!empty($img[$pageId])) { $img = $img[$pageId][0]['url']; } else { $img = false; } $oTitle = Title::newFromID($pageId); $items[] = ['img' => $img, 'title' => $oTitle->getText(), 'url' => $oTitle->getFullURL()]; } $this->wg->memc->set($cacheKey, $items, self::CACHE_TTL_EXHIBITION); } wfProfileOut(__METHOD__); return $items; } wfProfileOut(__METHOD__); return false; }
public function getHTML() { wfProfileIn(__METHOD__); $this->report->loadSources(); $aData = array(); $aLabel = array(); if (count($this->report->reportSources) == 0) { return ''; } foreach ($this->report->reportSources as $reportSource) { $reportSource->getData(); $this->actualDate = $reportSource->actualDate; if (!empty($reportSource->dataAll) && !empty($reportSource->dataTitles)) { if (is_array($reportSource->dataAll)) { foreach ($reportSource->dataAll as $key => $val) { if (isset($aData[$key])) { $aData[$key] = array_merge($aData[$key], $val); } else { $aData[$key] = $val; } } } $aLabel += $reportSource->dataTitles; } } sort($aData); $this->sourceData = array_reverse($aData); $this->sourceLabels = array_reverse($aLabel); $oTmpl = F::build('EasyTemplate', array(dirname(__FILE__) . "/templates/")); /** @var $oTmpl EasyTemplate */ $oTmpl->set_vars(array('data' => $this->sourceData, 'labels' => $this->sourceLabels)); wfProfileOut(__METHOD__); $this->beforePrint(); return $oTmpl->render('../../templates/output/' . self::TEMPLATE_MAIN); }
public function buildWhiteList() { wfProfileIn(__METHOD__); $whitelist = array(); $content = wfMsgForContent(self::SPAM_WHITELIST_TITLE); if (wfemptyMsg(self::SPAM_WHITELIST_TITLE, $content)) { wfProfileOut(__METHOD__); return $whitelist; } $content = array_filter(array_map('trim', preg_replace('/#.*$/', '', explode("\n", $content)))); if (!empty($content)) { foreach ($content as $regex) { $regex = str_replace('/', '\\/', preg_replace('|\\\\*/|', '/', $regex)); $regex = "/https?:\\/\\/+[a-z0-9_.-]*{$regex}/i"; wfsuppressWarnings(); $regexValid = preg_match($regex, ''); wfrestoreWarnings(); if ($regexValid === false) { continue; } $whitelist[] = $regex; } } Wikia::log(__METHOD__, __LINE__, count($whitelist) . ' whitelist entries loaded.'); wfProfileOut(__METHOD__); return $whitelist; }