Пример #1
0
 public static function label($code)
 {
     if (self::$_labels === null) {
         self::$_labels = Language::getAllLangLabels();
     }
     return isset(self::$_labels[$code]) ? self::$_labels[$code] : null;
 }
Пример #2
0
 /**
  * Lists all LanguageTranslate models.
  * @return mixed
  */
 public function actionIndex()
 {
     $searchModel = new LanguageTranslateSearch();
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
     $languages = Language::getLanguages();
     $categories = ArrayHelper::map(LanguageSource::find()->select('category')->distinct()->all(), 'category', 'category');
     return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'languages' => $languages, 'categories' => $categories]);
 }
Пример #3
0
 /**
  * Finds the Language model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $id
  * @return Language the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Language::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Пример #4
0
 protected static function getDefaultLanguage($lang = false)
 {
     if ($lang === false) {
         $lang = Language::findOne(Yii::$app->language);
     } else {
         $lang = Language::getLangByUrl($lang);
     }
     return $lang;
 }
Пример #5
0
 /**
  * Creates a new Page model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Page();
     $model->language = Language::getCurrent();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model, 'layouts' => Page::getLayouts(), 'templates' => Page::getTemplates(), 'active' => Page::getActiveList()]);
     }
 }
Пример #6
0
 /**
  * @return string
  */
 public function run()
 {
     $list = [];
     list($route, $params) = Yii::$app->getUrlManager()->parseRequest(Yii::$app->getRequest());
     $params = ArrayHelper::merge($_GET, $params);
     $url = isset($params['route']) ? $params['route'] : $route;
     foreach ($this->languages as $row) {
         $list = ArrayHelper::merge($list, [['label' => $row['title'], 'url' => Yii::$app->urlManager->createUrl(ArrayHelper::merge($params, [$url, 'language' => $row['iso']]))]]);
     }
     return Nav::widget(['options' => $this->options, 'items' => [['label' => Language::getCurrentRecord()->title, 'items' => $list]]]);
 }
Пример #7
0
 /**
  * @param array|string $params
  * @return string
  */
 public function createUrl($params)
 {
     $params = (array) $params;
     $language = isset($params['language']) ? $params['language'] : Language::getCurrent();
     if (!Language::isLanguage($language)) {
         $language = Language::getCurrent();
     }
     unset($params['route'], $params['language']);
     $params['0'] = $language . '/' . trim($params['0'], '/');
     return parent::createUrl($params);
 }
Пример #8
0
 /**
  * @param string $route
  * @return string
  * @throws \yii\web\NotFoundHttpException
  */
 public function actionRoute($route = 'index')
 {
     /* @var $dp Page */
     $page = Page::parse($route);
     $dp = Page::find()->where('name = :name AND active = :active AND language = :language', [':name' => $page, ':active' => Page::ACTIVE_YES, ':language' => Language::getCurrent()])->one();
     if ($dp === null) {
         throw new NotFoundHttpException(Yii::t('yii', 'Page not found.'));
     }
     $this->registerLayout($dp->layout);
     return $this->render($dp->template, ['dp' => $dp]);
 }
Пример #9
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Page::find()->where(['language' => Language::getCurrent()]);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'layout', $this->layout])->andFilterWhere(['like', 'template', $this->template])->andFilterWhere(['like', 'active', $this->active]);
     return $dataProvider;
 }
Пример #10
0
 public function registerLanguage()
 {
     $language = ArrayHelper::getValue($this->clientOptions, 'lang');
     if ($language === null) {
         $language = Language::getCurrentCode();
         $this->clientOptions = ArrayHelper::merge($this->clientOptions, ['lang' => $language]);
     }
     $js = 'lang' . DIRECTORY_SEPARATOR . $language . '.js';
     if (file_exists($this->_assetBundle->basePath . DIRECTORY_SEPARATOR . $js)) {
         $this->_assetBundle->js[] = $js;
     } else {
         ArrayHelper::remove($this->clientOptions, 'lang');
     }
 }
Пример #11
0
 /**
  * @return bool|string
  */
 protected function resolveRequestUri()
 {
     $pattern = [];
     $resolveRequestUri = parent::resolveRequestUri();
     if (Yii::$app->getUrlManager()->enablePrettyUrl === true) {
         $pattern[] = '/' . preg_replace('/\\//', '\\/', Yii::$app->getUrlManager()->suffix) . '/';
     }
     if (Yii::$app->getUrlManager()->showScriptName === true) {
         $pattern[] = '/' . preg_replace('/\\//', '\\/', $this->getScriptUrl()) . '/';
     }
     $requestUri = preg_replace($pattern, '', $resolveRequestUri);
     list($language, ) = explode('/', trim($requestUri, '/'));
     if (Language::isLanguage($language)) {
         Language::setCurrent($language);
     } else {
         Language::setCurrent($this->getPreferredLanguage(ArrayHelper::getColumn(Language::listing(), 'iso')));
     }
     return $resolveRequestUri;
 }
Пример #12
0
 public static function handleMissingTranslation(MissingTranslationEvent $event)
 {
     $i18nSource = I18nSource::findOne(['category' => $event->category, 'message' => $event->message]);
     if ($i18nSource === null) {
         $i18nSource = new I18nSource();
         $i18nSource->category = $event->category;
         $i18nSource->message = $event->message;
         $i18nSource->save();
     }
     foreach (Language::listing() as $language) {
         $i18nMessage = I18nMessage::findOne(['id' => $i18nSource->id, 'language' => $language['iso']]);
         if ($i18nMessage === null) {
             $i18nMessage = new I18nMessage();
             $i18nMessage->id = $i18nSource->id;
             $i18nMessage->language = $language['iso'];
             $i18nMessage->translation = $event->message;
             $i18nMessage->save();
         }
     }
 }
Пример #13
0
 /**
  * Updates an existing I18nSource model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param string $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $i18nSource = $this->findModel($id);
     $i18nMessage = I18nMessage::find()->where(['id' => $id, 'language' => Language::getCurrent()])->one();
     if (Yii::$app->request->isPost) {
         $transaction = Yii::$app->db->beginTransaction();
         try {
             $i18nSource->load(Yii::$app->request->post());
             if ($i18nSource->save()) {
                 $i18nMessage->load(Yii::$app->request->post());
                 if ($i18nMessage->save()) {
                     $transaction->commit();
                 }
             }
             return $this->redirect(['view', 'id' => $id]);
         } catch (\Exception $e) {
             $transaction->rollBack();
             return $this->redirect(['update', 'id' => $id]);
         }
     }
     return $this->render('update', ['i18nSource' => $i18nSource, 'i18nMessage' => $i18nMessage]);
 }
Пример #14
0
            </div>
            <div class="col-md-9">
                <?php 
echo Html::img($model->getUploadUrl('avatar') ?: '/uploads/user/non_image.png', ['class' => 'img-thumbnail', 'style' => 'max-width:300px']);
?>
            </div>
        </div>
    </div>
    <?php 
echo $form->field($model, 'avatar')->fileInput(['accept' => 'image/*']);
?>
    <?php 
echo $form->field($model, 'firstname')->textInput(['maxlength' => 255]);
?>
    <?php 
echo $form->field($model, 'middlename')->textInput(['maxlength' => 255]);
?>
    <?php 
echo $form->field($model, 'lastname')->textInput(['maxlength' => 255]);
?>
    <?php 
echo $form->field($model, 'locale')->dropDownlist(ArrayHelper::map(\app\modules\language\models\Language::getLanguages(), 'language_id', 'name'));
?>
    <?php 
echo $form->field($model, 'gender')->dropDownlist([UserProfile::GENDER_FEMALE => Yii::t('backend', 'Female'), UserProfile::GENDER_MALE => Yii::t('backend', 'Male')]);
?>
    <?php 
ActiveForm::end();
?>
</div>
Пример #15
0
use yii\helpers\Url;
use yii\helpers\ArrayHelper;
use app\modules\admin\widgets\Button;
use app\modules\language\models\Language;
use app\templates\backend\base\assets\BaseAsset;
use app\modules\content\models\ContentCategory;
$asset = BaseAsset::register($this);
$class = $this->context->categoryClass;
$settings = $this->context->module->settings;
if (isset($parent)) {
    $model->parent = $parent;
}
if ($model->isNewRecord) {
    $langueBtn = ['label' => '<img src="' . $asset->baseUrl . '/images/flags/' . $lang->url . '.png" alt="' . $lang->url . '"/> ' . Yii::t('backend', $lang->name), 'options' => ['form' => 'portfolio-id', 'type' => 'submit'], 'encodeLabel' => false, 'icon' => false, 'size' => Button::SIZE_SMALL, 'disabled' => false, 'block' => false, 'type' => Button::TYPE_CIRCLE, 'color' => 'btn-default'];
} else {
    $allLang = Language::getLanguages();
    $langueBtnItems = [];
    foreach ($allLang as $item) {
        if ($lang->language_id != $item->language_id) {
            $langueBtnItems[] = ['label' => '<img src="' . $asset->baseUrl . '/images/flags/' . $item->url . '.png" alt="' . $item->url . '"/> ' . $item->name, 'url' => ['update', 'id' => $model->id, 'language' => $item->url]];
        }
    }
    $langueBtn = ['label' => '<img src="' . $asset->baseUrl . '/images/flags/' . $lang->url . '.png" alt="' . $lang->url . '"/> ' . $lang->name, 'options' => ['class' => 'btn blue btn-outline btn-circle btn-sm', 'data-hover' => "dropdown", 'data-close-others' => "true"], 'encodeLabel' => false, 'dropdown' => ['encodeLabels' => false, 'options' => ['class' => 'pull-right'], 'items' => $langueBtnItems]];
}
$this->params['actions_buttons'] = [$langueBtn, ['label' => $model->isNewRecord ? Yii::t('admin', 'Create') : Yii::t('admin', 'Update'), 'options' => ['form' => 'category-form-id', 'type' => 'submit'], 'icon' => 'fa fa-save', 'iconPosition' => Button::ICON_POSITION_LEFT, 'size' => Button::SIZE_SMALL, 'disabled' => false, 'block' => false, 'type' => Button::TYPE_CIRCLE, 'color' => 'btn-success'], ['label' => Yii::t('admin', 'Save & Continue Edit'), 'options' => ['onclick' => 'sendFormReload("#category-form-id")'], 'icon' => 'fa fa-check-circle', 'iconPosition' => Button::ICON_POSITION_LEFT, 'size' => Button::SIZE_SMALL, 'disabled' => false, 'block' => false, 'type' => Button::TYPE_CIRCLE, 'color' => 'btn-success']];
$form = \app\modules\admin\widgets\ActiveForm::begin(['enableAjaxValidation' => true, 'options' => ['enctype' => 'multipart/form-data', 'id' => 'category-form-id']]);
?>

    <?php 
echo $form->field($model, 'title');
?>
Пример #16
0
 public function actionGetSettings($file, $id = null, $lang = null)
 {
     if (Yii::$app->request->isAjax) {
         $return = '';
         $lang === null ? $lang = Language::findOne(Yii::$app->language) : ($lang = Language::findOne($lang));
         $model = Text::findOne($id);
         if ($model) {
             $model->language = $lang->language_id;
             $model->settingsAfterLanguage();
         }
         if ($id !== null && $model) {
             if ($model->settings && is_array($model->settings) && count($model->settings) && $file == $model->layout) {
                 $model->settings = array_merge($this->getLayouts($file)[0]['settings'], $model->settings);
                 foreach ($model->settings as $key => $setting) {
                     $return .= Html::settingField($key, $setting, 'text');
                 }
             } else {
                 foreach ($this->getLayouts($file)[0]['settings'] as $key => $setting) {
                     $return .= Html::settingField($key, $setting, 'text');
                 }
             }
         } else {
             foreach ($this->getLayouts($file)[0]['settings'] as $key => $setting) {
                 $return .= Html::settingField($key, $setting, 'text');
             }
         }
         return $this->renderAjax('get-settings', ['return' => $return]);
     } else {
         throw new NotFoundHttpException();
     }
 }
Пример #17
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getLanguages()
 {
     return $this->hasMany(Language::className(), ['iso' => 'language'])->viaTable('{{{%i18n_message}}}', ['id' => 'id']);
 }
Пример #18
0
 public function registerUploadDir()
 {
     $this->uploadDir = $this->uploadDir . DIRECTORY_SEPARATOR . Language::getCurrent();
     FileHelper::createDirectory(Yii::getAlias('@webroot' . DIRECTORY_SEPARATOR . $this->uploadDir), 0777, true);
 }
Пример #19
0
<?php

use yii\helpers\Url;
use yii\helpers\Html;
use yii\grid\GridView;
use app\modules\admin\widgets\Button;
use app\modules\language\models\LanguageTranslate;
/**
 * @var $this yii\web\View
 * @var $searchModel app\modules\language\models\search\LanguageTranslateSearch
 * @var $dataProvider yii\data\ActiveDataProvider
 * @var $categories
 */
$this->title = Yii::t('language', 'Language Translates');
$this->params['breadcrumbs'][] = $this->title;
$this->params['actions_buttons'] = [['tagName' => 'a', 'label' => Yii::t('admin', 'Create'), 'options' => ['href' => Url::to(['create'])], 'icon' => 'fa fa-plus', 'iconPosition' => Button::ICON_POSITION_LEFT, 'size' => Button::SIZE_SMALL, 'disabled' => false, 'block' => false, 'type' => Button::TYPE_CIRCLE]];
?>
<div class="language-translate-index">

    <?php 
// echo $this->render('_search', ['model' => $searchModel]);
?>
    <div class="table-responsive">
        <?php 
echo GridView::widget(['id' => 'grid', 'tableOptions' => ['class' => 'table table-striped table-bordered table-advance table-hover'], 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['attribute' => 'id', 'options' => ['style' => 'width:100px']], ['attribute' => 'language', 'value' => function ($model) {
    return \app\modules\language\models\Language::findOne($model->language)->name;
}, 'options' => ['style' => 'width: 120px']], ['attribute' => 'category', 'filter' => $categories], ['attribute' => 'sourceMessage'], 'translation:ntext', ['class' => 'app\\modules\\admin\\components\\grid\\ActionColumn']]]);
?>
    </div>
</div>
Пример #20
0
 public function init()
 {
     $this->languages = Language::getAllLang();
     parent::init();
 }
Пример #21
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getLanguage()
 {
     return $this->hasOne(Language::className(), ['iso' => 'language']);
 }
Пример #22
0
<?php

use yii\helpers\Html;
use app\modules\admin\widgets\Button;
use app\modules\admin\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model app\modules\language\models\LanguageTranslate */
/* @var $form yii\widgets\ActiveForm */
$this->params['actions_buttons'] = [['label' => $model->isNewRecord ? Yii::t('admin', 'Create') : Yii::t('admin', 'Update'), 'options' => ['form' => 'language-translate-id', 'type' => 'submit'], 'icon' => 'fa fa-save', 'iconPosition' => Button::ICON_POSITION_LEFT, 'size' => Button::SIZE_SMALL, 'disabled' => false, 'block' => false, 'type' => Button::TYPE_CIRCLE, 'color' => 'btn-success'], ['label' => Yii::t('admin', 'Save & Continue Edit'), 'options' => ['onclick' => 'sendFormReload("#language-translate-id")'], 'icon' => 'fa fa-check-circle', 'iconPosition' => Button::ICON_POSITION_LEFT, 'size' => Button::SIZE_SMALL, 'disabled' => false, 'block' => false, 'type' => Button::TYPE_CIRCLE, 'color' => 'btn-success']];
$languages = \yii\helpers\ArrayHelper::map(\app\modules\language\models\Language::getLanguages(), 'language_id', 'name');
?>

<div class="language-translate-form">

    <?php 
$form = ActiveForm::begin(['options' => ['id' => 'language-translate-id']]);
?>

    <?php 
echo $form->field($model, 'id')->textInput();
?>
    <?php 
echo $form->field($model, 'language')->dropDownList($languages);
?>
    <?php 
echo $form->field($model, 'translation')->textarea(['rows' => 6]);
?>

    <?php 
ActiveForm::end();
?>
Пример #23
0
 /**
  * @inheritdoc
  */
 public function rules()
 {
     return [[['user_id'], 'required'], [['user_id', 'gender'], 'integer'], [['gender'], 'in', 'range' => [NULL, self::GENDER_FEMALE, self::GENDER_MALE]], [['firstname', 'middlename', 'lastname'], 'string', 'max' => 255], ['locale', 'default', 'value' => Yii::$app->language], ['locale', 'in', 'range' => array_keys(ArrayHelper::map(\app\modules\language\models\Language::getLanguages(), 'language_id', 'name'))], [['avatar'], 'image', 'extensions' => 'jpg, jpeg, gif, png', 'on' => ['insert', 'update']]];
 }
Пример #24
0
 /**
  * @return string
  */
 public function run()
 {
     return Json::encode(ArrayHelper::merge([['name' => Yii::t('imperavi', 'Link to the page'), 'url' => '#']], ArrayHelper::getColumn(Page::find()->where(['language' => Language::getCurrent()])->asArray()->all(), function ($row) {
         return ['name' => $row['title'], 'url' => Yii::$app->getUrlManager()->createUrl($row['name'])];
     })));
 }
Пример #25
-13
 /**
  * @return string
  */
 public function renderField()
 {
     switch ($this->type) {
         case 'textInput':
             return Html::textInput($this->param_name, $this->param_value, ['class' => 'form-control']);
             break;
         case 'textarea':
             return Html::textarea($this->param_name, $this->param_value, ['class' => 'form-control']);
             break;
         case 'checkbox':
             return Html::hiddenInput($this->param_name, 0) . \oakcms\bootstrapswitch\Switcher::widget(['name' => $this->param_name, 'checked' => $this->param_value]);
             break;
         case 'language':
             return Html::dropDownList($this->param_name, $this->param_value, ArrayHelper::map(Language::getLanguages(), 'language_id', 'name'), ['class' => 'form-control']);
             break;
         case 'getTheme':
             $files = scandir(Yii::getAlias('@app') . '/templates/frontend');
             $items = [];
             foreach ($files as $file) {
                 //if(!is_file($file) AND $file != '.' AND $file != '..') {
                 if ($file != '.' and $file != '..') {
                     $items[$file] = $file;
                 }
             }
             return Html::dropDownList($this->param_name, $this->param_value, $items, ['class' => 'form-control']);
             break;
     }
 }