Your IP : 216.73.216.79


Current Path : /var/www/html/chatbot/common/components/
Upload File :
Current File : /var/www/html/chatbot/common/components/LanguageSwitcher.php

<?php
namespace common\components;
 
use Yii;
use yii\base\Component;
use yii\base\Widget;
use yii\bootstrap\ButtonDropdown;
use yii\helpers\Url;
use yii\helpers\Html;
use yii\web\Cookie;
use backend\models\i18n\DmgI18nMessage;
 
class LanguageSwitcher extends Widget
{   
    /* bundleBase */
    public $bundleBase;

    public $languages;
 
    public function init()
    {   
        $this->languages = DmgI18nMessage::$languages;
            if(php_sapi_name() === 'cli')
            {
                return true;
            }
 
        parent::init();
 
        $cookies = Yii::$app->response->cookies;
        $getCookies = Yii::$app->request->cookies;
        $languageNew = Yii::$app->request->get('language');
        if($languageNew)
        {
            if(isset($this->languages[$languageNew]))
            {
                Yii::$app->language = $languageNew;
                $cookies->add(new \yii\web\Cookie([
                    'name' => 'language',
                    'value' => $languageNew
                ]));
            }
        }
        elseif($getCookies->get('language') !== null)
        {
            Yii::$app->language = $getCookies->getValue('language');
        }
    }
 
    public function run(){
        $languages = $this->languages;
        $current = $languages[Yii::$app->language];
        unset($languages[Yii::$app->language]);
 
        $items = [];
        foreach($languages as $code => $language)
        {   
            $temp = [];
            $temp['label'] = $language['label'];
            $temp['flag']  = $language['flag'];
            $temp['url'] = Url::current(['language' => $code]);
            array_push($items, $temp);
        }
        
        /* default */
        // echo ButtonDropdown::widget([
        //     'label' => $current,
        //     'dropdown' => [
        //         'items' => $items,
        //     ],
        // ]);

        if(count($items) > 0 )
        {
            foreach ($items as $itmk) {
             $flagItem[] =   "<li>
                                <div class='dropdown-messages-box'>
                                 <img src='".$this->bundleBase."/img/flags/16/".$itmk['flag'].".png'>&nbsp;".Html::a($itmk['label'], $itmk['url'],['style'=>'color:#888888'])."
                                </div>
                             </li>
                             ";
            }
            $fitem = implode('<div class="divider"></div>',$flagItem);
        }
        $currentflagimage = "<img src='".$this->bundleBase."/img/flags/16/".$current['flag'].".png'>";
        return '<li class="dropdown langswitch">
                    <a class="dropdown-toggle count-info" data-toggle="dropdown" href="#" aria-expanded="false">
                        '.$currentflagimage.'&nbsp;<span style="position: relative;right: 6px;top: 0px;" class="label label-success" id="spanlabel">'.$current['label'].'</span>
                    </a>
                    <ul class="dropdown-menu dropdown-messages" style="width:170px">
                        '.$fitem.'
                    </ul>
                </li>';

    }
 
}