/**
     * 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;
    }
Beispiel #2
0
 /**
  * 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;
 }