/**
  * @return Gpf_Db_Table_Languages
  */
 public static function getInstance()
 {
     if (self::$instance === null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 public static function getDefaultSystemLanguage()
 {
     try {
         $defaultLanguage = Gpf_Db_Table_Languages::getInstance()->getDefaultLanguage();
         $langCode = $defaultLanguage->getCode();
         if ($langCode != null) {
             return $langCode;
         }
     } catch (Exception $e) {
     }
     return Gpf_Application::getInstance()->getDefaultLanguage();
 }
 /**
  * Get recordset of active languages in this account
  *
  * @return Gpf_Data_IndexedRecordSet
  */
 public function getActiveLanguagesNoRpc()
 {
     $sql = new Gpf_SqlBuilder_SelectBuilder();
     $sql->select->add(Gpf_Db_Table_Languages::CODE);
     $sql->select->add(Gpf_Db_Table_Languages::ENGLISH_NAME);
     $sql->select->add(Gpf_Db_Table_Languages::NAME);
     $sql->select->add(Gpf_Db_Table_Languages::IS_DEFAULT);
     $sql->from->add(Gpf_Db_Table_Languages::getName());
     $sql->where->add(Gpf_Db_Table_Accounts::ID, '=', Gpf_Application::getInstance()->getAccountId());
     $sql->where->add(Gpf_Db_Table_Languages::ACTIVE, '=', Gpf::YES);
     $sql->orderBy->add(Gpf_Db_Table_Languages::NAME);
     return $sql->getAllRowsIndexedBy(Gpf_Db_Table_Languages::CODE);
 }
 /**
  * Set language as default and unset another default language
  *
  * @service language write
  * @param Gpf_Rpc_Params $params
  * @return Gpf_Rpc_Action
  */
 public function setLanguageAsDefault(Gpf_Rpc_Params $params)
 {
     $action = new Gpf_Rpc_Action($params);
     try {
         Gpf_Db_Table_Languages::getInstance()->unsetDefaultLanguage($action->getParam(Gpf_Db_Table_Languages::ID));
         $lang = new Gpf_Db_Language();
         $lang->setId($action->getParam(Gpf_Db_Table_Languages::ID));
         $lang->load();
         $lang->setIsDefault(true);
         $lang->save();
     } catch (Exception $e) {
         $action->addError();
         $action->setErrorMessage($this->_('Failed to set default language with error: %s', $e->getMessage()));
         return $action;
     }
     $action->setInfoMessage($this->_('Language %s set as default.', $lang->getEnglishName()));
     $action->addOk();
     return $action;
 }
Beispiel #5
0
 private function checkIsDefaultStatus()
 {
     if (!$this->isActive() && $this->isDefault()) {
         throw new Gpf_Exception($this->_('Default language has to be active !'));
     }
     try {
         $defLang = Gpf_Db_Table_Languages::getInstance()->getDefaultLanguage();
         if (($this->getCode() == $defLang->getCode() || !strlen($defLang->getCode())) && $this->isDefault() === false) {
             $this->setIsDefault(true);
         }
     } catch (Gpf_DbEngine_NoRowException $e) {
         $this->setIsDefault(true);
     }
     if ($this->isDefault()) {
         Gpf_Db_Table_Languages::getInstance()->unsetDefaultLanguage($this->getId());
     }
 }