Esempio n. 1
0
 protected function resolveRequestUri()
 {
     $requestUri = parent::resolveRequestUri();
     $baseUrl = $this->getBaseUrl();
     if ($baseUrl) {
         $requestUri = substr($requestUri, strlen($baseUrl));
     }
     $requestUriToList = explode('/', $requestUri);
     $lang_url = isset($requestUriToList[1]) ? $requestUriToList[1] : null;
     Languages::setCurrent($lang_url);
     if ($lang_url !== null && $lang_url === Languages::getCurrent()->url && strpos($requestUri, Languages::getCurrent()->url) === 1) {
         $requestUri = ($baseUrl ? $baseUrl : '') . substr($requestUri, strlen(Languages::getCurrent()->url) + 1);
     }
     return $requestUri;
 }
Esempio n. 2
0
 public function actionSettings()
 {
     $languages = Languages::find()->select(['url', 'name'])->all();
     $model = new SettingsForm();
     $model->frontend_default_language = Languages::getDefaultLanguage()->url;
     $model->setAttributes(ArrayHelper::map(Settings::find()->all(), 'name', 'value'));
     if ($model->load(Yii::$app->request->post()) && $model->validate()) {
         foreach ($model->attributes as $key => $value) {
             Settings::updateAll(['value' => (string) $value], '`name` = :key', [':key' => $key]);
         }
         Languages::setDefaultLanguage($model->frontend_default_language);
         Yii::$app->getSession()->setFlash('success', Yii::t('main', 'Settings successfully saved'));
     }
     return $this->render('settings', ['model' => $model, 'languages' => $languages]);
 }
 /**
  * Resolve application language by checking user cookies, preferred language and profile settings
  */
 public function beforeRequest()
 {
     if (Yii::$app->getRequest()->getCookies()->has($this->cookieName) && !Yii::$app->session->hasFlash('forceUpdateLocale')) {
         $userLocale = Yii::$app->getRequest()->getCookies()->getValue($this->cookieName);
     } else {
         $userLocale = Yii::$app->language;
         if (!Yii::$app->user->isGuest && Yii::$app->user->identity->userProfile->locale && array_key_exists(Yii::$app->user->identity->userProfile->locale, Languages::getLanguages())) {
             $userLocale = Yii::$app->user->getIdentity()->userProfile->locale;
         } elseif ($this->enablePreferredLanguage) {
             $userLocale = Languages::getDefault();
         }
     }
     if (Yii::$app->getRequest()->get('lang_locale')) {
         $userLocale = Yii::$app->getRequest()->get('lang_locale');
     }
     Yii::$app->language = $userLocale;
 }
Esempio n. 4
0
 public function createUrl($params)
 {
     \Yii::info(\Yii::$app->language);
     $lang = Languages::getLanguageByUrl(\Yii::$app->language);
     // Get basic URL (without language prefix)
     $url = parent::createUrl($params);
     $baseUrl = $this->getBaseUrl();
     if ($baseUrl) {
         $url = substr($url, strlen($baseUrl));
     }
     // Add language prefix if not default
     if (!$lang) {
         return ($baseUrl ? $baseUrl : '') . '/' . $url;
     } else {
         return ($baseUrl ? $baseUrl : '') . "/{$lang->url}{$url}";
     }
 }
 /**
  * @inheritdoc
  */
 public function actions()
 {
     return ['error' => ['class' => 'yii\\web\\ErrorAction'], 'captcha' => ['class' => 'yii\\captcha\\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null], 'set-locale' => ['class' => 'common\\actions\\SetLocaleAction', 'locales' => array_keys(\common\models\Languages::getLanguages())]];
 }
Esempio n. 6
0
<?php

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
/* @var $this yii\web\View */
/* @var $model common\models\Skills */
/* @var $form yii\bootstrap\ActiveForm */
?>

<div class="skill-create-form">
    <?php 
$form = ActiveForm::begin();
?>
    <?php 
echo \common\models\Languages::showSelectButtons();
?>
    <hr/>
    <?php 
echo $form->field($model, 'title')->textInput(['maxlength' => 50, 'class' => 'form-control mlang']);
?>
    <?php 
echo $form->field($model, 'description')->textarea(['maxlength' => 1500, 'class' => 'mlang', 'id' => 'ckeditor']);
?>
    <?php 
echo $form->field($model, 'type')->dropDownList(\common\models\Skills::$TYPES);
?>
    <?php 
echo $form->field($model, 'icon_name')->textInput();
?>
    <?php 
echo $form->field($model, 'mark')->textInput();
Esempio n. 7
0
<div class="languages-create-form">
    <?php 
$form = ActiveForm::begin(['options' => ['class' => 'col-md-6']]);
?>
    <?php 
echo \common\models\Languages::showSelectButtons();
?>
    <hr/>
    <?php 
echo $form->field($model, 'flag')->widget(\trntv\filekit\widget\Upload::className(), ['url' => ['/file-storage/upload'], 'multiple' => false]);
?>
    <?php 
echo $form->field($model, 'name')->textInput(['maxlength' => 50, 'class' => 'form-control mlang']);
?>
    <?php 
echo $form->field($model, 'locale')->dropDownList(\common\models\Languages::getLocales($model->locale));
?>
    <?php 
echo $form->field($model, 'active')->checkbox();
?>
    <?php 
echo $form->field($model, 'default')->checkbox();
?>
    <?php 
echo $form->field($model, 'sort')->textInput();
?>

    <div class="form-group">
        <?php 
echo $form->errorSummary($model);
?>
Esempio n. 8
0
 protected function resolveRequestUri()
 {
     $selected = Settings::findOne('backend_language')->value;
     Languages::setCurrent($selected ? $selected : Languages::getDefaultLanguage()->url);
     return parent::resolveRequestUri();
 }
Esempio n. 9
0
<?php

use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
/* @var $this \yii\web\View */
/* @var $content string */
$this->beginContent('@frontend/views/layouts/_clear.php');
?>
    <div class="wrap">
        <?php 
NavBar::begin(['brandLabel' => Yii::$app->name, 'brandUrl' => Yii::$app->homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top']]);
?>
        <?php 
echo Nav::widget(['options' => ['class' => 'navbar-nav navbar-right'], 'items' => \common\models\WidgetMenu::getMenuLinks('main', [['label' => Yii::$app->user->isGuest ? '' : Yii::$app->user->identity->getPublicIdentity(), 'visible' => !Yii::$app->user->isGuest, 'items' => [['label' => Yii::t('frontend', 'Settings'), 'url' => ['/user/default/index']], ['label' => Yii::t('frontend', 'Backend'), 'url' => Yii::getAlias('@backendUrl'), 'visible' => Yii::$app->user->can('manager')], ['label' => Yii::t('frontend', 'Logout'), 'url' => ['/user/sign-in/logout'], 'linkOptions' => ['data-method' => 'post']]]], ['label' => Yii::t('frontend', 'Language'), 'items' => array_map(function ($code) {
    return ['label' => \common\models\Languages::getLanguages()[$code], 'url' => ['/site/set-locale', 'locale' => $code], 'active' => Yii::$app->language === $code];
}, array_keys(\common\models\Languages::getLanguages()))]])]);
?>
    <?php 
NavBar::end();
?>

    <?php 
echo $content;
?>

    </div>

    <footer class="footer">
        <div class="container">
            <p class="pull-left">&copy; My Company <?php 
echo date('Y');
Esempio n. 10
0
 /**
  * Load available languages.
  * @return array of language data
  * @TODO: Shouldn't get the current language
  */
 public static function getLanguages()
 {
     $key = 'languages';
     $data = Yii::$app->cache->get($key);
     if ($data === false) {
         $model = Languages::find()->indexBy('id')->orderBy('sort')->all();
         foreach ($model as $lang) {
             if ($lang->active && !empty($lang->name)) {
                 $data['languages'][$lang->locale] = $lang->name;
                 $data['flags'][$lang->locale] = self::getFlagUrl($lang);
             }
             if ($lang->default) {
                 $data['default'] = $lang->locale;
             }
         }
         Yii::$app->cache->set($key, $data, 0);
     }
     self::$languages = $data['languages'] ? $data['languages'] : array();
     self::$languagesFlags = $data['flags'];
     self::$languagesDefault = $data['default'];
     return self::$languages;
 }
Esempio n. 11
0
<?php

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\bootstrap\Tabs;
use common\models\Languages;
/* @var $this yii\web\View */
/* @var $model fonclub\menu\models\MenuItem */
/* @var $form yii\bootstrap\ActiveForm */
$languages = Languages::find()->all();
$this->registerJs("\n    \$('#select-menu').on('click', function(){\n        \$('#modules-menu').toggle();\n        \$('#selectParams').empty();\n    });\n\n    \$('.menu-module-type').on('click', function(e){\n        e.preventDefault();\n        var url = \$(this).data('url');\n        var action = \$(this).data('action');\n\n        if(action !== ''){\n            \$('#selectParams').load(action, function() {\n                \$('#selectParams select').on('change', function(){\n                    var query = \$(this).find(':selected').data('query');\n                    \$('#menuitem-url').val(url+'?'+query);\n                });\n            });\n        }\n        else\n            \$('#menuitem-url').val(url);\n    });\n    ");
?>

<div class="menu-item-form">

    <?php 
$form = ActiveForm::begin();
?>

    <?php 
$form->errorSummary($model);
?>

    <?php 
foreach ($languages as $language) {
    $items[$language->name] = ['label' => $language->name, 'active' => Yii::$app->language == $language->url, 'content' => $form->field($model, 'title_' . $language->url)->textInput(['maxlength' => 255]), 'options' => ['id' => 'tab_' . $language->url]];
}
echo Tabs::widget(['items' => $items]);
?>

    <?php