File tree 4 files changed +47
-19
lines changed
4 files changed +47
-19
lines changed Original file line number Diff line number Diff line change @@ -104,6 +104,26 @@ public function getLanguage()
104
104
return $ this ->_language ;
105
105
}
106
106
107
+ public function getSlugMap ()
108
+ {
109
+ $ map = [];
110
+ foreach ($ this ->languages as $ language ) {
111
+ $ map [$ language ->getId ()] = $ language ->getSlug ();
112
+ }
113
+
114
+ return $ map ;
115
+ }
116
+
117
+ public function getMap ()
118
+ {
119
+ $ map = [];
120
+ foreach ($ this ->languages as $ language ) {
121
+ $ map [$ language ->getId ()] = $ language ->getTitle ();
122
+ }
123
+
124
+ return $ map ;
125
+ }
126
+
107
127
/**
108
128
* @param ILanguage $language
109
129
*/
@@ -130,4 +150,4 @@ public function setLanguage(ILanguage $language)
130
150
Yii::$ app ->getResponse ()->getCookies ()->add ($ cookie );
131
151
}
132
152
}
133
- }
153
+ }
Original file line number Diff line number Diff line change @@ -28,4 +28,14 @@ public function getLanguage();
28
28
* @param ILanguage $language
29
29
*/
30
30
public function setLanguage (ILanguage $ language );
31
- }
31
+
32
+ /**
33
+ * @return array
34
+ */
35
+ public function getSlugMap ();
36
+
37
+ /**
38
+ * @return array
39
+ */
40
+ public function getMap ();
41
+ }
Original file line number Diff line number Diff line change 7
7
8
8
use nullref \core \interfaces \ILanguageManager ;
9
9
use Yii ;
10
+ use yii \base \Model ;
10
11
use yii \base \Widget ;
11
12
12
13
class Multilingual extends Widget
13
14
{
15
+ /** @var \Closure */
14
16
public $ tab ;
17
+ /** @var Model */
15
18
public $ model ;
16
- public $ languages = null ;
17
-
18
- /**
19
- * @var MultilingualForm
20
- */
19
+ /** @var MultilingualForm */
21
20
public $ form ;
22
21
22
+ /** @var ILanguageManager */
23
+ private $ languageManager ;
24
+
23
25
public function init ()
24
26
{
25
27
parent ::init ();
26
- if (!count ($ this ->languages )) {
27
- /** @var ILanguageManager $languageManager */
28
- $ languageManager = Yii::$ app ->get ('languageManager ' );
29
- $ this ->languages = $ languageManager ->getLanguages ();
30
- }
28
+ $ this ->languageManager = Yii::$ app ->get ('languageManager ' );
31
29
}
32
30
33
31
@@ -50,7 +48,7 @@ public function run()
50
48
'form ' => $ form ,
51
49
'tab ' => $ this ->tab ,
52
50
'model ' => $ this ->model ,
53
- 'languages ' => $ this ->languages ,
51
+ 'languageManager ' => $ this ->languageManager ,
54
52
]);
55
53
}
56
- }
54
+ }
Original file line number Diff line number Diff line change 4
4
* @var $form \nullref\core\widgets\MultilingualForm
5
5
* @var $model \yii\base\Model
6
6
* @var $tab Closure
7
+ * @var $languageManager \nullref\core\interfaces\ILanguageManager
7
8
*/
8
- use app \helpers \Languages ;
9
9
10
10
?>
11
11
<style>
22
22
<div class="multilingual">
23
23
<ul class="nav nav-tabs">
24
24
<?php $ first = true ;
25
- foreach (Languages:: getSlugMap () as $ key => $ lang ): ?>
25
+ foreach ($ languageManager -> getSlugMap () as $ key => $ lang ): ?>
26
26
<li class="<?= ($ first ) ? 'active ' : '' ?> ">
27
27
<a data-toggle="tab" href="#<?= $ lang ?> ">
28
- <?= Yii::t ('translation ' , Languages:: getMap ()[$ key ]) ?>
28
+ <?= Yii::t ('translation ' , $ languageManager -> getMap ()[$ key ]) ?>
29
29
</a>
30
30
</li>
31
31
<?php $ first = false ; endforeach ?>
32
32
</ul>
33
33
<div class="tab-content multilingual-tab-content" style="padding: 10px 5px">
34
34
<?php $ first = true ;
35
- foreach (Languages:: getSlugMap () as $ key => $ lang ): ?>
35
+ foreach ($ languageManager -> getSlugMap () as $ key => $ lang ): ?>
36
36
<div id="<?= $ lang ?> " class="tab-pane <?= ($ first ) ? 'active ' : '' ?> ">
37
37
<?php $ form ->language = $ lang ?>
38
38
<?= call_user_func ($ tab , $ form , $ model ) ?>
39
39
</div>
40
40
<?php $ first = false ; endforeach ?>
41
41
</div>
42
- </div>
42
+ </div>
You can’t perform that action at this time.
0 commit comments