Ejemplo n.º 1
0
 /**
  * @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;
 }
Ejemplo n.º 2
0
 /**
  * @see wcf\system\cache\ICacheBuilder::getData()
  */
 public function getData(array $cacheResource)
 {
     $data = array('codes' => array(), 'countryCodes' => array(), 'languages' => array(), 'packages' => array(), 'default' => 0, 'categories' => array());
     // get language to packages
     $sql = "SELECT \t\tpackage.languageID, package.packageID\n\t\t\tFROM\t\twcf" . WCF_N . "_language_to_package package\n\t\t\tLEFT JOIN\twcf" . WCF_N . "_language language\n\t\t\tON\t\t(language.languageID = package.languageID)\n\t\t\tORDER BY\tlanguage.isDefault DESC,\n\t\t\t\t\tlanguage.languageCode ASC";
     $statement = WCF::getDB()->prepareStatement($sql);
     $statement->execute();
     while ($row = $statement->fetchArray()) {
         // package to languages
         if (!isset($data['packages'][$row['packageID']])) {
             $data['packages'][$row['packageID']] = array();
         }
         $data['packages'][$row['packageID']][] = $row['languageID'];
     }
     // get languages
     $languageList = new LanguageList();
     $languageList->sqlLimit = 0;
     $languageList->readObjects();
     $data['languages'] = $languageList->getObjects();
     foreach ($languageList->getObjects() as $language) {
         // default language
         if ($language->isDefault) {
             $data['default'] = $language->languageID;
         }
         // language code to language id
         $data['codes'][$language->languageCode] = $language->languageID;
         // country code to language id
         $data['countryCode'][$language->languageID] = $language->countryCode;
     }
     // get language categories
     $languageCategoryList = new LanguageCategoryList();
     $languageCategoryList->sqlLimit = 0;
     $languageCategoryList->readObjects();
     foreach ($languageCategoryList->getObjects() as $languageCategory) {
         $data['categories'][$languageCategory->languageCategory] = $languageCategory;
     }
     return $data;
 }