/** * Get all the available languages for backoffice use (no module specified) or for a module backoffice. * Static function. * * @param string $module The codename of a module we want the languages of. * @param string $orderBy The ordering key to use (default : label_lng) * @return array(CMS_language) The available languages sorted by label * @access public */ static function getAllLanguages($module = false, $orderBy = "label_lng") { static $languagesCatalog; if (isset($languagesCatalog[$module ? $module : 'all'])) { return $languagesCatalog[$module ? $module : 'all']; } $sql = "\n\t\t\tselect\n\t\t\t\tcode_lng\n\t\t\tfrom\n\t\t\t\tlanguages\n\t\t"; if (!$module && $module != 'all') { $sql .= 'where availableForBackoffice_lng=1'; } if ($orderBy) { $sql .= ' order by ' . $orderBy . ' '; } $q = new CMS_query($sql); $languages = array(); while ($code = $q->getValue("code_lng")) { $lng = new CMS_language($code); if (!$lng->hasError() && (!$module || !in_array($module, $lng->getModulesDenied()))) { $languages[$code] = $lng; } } $languagesCatalog[$module ? $module : 'all'] = $languages; return $languages; }
/** * Set language * * @param CMS_language $language * @return boolean * @access public */ function setLanguage($language) { // Check if CMS_contactData object if (is_a($language, "CMS_language") && !$language->hasError()) { $this->_language = $language; return true; } else { $language = new CMS_language($language); if ($language && !$language->hasError()) { $this->_language = $language; return true; } } $this->raiseError("Object required, or available language code : " . $language); return false; }