/** * @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; }
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()); } }