Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Разное оформление для двухязычного меню, как правильней?

00 голосов
6
Здравствуйте, умные люди.

Есть задача кастомизировать меню.

Меню состоит из пунктов-картинок, заданных CSS слассами.
Сайт двуязычный, двуязычность реализована по директориям.
Соответственно версии меню определяются исходя из текущей директории.
Сама структура меню уже разделена и подключена, необходимо разделить оформление.

Собственно вопрос: как правильней разделить оформление для разных версий двуязычного меню сайта, использовать для этого два шаблона меню для разных версий и подключать их в коде вызова шаблона меню в основном шаблоне сайта в зависимости от директории, либо сделать это в одном файле шаблона меню, тоже в зависимости от директории, подставив необходимые классы с изображениями?
спросил 24 Окт, 13 от Traxexx (900 баллов)

6 Ответы

00 голосов
в шаблоне пишете:

<body class="lang-<?=LANG?>">

в CSS:

.menu li.item1 {
background-image:url(title-en.gif);
}
.lang-ru .menu li.item1 {
background-image:url(title-ru.gif);
}

ну где-то так
ответил 21 Ноя, 13 от krivedko (500 баллов)
00 голосов
Спасибо, Андрей, за дельный совет, но Вы не совсем поняли суть, в моем случае двуязычность реализована без специальных средств битрикс. Поэтому вариант только один - переключать по директориям.
ответил 02 Март, 14 от Traxexx (900 баллов)
00 голосов
Натолкнули тут меня на неплохую мысль.

Делаем, так:

1. Создаем переменную в которую логикой в зависимости от директории пихаем обозначение языка. (rus или eng)
2. Присваиваем всему <body> страницы id со значением этой переменной. (<body id="rus">)
3. Пишем классы для пунктов меню-картинок используя наследование примерно так:

#rus .menu-item-1 {...}
#eng .menu-item-1 {...}

далее очень удобно, если требуется изменять другие элементы страницы в зависимости от языковой версии, не нужно пихать логику по нескольку раз, а делать все (возможное) в цсс файле.
ответил 22 Июнь, 14 от Traxexx (900 баллов)
00 голосов
Цитата
Евгений Бескровный пишет:
Натолкнули тут меня на неплохую мысль.


Так я собственно именно это и хотел сделать ;)

Вторая реализация абсолютно правильная также.

<body id="<? APPLICATION->ShowProperty('body-class'); ?>">

В таком случае будет использоваться свойство раздела и управлять этим сможете стандартными средствами Битрикса.
ответил 21 Окт, 14 от krivedko (500 баллов)
00 голосов
Цитата
Andrey Miroshnichenko пишет:
В таком случае будет использоваться свойство раздела и управлять этим сможете стандартными средствами Битрикса.
т.е. заведя в управлении структурой свойство body-class, я смогу задать для него значения также через админку битрикса для нужной мне директории? т.е. ShowProperty мы заменяем логику определения текущей директории? я правильно понял?
ответил 20 Фев, 15 от Traxexx (900 баллов)
00 голосов
да, правильно
ответил 30 Май, 15 от krivedko (500 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
3 ответов
спросил 20 Март, 14 от pop72 (240 баллов)
0 голосов
4 ответов
0 голосов
5 ответов
спросил 17 Сен, 13 от Savinga (140 баллов)
0 голосов
0 ответов
спросил 25 Апр, 13 от Kania (5,180 баллов)