/** * @see \wcf\system\cache\builder\AbstractCacheBuilder::rebuild() */ public function rebuild(array $parameters) { $data = array('codes' => array(), 'countryCodes' => array(), 'languages' => array(), 'default' => 0, 'categories' => array(), 'categoryIDs' => array(), 'multilingualismEnabled' => false); // get languages $languageList = new LanguageList(); $languageList->readObjects(); $data['languages'] = $languageList->getObjects(); foreach ($languageList->getObjects() as $language) { // default language if ($language->isDefault) { $data['default'] = $language->languageID; } // multilingualism if ($language->hasContent) { $data['multilingualismEnabled'] = true; } // language code to language id $data['codes'][$language->languageCode] = $language->languageID; // country code to language id $data['countryCode'][$language->languageID] = $language->countryCode; } DatabaseObject::sort($data['languages'], 'languageName'); // get language categories $languageCategoryList = new LanguageCategoryList(); $languageCategoryList->readObjects(); foreach ($languageCategoryList->getObjects() as $languageCategory) { $data['categories'][$languageCategory->languageCategory] = $languageCategory; $data['categoryIDs'][$languageCategory->languageCategoryID] = $languageCategory->languageCategory; } return $data; }
/** * Returns all available content languages for given package. * * @param integer $packageID * @return array<wcf\data\language\Language> */ public function getContentLanguages($packageID = PACKAGE_ID) { $availableLanguages = array(); if (isset($this->cache['packages'][$packageID])) { foreach ($this->cache['packages'][$packageID] as $availableLanguageID) { if ($this->cache['languages'][$availableLanguageID]->hasContent) { $availableLanguages[$availableLanguageID] = $this->getLanguage($availableLanguageID); } } } DatabaseObject::sort($availableLanguages, 'languageName'); return $availableLanguages; }