示例#1
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]);
 }
 /**
  * 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;
 }
示例#3
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