* @link http://skeeks.com/ * @copyright 2010 SkeekS (СкикС) * @date 27.04.2016 */ namespace common\widgets\selectLanguage; use skeeks\cms\models\CmsLang; use yii\base\Widget; use yii\helpers\Json; use yii\web\Cookie; /** * @property string $modalId * * Class SelectLanguage * @package common\widgets\selectLanguage */ class SelectLanguage extends Widget { public function run() { parent::run(); $options = []; $options['modalId'] = $this->modalId; $jsOptions = Json::encode($options); SelectLanguageAsset::register($this->view); $this->view->registerJs(<<language; $langsData = \Yii::$app->cache->get($key); if (!$langsData) { $langs = \skeeks\cms\models\CmsLang::find()->with('image')->active()->orderBy(['name' => SORT_ASC])->all(); /** * @var CmsLang $lang */ foreach ($langs as $lang) { $langsData[] = [ 'code' => $lang->code, 'name' => $lang->name, 'image' => $lang->image ? $lang->image->src : \skeeks\cms\helpers\Image::getSrc(), ]; } \Yii::$app->cache->set($key, $langsData, 86400); } \Yii::$app->project->modals[] = $this->render('_modal', [ 'data' => $langsData ]); return $this->render('default'); } /** * @return string */ public function getModalId() { return $this->id . "-container"; } }