/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function searchNews($params) { $lang = Lang::getCurrent(); switch ($lang->local) { case Lang::LANG_EN: $category_id = self::NEWS_CATEGORY_EN; break; case Lang::LANG_RU: default: $category_id = self::NEWS_CATEGORY; break; } $query = Page::find()->joinWith('user'); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]], 'pagination' => ['pageSize' => Yii::$app->params['items-per-page'], 'pageSizeParam' => false]]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'category_id' => $category_id, 'published' => 1, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); /* $query->andFilterWhere(['like', 'name', $this->name]) ->andFilterWhere(['like', 'intro', $this->intro]) ->andFilterWhere(['like', 'text', $this->text]) ->andFilterWhere(['like', 'meta_title', $this->meta_title]) ->andFilterWhere(['like', 'meta_keywords', $this->meta_keywords]) ->andFilterWhere(['like', 'meta_descr', $this->meta_descr]); */ return $dataProvider; }
/** * @inherited */ public function hasTranslation($language = null) { if ($language === null) { $language = Lang::getCurrent()->id; } return parent::hasTranslation($language); }
/** * [createUrl description] * @param [type] $params [description] * @return [type] [description] */ public function createUrl($params) { $defaultLang = Lang::getDefaultLang(); if (isset($params[1]) && isset($params[1]['lang_id'])) { // Если указан идентификатор языка, то делаем попытку найти язык в БД, иначе работаем с языком по умолчанию. $lang = Lang::findOne(['url' => $params[1]['lang_id']]); if ($lang === null) { $lang = $defaultLang; } unset($params[1]['lang_id']); } else { // Если не указан параметр языка, то работаем с текущим языком. $lang = Lang::getCurrent(); } // Получаем сформированный URL(без префикса идентификатора языка). $url = parent::createUrl($params); if ($lang->url == $defaultLang->url) { return $url; } // Добавляем к URL префикс - буквенный идентификатор языка. if ($url == '/') { return '/' . $lang->url; } else { return '/' . $lang->url . $url; } }
public function getLangUrl() { if ($this->_lang_url === null) { $this->_lang_url = $this->getUrl(); $url_list = explode('/', $this->_lang_url); $lang_url = isset($url_list[1]) ? $url_list[1] : null; Lang::setCurrent($lang_url); if ($lang_url !== null && $lang_url === Lang::getCurrent()->code && strpos($this->_lang_url, Lang::getCurrent()->code) === 1) { $this->_lang_url = substr($this->_lang_url, strlen(Lang::getCurrent()->code) + 1); } } return $this->_lang_url; }
public function getDescrField() { $lang = Lang::getCurrent(); switch ($lang->local) { case 'en-EN': $field = 'descr_en'; break; case 'ru-RU': default: $field = 'descr_ru'; break; } return $field; }
/** * @return mixed|string */ public function getLangUrl() { if ($this->_lang_url === null) { $this->_lang_url = $this->getUrl(); preg_match('#^' . $this->baseUrl . '\\/([^\\/]*).*#', $this->_lang_url, $lang_list); $lang_url = array_key_exists(1, $lang_list) ? $lang_list[1] : null; Lang::setCurrent($lang_url); if ($lang_url !== null && $lang_url === Lang::getCurrent()->url) { $search = $lang_list[0] === $this->baseUrl . '/' . $lang_url ? '/' . $lang_url : '/' . $lang_url . '/'; $this->_lang_url = str_replace($search, '/', $this->_lang_url); } } return $this->_lang_url; }
public function getName() { $currentLang = Lang::getCurrent(); switch ($currentLang->name) { case 'EN': $res = $this->name_GB; break; case 'RU': default: $res = $this->name_RU; break; } return $res; }
public function run() { $lang = Lang::getCurrent(); switch ($lang->local) { case 'en-EN': $info_block_id = 6; break; case 'ru-RU': default: $info_block_id = 5; break; } $info_block = InfoBlock::getInfo($info_block_id); return $this->render('about', ['info_block' => $info_block]); }
/** * Lists all Page models. * @return mixed */ public function actionIndex() { // /echo 'index';die; $searchModel = new PageSearch(); //$dataProvider = $searchModel->searchNews(Yii::$app->request->queryParams); $dataProvider = $searchModel->searchNews(Yii::$app->request->queryParams); $lang = Lang::getCurrent(); switch ($lang->local) { case Lang::LANG_EN: $meta_key = 'news-list-en'; break; case Lang::LANG_RU: default: $meta_key = 'news-list-ru'; break; } $meta_info = MetaInfo::getMetaInfo($meta_key); return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'meta_info' => $meta_info]); }
/** * [getLangUrl description] * @return [type] [description] */ public function getLangUrl() { if ($this->_lang_url === null) { $defaultLang = Lang::getDefaultLang(); $this->_lang_url = $this->getUrl(); $url_list = explode('/', $this->_lang_url); $lang_url = isset($url_list[1]) ? $url_list[1] : null; Lang::setCurrent($lang_url); if ($lang_url !== null && $lang_url === Lang::getCurrent()->url && strpos($this->_lang_url, Lang::getCurrent()->url) === 1) { $this->_lang_url = substr($this->_lang_url, strlen(Lang::getCurrent()->url) + 1); } // Если язык в адресе соотвествует дефолтному то редиректим на урл без языка. if ($defaultLang->url == $lang_url) { if ($this->_lang_url) { $url = $this->_lang_url; } else { $url = '/'; } return Yii::$app->getResponse()->redirect($url, 301); } } return $this->_lang_url; }
public function createUrl($params) { if (is_array($params) && array_key_exists('lang_id', $params)) { //isset($params['lang_id']) $lang = Lang::findOne($params['lang_id']); if ($lang === null) { $lang = Lang::getDefaultLang(); } unset($params['lang_id']); } else { $lang = Lang::getCurrent(); } $url = parent::createUrl($params); $baseUrl = $this->showScriptName || !$this->enablePrettyUrl ? $this->getScriptUrl() : $this->getBaseUrl(); if ($url !== '/') { if ($baseUrl === '') { return '/' . $lang->url . $url; } else { return str_replace($baseUrl, "{$baseUrl}/{$lang->url}", $url); } } else { return '/' . $lang->url; } }
public function run() { return $this->render('lang/view', ['current' => Lang::getCurrent(), 'langs' => Lang::find()->where('id != :current_id', [':current_id' => Lang::getCurrent()->id])->all()]); }
public function actionSend() { $data = Yii::$app->request->post(); if (!empty($data['Parse']['id'])) { $parse = Parse::findOne($data['Parse']['id']); } else { return false; } if (!empty($data['Sale']['id'])) { $sale = Sale::findOne($data['Sale']['id']); $content = $sale->content; } if (empty($sale)) { $sale = new Sale(); $sale->user_id = @$data['Sale']['user_id']; } if (empty($content)) { $content = new SaleLang(); $content->lang_id = Lang::getCurrent()->id; $content->id = 0; } if ($sale->load($data) && $content->load($data) && $sale->validate() && $content->validate()) { $sale->save(false); if (!$content->id) { for ($i = 1; $i <= Lang::find()->count(); $i++) { $model_content[$i] = new SaleLang(); $model_content[$i]['lang_id'] = $i; $model_content[$i]['id'] = $sale->id; $model_content[$i]['description'] = $content->description; $model_content[$i]['name'] = $content->name; $model_content[$i]->save(false); } $parse->sale_id = $sale->id; $parse->save(); } else { $content->save(false); } return true; } else { Yii::trace(print_r($sale->errors, true)); Yii::trace(print_r($content->errors, true)); return false; } }
<div class="sub-menu"> <div class="main-mob-menu"></div> <div class="clr"></div> </div><!--sub-menu--> <?php //echo Banners::widget(['position'=>1]) ?> <div class="mid-line"> <div class="col logo"> <a href="<?php echo Url::to(['site/index', 'lang_id' => Lang::getCurrent()->id]); ?> "> <img src="/images/logo-n.png" alt="Название организации" /> </a> </div> <div class="col registration"> <?php if (\Yii::$app->user->isGuest) { ?> <a href="<?php echo Url::to(['site/signup']); ?> " title="<?php echo Yii::t('app', 'LoginForm_reg_and_win'); ?>
<?php use backend\components\SetColumn; use common\models\District; use common\models\Lang; use common\models\Region; use common\models\Sale; use yii\helpers\Html; use yii\grid\GridView; use yii\helpers\Url; /* @var $this yii\web\View */ /* @var $searchModel common\models\SaleSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = Yii::t('app', 'Sales'); $this->params['breadcrumbs'][] = $this->title; ?> <div class="box"> <div class="box-body table-responsive"> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['attribute' => 'code', 'headerOptions' => ['width' => '100']], ['class' => SetColumn::className(), 'attribute' => 'name', 'name' => 'name', 'value' => 'content.name'], ['class' => SetColumn::className(), 'attribute' => 'region_id', 'filter' => Region::getList(), 'name' => 'region.content.name'], ['class' => SetColumn::className(), 'attribute' => 'district_id', 'filter' => District::getListAll(), 'name' => 'district.content.name'], 'address', ['attribute' => 'created_at', 'format' => ['date', 'dd.MM.Y'], 'options' => ['width' => '80']], ['class' => SetColumn::className(), 'attribute' => 'top', 'filter' => Sale::getTopList(), 'name' => 'topName', 'cssClasses' => [Sale::TOP_DISABLED => 'default', Sale::TOP_ENABLED => 'success']], ['class' => SetColumn::className(), 'attribute' => 'status', 'filter' => Sale::getStatusList(), 'name' => 'statusName', 'cssClasses' => [Sale::STATUS_HIDE => 'default', Sale::STATUS_ACTIVE => 'success', Sale::STATUS_AWAITING => 'warning']], ['class' => SetColumn::className(), 'attribute' => 'sold', 'filter' => Sale::getSoldList(), 'name' => 'soldName', 'cssClasses' => [Sale::SOLD_ACTUAL => 'success', Sale::SOLD_US => 'default', Sale::SOLD_OTHER => 'default']], ['class' => 'yii\\grid\\ActionColumn', 'headerOptions' => ['width' => '70'], 'template' => '{link} {update} {delete}', 'buttons' => ['link' => function ($url, $model, $key) { return Html::a('<span class="fa fa-eye"></span>', Url::to(Yii::$app->params['http'] . '/' . Lang::getCurrent()->code . '/sale/' . $model->id), ['target' => '_blank']); }]]]]); ?> </div> <div class="box-footer"> <?php echo Html::a(Yii::t('app', 'Create'), ['create'], ['class' => 'btn btn-success']); ?> </div> </div>
/** * возвращает последние новости в зависимости от языка на сайте * * @return array */ public static function getLastNews() { $lang = Lang::getCurrent(); switch ($lang->local) { case 'en-EN': $category_id = self::NEWS_CATEGORY_EN; break; case 'ru-RU': default: $category_id = self::NEWS_CATEGORY; break; } $sql = 'SELECT p.`id`, p.`name`, p.`alias`, p.`intro`, p.`image`, p.`created_by`, p.`created_at`, u.`nickname` FROM ' . self::tableName() . ' AS p INNER JOIN {{%user}} AS u ON p.`created_by` = u.`id` WHERE `category_id` = :category_id AND `published` = 1 ORDER BY `id` DESC LIMIT 0,3'; $params = [':category_id' => $category_id]; return Yii::$app->db->createCommand($sql)->bindValues($params)->queryAll(); }
public function getContent($lang_id = null) { $lang_id = $lang_id === null ? Lang::getCurrent()->id : $lang_id; return $this->hasOne(SaleLang::className(), ['id' => 'id'])->where('lang_id = :lang_id', [':lang_id' => $lang_id]); }
public function getContent($language = null) { $language = $language === null ? Lang::getCurrent()->code : $language; return $this->hasOne(Message::className(), ['id' => 'id'])->where('language = :language', [':language' => $language]); }