本文整理汇总了PHP中Language::findByCode方法的典型用法代码示例。如果您正苦于以下问题:PHP Language::findByCode方法的具体用法?PHP Language::findByCode怎么用?PHP Language::findByCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Language
的用法示例。
在下文中一共展示了Language::findByCode方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: init
/**
*
*/
public function init()
{
parent::init();
// On règle le langage de l'application selon les indications du navigateur
/** @var \myWebUser $webUser */
$webUser = \Yii::app()->user;
if (!($code = $webUser->getLanguageCode())) {
$code = \Yii::app()->request->preferredLanguage;
}
if (!($preferredLanguage = \Language::findByCode($code))) {
$preferredLanguage = \Language::findByCode(\Yii::app()->language);
}
$webUser->setLanguageCode($preferredLanguage->code);
// On actualise le langage de l'application car c'est cette variable de configuration qui est lue
// par Yii::t()
\Yii::app()->language = $preferredLanguage->code;
// Chargement de la liste des langues disponibles
/** @noinspection PhpUndefinedMethodInspection */
$this->languages = \Language::model()->enabled()->alpha()->findAll();
}
示例2: index
/**
* Page de liste des actualités, en frontend
* @test
*/
public function index()
{
$this->open('news/news');
$this->checkFrontendSharedElements();
$displayedNews = $this->getCssCount('css=.news');
// Le moteur de recherche est bien affiché
$this->assertElementPresent('id=NewsSearchForm_tagsString');
// On cherche les news ayant un tag contenant 'ph' :
// 'php' doit sortir mais pas 'php english' à cause de la langue active
$this->type('NewsSearchForm_tagsString', 'ph');
$this->clickAndWait('NewsSearchForm_submit');
$query = "SELECT count(trans.id) FROM translated_news trans\n\t\t\tINNER JOIN translated_news_has_tag tht ON tht.translated_news_id = trans.id\n\t\t\tINNER JOIN tag ON tht.tag_id = tag.id\n\t\t\tWHERE tag.name LIKE '%ph%' AND trans.language_id = " . Language::findByCode(Yii::app()->language)->id;
$count = Yii::app()->db->createCommand($query)->queryScalar();
$this->assertEquals($count, $this->getCssCount('css=.news'));
// ... et son bouton 'effacer' le ré-initialise correctement
$this->clickAndWait('NewsSearchForm_reset');
$this->assertEquals($displayedNews, $this->getCssCount('css=.news'));
// Les boutons tags sont présents et fonctionnels
$this->assertElementPresent("//button[contains(@onclick, 'slug=php')]");
$this->clickAndWait("//button[contains(@onclick, 'slug=php')][1]");
$this->assertEquals($count, $this->getCssCount('css=.news'));
}
示例3: actionAdmin
/**
* Manages all models.
*/
public function actionAdmin()
{
$session = $this->setAdminGridViewSessionVariables('TranslatedNews');
$model = new TranslatedNews('search');
$model->unsetAttributes();
// clear any default values
$model->attributes = $session->get('admin_current_filter');
$activeLanguage = Language::findByCode(Yii::app()->language);
$model->language_id = $activeLanguage->id;
$pager = new CPagination();
/** @var NewsModule $newsModule */
$newsModule = Yii::app()->getModule('news');
$pager->pageSize = $newsModule->adminPageSize;
if ($page = $session->get('admin_current_page')) {
$pager->currentPage = $page - 1;
// la numérotation commence à 0...
}
$this->render('admin', array('model' => $model, 'pager' => $pager, 'availableTags' => Tag::model()->findAllByAttributes(array('language_id' => $activeLanguage->id))));
}
示例4: getTranslation
/**
* Renvoie le contenu traduit de la news.
* Le langage demandé est celui de code $languageCode, qui est par défaut le langage de l'utilisateur.
* Si celui-ci n'existe pas ou si la news n'est pas traduite dans ce langage, on cherche la version
* dans le langage par défaut paramétré pour le module.
* @param null $languageCode
* @return null|TranslatedNews
* @internal Mise en cache du langage par défaut pour limiter les accès à la base de données
*/
public function getTranslation($languageCode = null)
{
// Si on cherche la traduction par défaut et qu'elle a déjà été calculée, on ne recommence pas les traitements
if (!$languageCode && $this->activeTranslation) {
return $this->activeTranslation;
}
// On cherche le texte associé au langage de code $languageCode. Par défaut ce sera le langage de l'utilisateur
if (!$languageCode) {
$languageCode = Yii::app()->language;
}
if ($language = Language::findByCode($languageCode)) {
/** @var $tl TranslatedNews */
foreach ($this->translatedNews as $tl) {
if ($tl->language_id == $language->id) {
$this->activeTranslation = $tl;
break;
}
}
}
// Si la news n'est pas traduite dans le langage demandé, on la cherche dans le langage par défaut
if (!$this->activeTranslation && $languageCode != Yii::app()->modules['admin']['defaultAppLanguage']) {
$this->activeTranslation = $this->getTranslation(Yii::app()->modules['admin']['defaultAppLanguage']);
}
// Si on n'a toujours rien trouvé, on renvoie la première traduction disponible
if (!$this->activeTranslation && $this->translatedNews) {
$this->activeTranslation = count($this->translatedNews) ? $this->translatedNews[0] : 0;
}
return $this->activeTranslation;
}
示例5: getTextByName
/**
* Renvoie le texte de nom $name. Renvoie null si la page ne contient aucun texte de ce nom.
* @param string $name Code d'identification de ce texte pour la page courante $this
* @param string $languageCode Si cet argument vaut null, on utilise le langage renseigné pour l'application
* @param boolean $defaultText
* @return WebText|null
*/
public function getTextByName($name, $languageCode = null, $defaultText = true)
{
// On cherche le texte associé au langage de code $languageCode
// Par défaut ce sera le langage de l'utilisateur
if (!$languageCode && !($languageCode = Yii::app()->language)) {
$languageCode = Yii::app()->language;
}
$language = Language::findByCode($languageCode);
$text = WebText::model()->findByAttributes(array('name' => $name, 'language_id' => $language->id, 'web_page_id' => $this->id));
if (!$text && $languageCode != 'fr') {
// Si le texte n'existe pas dans le langage demandé, on le récupère en français
$language = Language::model()->findByCode('fr');
$text = WebText::model()->findByAttributes(array('name' => $name, 'language_id' => $language->id, 'web_page_id' => $this->id));
}
if (!$text && $defaultText) {
$text = WebText::defaultObject();
}
return $text;
}
示例6: scopes
/**
* @return array
*/
public function scopes()
{
return array('defaultOrder' => array('order' => 'news.event_date DESC, t.id DESC'), 'enabled' => array('condition' => 'news.enabled = 1'), 'activeLanguage' => array('condition' => 'language_id = ' . Language::findByCode(Yii::app()->language)->id));
}
示例7: set_Language_entity
public function set_Language_entity($code, $entityname, $errormessage, $controller, $action, $mode)
{
if ($mode == 'create') {
$entity = new $entityname();
} else {
$entity = Language::findByCode($code)->getFirst();
if ($mode = 'edit' and !$entity) {
return $this->dispatcher->forward(array("controller" => "Error", "action" => "error404"));
} else {
if (!$entity) {
$this->flash->error($errormessage);
return $this->dispatcher->forward(array("controller" => $controller, "action" => $action));
}
}
}
return $entity;
}
示例8: getLanguage
/**
* @return null|Language
*/
public function getLanguage()
{
return Language::findByCode($this->getLanguageCode());
}