2 namespace wcf\system\cache\builder
;
3 use wcf\data\language\category\LanguageCategoryList
;
4 use wcf\data\language\LanguageList
;
5 use wcf\data\DatabaseObject
;
9 * Caches languages and the id of the default language.
12 * @copyright 2001-2013 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 * @package com.woltlab.wcf
15 * @subpackage system.cache.builder
16 * @category Community Framework
18 class LanguageCacheBuilder
extends AbstractCacheBuilder
{
20 * @see wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
22 public function rebuild(array $parameters) {
25 'countryCodes' => array(),
26 'languages' => array(),
28 'categories' => array(),
29 'categoryIDs' => array()
33 $languageList = new LanguageList();
34 $languageList->readObjects();
35 $data['languages'] = $languageList->getObjects();
36 foreach ($languageList->getObjects() as $language) {
38 if ($language->isDefault
) {
39 $data['default'] = $language->languageID
;
42 // language code to language id
43 $data['codes'][$language->languageCode
] = $language->languageID
;
45 // country code to language id
46 $data['countryCode'][$language->languageID
] = $language->countryCode
;
49 DatabaseObject
::sort($data['languages'], 'languageName');
51 // get language categories
52 $languageCategoryList = new LanguageCategoryList();
53 $languageCategoryList->readObjects();
54 foreach ($languageCategoryList->getObjects() as $languageCategory) {
55 $data['categories'][$languageCategory->languageCategory
] = $languageCategory;
56 $data['categoryIDs'][$languageCategory->languageCategoryID
] = $languageCategory->languageCategory
;