Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 34 |
| LanguageSwitch | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
72.00 | |
0.00% |
0 / 34 |
| init | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 24 |
|||
| mapCountry | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 10 |
|||
| <?php | |
| /** | |
| * @copyright Copyright (c) 2015 Maciej Klemarczyk | |
| * @license MIT License | |
| */ | |
| namespace common\widgets; | |
| use Yii; | |
| use yii\helpers\ArrayHelper; | |
| use yii\helpers\Html; | |
| use yii\helpers\Url; | |
| /** | |
| * Banner widget renders an img tag with banner image for given key. | |
| * | |
| * @author Maciej Klemarczyk <m.klemarczyk@live.com> | |
| */ | |
| class LanguageSwitch extends \yii\bootstrap\Widget | |
| { | |
| public $options = []; | |
| public function init() | |
| { | |
| parent::init(); | |
| $currentLanguage = Yii::$app->language; | |
| $languages = Yii::$app->contentNegotiator->languages; | |
| $options = ArrayHelper::merge( | |
| $this->options, | |
| ['id' => 'switch-languages'] | |
| ); | |
| if (!empty($languages) && count($languages) > 1) { | |
| echo Html::beginTag('div', $options); | |
| echo Yii::t('app', 'Switch language:'); | |
| foreach ($languages as $langKey) { | |
| echo ' '; | |
| if ($langKey !== $currentLanguage) { | |
| $countryKey = $this->mapCountry($langKey); | |
| echo Html::beginTag('a', ['href' => Url::current(['_lang' => $langKey])]); | |
| echo Html::tag('span', '', ['class' => "flag-icon flag-icon-$countryKey"]); | |
| echo Html::endTag('a'); | |
| } | |
| } | |
| echo Html::tag('img'); | |
| echo Html::endTag('div'); | |
| } | |
| } | |
| private function mapCountry($language) | |
| { | |
| switch ($language) { | |
| case 'cs': | |
| return 'cz'; | |
| case 'en': | |
| return 'gb'; | |
| default: | |
| return $language; | |
| } | |
| } | |
| } |