diff --git a/backend/views/layouts/menu_items.php b/backend/views/layouts/menu_items.php
index 22e8677..f91fad9 100644
--- a/backend/views/layouts/menu_items.php
+++ b/backend/views/layouts/menu_items.php
@@ -75,6 +75,11 @@
'icon' => 'file-text',
],
[
+ 'label' => \Yii::t('catalog', 'Brands'),
+ 'url' => [ 'brand/index' ],
+ 'icon' => 'file-text',
+ ],
+ [
'label' => \Yii::t('catalog', 'Products'),
'url' => [ 'product/index' ],
'icon' => 'gift',
diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php
index 25cfb9b..cdd686b 100755
--- a/frontend/views/layouts/main.php
+++ b/frontend/views/layouts/main.php
@@ -15,6 +15,7 @@
use common\models\SearchForm;
use common\models\Settings;
use frontend\assets\AppAsset;
+ use frontend\widgets\LangLink;
use yii\base\Model;
use yii\bootstrap\ActiveForm;
use yii\bootstrap\Html;
@@ -127,6 +128,11 @@
?>
+
+
+
phone; ?>
diff --git a/frontend/views/product/view.php b/frontend/views/product/view.php
index 31d4e24..90bd8fd 100755
--- a/frontend/views/product/view.php
+++ b/frontend/views/product/view.php
@@ -194,36 +194,44 @@
-
-
- lang->title,
- [ 'class' => 'td-title' ]
- ) . Html::tag(
- 'td',
- implode(
- ', ',
- ArrayHelper::getColumn(
- $optionGroup->currentOptions,
- 'lang.value'
+
+
+
+ lang->title,
+ [ 'class' => 'td-title' ]
+ ) . Html::tag(
+ 'td',
+ implode(
+ ', ',
+ ArrayHelper::getColumn(
+ $optionGroup->currentOptions,
+ 'lang.value'
+ )
+ )
)
- )
- )
- );
- }
- }
- ?>
-
-
+ );
+ }
+ }
+ ?>
+
+
+
diff --git a/frontend/web/css/style.css b/frontend/web/css/style.css
index 01312be..f8d8cb1 100644
--- a/frontend/web/css/style.css
+++ b/frontend/web/css/style.css
@@ -4524,4 +4524,9 @@ a.list-group-item.active > .badge,
background-size: 70%;
background-position: center;
background-repeat: no-repeat;
+}
+
+.inline-block.lang-link {
+ font-size: 18px;
+ padding-right: 20px;
}
\ No newline at end of file
diff --git a/frontend/widgets/LangLink.php b/frontend/widgets/LangLink.php
new file mode 100644
index 0000000..3115aca
--- /dev/null
+++ b/frontend/widgets/LangLink.php
@@ -0,0 +1,132 @@
+languageIds)) {
+ $this->languageIds = Language::find()
+ ->select(
+ [
+ 'url',
+ 'id',
+ ]
+ )
+ ->where([ 'status' => true ])
+ ->asArray()
+ ->indexBy('id')
+ ->column();
+ }
+ foreach ($this->languageIds as $languageId => $url) {
+ if (Language::getCurrent()->id !== $languageId) {
+ if (\Yii::$app->requestedRoute == 'category/view') {
+ $aliasValues = [ \Yii::$app->request->get('category') ];
+ $filter = \Yii::$app->request->get('filter');
+ if (!empty($filter)) {
+ $aliasValues = array_merge($aliasValues, explode('_', $filter));
+ }
+ if (!empty($aliasValues)) {
+ $aliases = Alias::find()
+ ->where(
+ [
+ 'route' => Alias::find()
+ ->select('route')
+ ->where([ 'value' => $aliasValues ]),
+ ]
+ )
+ ->andWhere(
+ [
+ 'language_id' => [
+ $languageId,
+ Language::getCurrent()->id,
+ ],
+ ]
+ )
+ ->asArray()
+ ->all();
+ $map = $this->mapAliases($aliases);
+ $params = $this->replaceParams($map);
+ $this->links[ $languageId ] = Html::a(
+ $url,
+ Url::to(
+ [ \Yii::$app->requestedRoute ] + $params + [ 'language_id' => $languageId ],
+ true
+ )
+ );
+ } else {
+ $this->links[ $languageId ] = $url;
+ }
+ } else {
+ $this->links[ $languageId ] = Html::a(
+ $url,
+ Url::to(
+ [ \Yii::$app->requestedRoute ] + \Yii::$app->request->get(
+ ) + [ 'language_id' => $languageId ],
+ true
+ )
+ );
+ }
+ } else {
+ $this->links[ $languageId ] = $url;
+ }
+ }
+ }
+
+ public function run()
+ {
+ return $this->render('_langLink');
+ }
+
+ protected function mapAliases(array $aliases): array
+ {
+ $map = [];
+ $result = [];
+ $currentLanguageId = Language::getCurrent()->id;
+ foreach ($aliases as $alias) {
+ if ($alias[ 'language_id' ] === $currentLanguageId) {
+ $map[ $alias[ 'route' ] ][ 0 ] = $alias[ 'value' ];
+ } else {
+ $map[ $alias[ 'route' ] ][ 1 ] = $alias[ 'value' ];
+ }
+ }
+ foreach ($map as $route => $alias) {
+ if (!empty($alias[ 0 ]) && !empty($alias[ 1 ])) {
+ $result[ $alias[ 0 ] ] = $alias[ 1 ];
+ } else {
+ \Yii::getLogger()
+ ->log("Missing alias for route $route.", Logger::LEVEL_ERROR);
+ }
+ }
+ return $result;
+ }
+
+ protected function replaceParams(array $map): array
+ {
+ $params = \Yii::$app->request->get();
+ $filter = explode('_', $params[ 'filter' ]);
+ if (array_key_exists($params[ 'category' ], $map)) {
+ $params[ 'category' ] = $map[ $params[ 'category' ] ];
+ }
+ if (!empty($filter)) {
+ foreach ($filter as $index => $item) {
+ if (array_key_exists($item, $map)) {
+ $filter[ $index ] = $map[ $item ];
+ }
+ }
+ $params[ 'filter' ] = implode('_', $filter);
+ }
+ return $params;
+ }
+ }
\ No newline at end of file
diff --git a/frontend/widgets/views/_langLink.php b/frontend/widgets/views/_langLink.php
new file mode 100644
index 0000000..316d319
--- /dev/null
+++ b/frontend/widgets/views/_langLink.php
@@ -0,0 +1,8 @@
+context;
+ echo implode(' / ', $widget->links);
+?>
--
libgit2 0.21.4