LangSwitch.php 2.89 KB
<?php

namespace frontend\modules\sys\widgets\langSwitch;


use Yii;
use yii\base\Widget;
use frontend\modules\sys\models\Language;
use yii\helpers\Html;


/**
 * Class LangSwitch
 *
 * @package frontend\modules\sys\widgets\langSwitch
 * @author Alla Kuzmenko
 * @copyright (c) 2016
 */
class LangSwitch extends Widget
{
    protected $current = null;
    protected $items = null;
    public $view = 'select';

    /**
     *
     */
    public function init()
    {
        $model = new Yii::$app->languages->languageModel();
        $this->items = $model->getLanguages();
    }

    /**
     * @return string
     */
    public function run()
    {
        $items = [];
        if (!empty($this->items)) {
            foreach ($this->items as $lang) {
                $path = \Yii::$app->request->pathInfo;
                if ($lang['local'] == Yii::$app->language) {
                    $this->current = [
                        'label' => $lang['label'],
                        'url' => '/' . $lang['alias'] . '/' . $path,
                        'alias' => $lang['alias'],
                        'img' => $lang->getImageLink(),
                        'model' => $lang,
                    ];
                }

                if (!$lang['by_default']) {
                    $items[] = [
                        'label' => $lang['label'],
                        'url' => '/' . $lang['alias'] . '/' . $path,
                        'alias' => $lang['alias'],
                        'img' => $lang->getImageLink(),
                        'model' => $lang,
                    ];
                } else {
                    $items[] = [
                        'label' => $lang['label'],
                        'url' => '/' . $path,
                        'alias' => $lang['alias'],
                        'img' => $lang->getImageLink(),
                        'model' => $lang,
                    ];
                }
            }

            foreach ($items as $item) {
                if ($item['alias'] == 'en' && $this->current['alias'] == 'ua') {
                    return Html::a($item['label'], $item['url'], [
                        'class' => 'language en',
//                        'style' => $this->current['img'] ? 'background-image: url("' . $this->current['img'] . '")' : false
                        'style' => 'background-image: url("' . $item['img'] . '")'
                    ]);
                    break;
                } elseif ($item['alias'] == 'ua' && $this->current['alias'] == 'en') {
                    return Html::a($item['label'], $item['url'], [
                        'class' => 'language ua',
//                        'style' => $this->current['img'] ? 'background-image: url("' . $this->current['img'] . '")' : false
                        'style' => 'background-image: url("' . $item['img'] . '")'
                    ]);
                    break;
                }
            }

        }
    }

}