public function __construct() { global $wgCityId; wfProfileIn(__METHOD__); $this->byFounderVarId = WikiFactory::getVarIdByName(self::WDAC_BY_FOUNDER_NAME, $wgCityId); $this->byStaffVarId = WikiFactory::getVarIdByName(self::WDAC_BY_STAFF_NAME, $wgCityId); wfProfileOut(__METHOD__); }
/** * Collect restricted wiki ids */ public static function collectAndSave() { global $wgExternalSharedDB; $dbr = wfGetDB(DB_SLAVE, array(), $wgExternalSharedDB); $res = $dbr->select('city_variables', array('cv_city_id', 'cv_value'), array('cv_variable_id' => WikiFactory::getVarIdByName('wgGroupPermissionsLocal')), __FUNCTION__); $count = $dbr->numRows($res); $restrictedWikis = array(); $i = 0; while ($row = $dbr->fetchRow($res)) { if (self::isRestrictedWiki($row['cv_value'])) { $restrictedWikis[] = (int) $row['cv_city_id']; } if ($i % 1000 == 0) { echo $i . '/' . $count . PHP_EOL; } $i++; } UserProfilePageHelper::saveRestrictedWikisDB($restrictedWikis); }
public function execute() { $wikiFactory = new WikiFactory(); $varId = $wikiFactory->getVarIdByName(self::VAR_TO_SET); if ($varId === false) { throw new ErrorException('No such variable: ' . self::VAR_TO_SET); } $newTopWikiIds = $this->getTopWamWikiIds(self::TOP_NUMBER_OF_WIKIS); $oldTopWikiIds = array_keys($wikiFactory->getListOfWikisWithVar($varId, 'bool', '=', true)); foreach ($newTopWikiIds as $wikiId) { if (array_search($wikiId, $oldTopWikiIds) === false) { $wikiFactory->setVarById($varId, $wikiId, true, __METHOD__); echo '+' . $wikiId . PHP_EOL; } } foreach ($oldTopWikiIds as $wikiId) { if (array_search($wikiId, $newTopWikiIds) === false) { $wikiFactory->removeVarById($varId, $wikiId, __METHOD__); echo '-' . $wikiId . PHP_EOL; } } }
/** * Check if the given upload directory name is available for use. * * @access public * @author Michał Roszka <*****@*****.**> * * @param $sDirectoryName the path to check */ public static function wgUploadDirectoryExists($sDirectoryName) { wfProfileIn(__METHOD__); $iVarId = WikiFactory::getVarIdByName('wgUploadDirectory'); // Crash immediately if $iVarId is not a positive integer! \Wikia\Util\Assert::true($iVarId); $aCityIds = WikiFactory::getCityIDsFromVarValue($iVarId, $sDirectoryName, '='); wfProfileOut(__METHOD__); return !empty($aCityIds); }
protected function getIdsBlacklistedWikis() { $blacklistIds = WikiaDataAccess::cache(wfSharedMemcKey('wam_blacklist', self::MEMCACHE_VER), self::CACHE_DURATION, function () { $contentWarningWikis = $excludedWikis = []; // Exlude wikias with ContentWarning extension enabled $blacklistExtVarId = WikiFactory::getVarIdByName(self::WAM_BLACKLIST_EXT_VAR_NAME); if ($blacklistExtVarId) { $contentWarningWikis = array_keys(WikiFactory::getListOfWikisWithVar($blacklistExtVarId, 'bool', '=', true)); } // Exclude wikias with an exclusion flag set to true $blacklistFlagVarId = WikiFactory::getVarIdByName(self::WAM_EXCLUDE_FLAG_NAME); if ($blacklistFlagVarId) { $excludedWikis = array_keys(WikiFactory::getListOfWikisWithVar($blacklistFlagVarId, 'bool', '=', true)); } return array_merge($contentWarningWikis, $excludedWikis); }); return $blacklistIds; }
function fixBGImage($id, $themeSettingsArray) { $themeSettingsArray['background-image'] = ''; WikiFactory::setVarByName('wgOasisThemeSettings', $id, $themeSettingsArray); WikiFactory::clearCache($id); } function getBrokenThemeSettings($id) { $themeSettings = WikiFactory::getVarByName('wgOasisThemeSettings', $id); if (!is_object($themeSettings) || empty($themeSettings->cv_value)) { return null; } $themeSettingsArray = unserialize($themeSettings->cv_value); $backgroundImage = $themeSettingsArray['background-image']; return getType($backgroundImage) !== 'string' || $backgroundImage === 'false' ? $themeSettingsArray : null; } $varid = WikiFactory::getVarIdByName('wgOasisThemeSettings', true); $dbr = wfGetDB(DB_MASTER, array(), $wgExternalSharedDB); $oRes = $dbr->select('city_list', 'city_id'); while ($oRow = $dbr->fetchObject($oRes)) { $themeSettingsArray = getBrokenThemeSettings($oRow->city_id); if (!is_null($themeSettingsArray)) { // IMPORTANT! Uncomment line below if you really want it to work. //fixBGImage( $oRow->city_id, $themeSettingsArray ); echo "Fixed Background Image for {$oRow->city_id}\n"; } else { echo "Did not fix background image because it was okay\n"; } echo "########################################\n"; } $dbr->freeResult($oRes);
* @author: Inez * * Get familiar with "How_to_run_maintenance_script" article on internal to figure out how to run it. */ ini_set("include_path", dirname(__FILE__) . "/../"); require_once "commandLine.inc"; function enableVEUI($id) { WikiFactory::setVarByName('wgEnableVisualEditorUI', $id, true); WikiFactory::clearCache($id); } function isVEenabled($id) { $out = WikiFactory::getVarByName('wgEnableVisualEditorExt', $id); return $out ? unserialize($out->cv_value) : false; } $varid = WikiFactory::getVarIdByName('wgEnableVisualEditorExt', true); $list = WikiFactory::getListOfWikisWithVar($varid, 'bool', '=', true); foreach ($list as $id => $val) { echo "Wiki id: {$id}\n"; $isVEenabled = isVEenabled($id); if ($isVEenabled) { // IMPORTANT! Uncomment line below if you really want it to work. //enableVEUI( $id ); echo "Enabled VEUI\n"; } else { echo "Not enabled VEUI because VE not enabled\n"; } echo "########################################\n"; } WikiFactory::clearInterwikiCache();
/** * @desc Gets id of wgEnableWikiaHomePageExt variable and then loads and returns list of corporate sites * @return array */ protected function getCorporateSitesList() { return WikiaDataAccess::cache(wfSharedMemcKey('corporate_pages_list', self::CITY_VISUALIZATION_CORPORATE_PAGE_LIST_MEMC_VERSION), WikiaResponse::CACHE_STANDARD, function () { // loads list of corporate sites (sites which have $wgEnableWikiaHomePageExt WF variable set to true) $wikiFactoryVarId = WikiFactory::getVarIdByName(self::WIKIA_HOME_PAGE_WF_VAR_NAME); if (is_int($wikiFactoryVarId)) { return WikiFactory::getListOfWikisWithVar($wikiFactoryVarId, 'bool', '=', true); } else { return []; } }); }
public function getWikisIncludedInCorporateFooterDropdown() { $wikiFactoryList = []; $varId = WikiFactory::getVarIdByName(self::IS_WIKI_INCLUDED_IN_CORPORATE_FOOTER_DROPDOWN_VAR_NAME); if (is_int($varId)) { $wikiFactoryList = WikiaDataAccess::cache(wfMemcKey('wikis_included_in_corporate_footer_dropdown', self::WIKIA_HOME_PAGE_HELPER_MEMC_VERSION), 24 * 60 * 60, function () use($varId) { $list = WikiFactory::getListOfWikisWithVar($varId, 'bool', '=', true); return $this->cleanWikisDataArray($list); }, WikiaDataAccess::REFRESH_CACHE); } return $wikiFactoryList; }
protected function isValidCity($cityId) { return WikiaDataAccess::cache('hubsapi_is_valid_cityid_' . $cityId, 6 * 60 * 60, function () use($cityId) { $varId = WikiFactory::getVarIdByName(self::HUBS_V3_VARIABLE_NAME); $varData = WikiFactory::getVarById($varId, $cityId); return !empty($varData) && !empty($varData->cv_value) && unserialize($varData->cv_value); }); }