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;
         }
     }
 }
Example #4
0
 /**
  * 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);
 }
Example #5
0
 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);
     });
 }