| Current Path : /var/www/html/chatbot/common/components/ |
| 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'> ".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.' <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>';
}
}