Задать стиль отдельному пункту в меню каталога

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

miki
miki
Репутация: 3
Сообщения: 22
Зарегистрирован: 24.05.2018
С нами: 5 лет 10 месяцев

Сообщение #1 miki » 14.08.2018, 14:08

Всем добрый день!

Подскажите, пожалуйста, каким образом можно в стандартном шаблоне отдельно взятому пункту в выпадающем меню каталога задать свой стиль (например, цвет фона)?

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 15.08.2018, 06:42

В categories.tpl в двух местах вместо

Код: Выделить всё

<a class="category_link{if $category->id == $c->id} selected{/if}" href="{$lang_link}catalog/{$c->url}" data-category="{$c->id}">

вставить примерно так:

Код: Выделить всё

<a class="category_link{if $category->id == $c->id} selected{/if}{if $category->id == 67} cat67{/if}" href="{$lang_link}catalog/{$c->url}" data-category="{$c->id}">

и добавить стиль cat67, который будет применяться для категории ID=67.

Замечание для разработчиков. То обстоятельство, что столь мелкую правку приходится делать в ДВУХ местах, говорит о том, что код в шаблоне несколько нерационален - по-хорошему, повторяющихся участков быть не должно. Налицо явное усложнение, недопустимое для CMS, которая позиционируется как простая...

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #3 makki » 15.08.2018, 08:17

Еще как вариант можно вместо

Код: Выделить всё

{if $category->id == 67} cat67{/if}

Написать просто

Код: Выделить всё

 cat_{$category->id}


А в css добавить стиль .cat_xx
Где хх - id категории
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

miki
miki
Репутация: 3
Сообщения: 22
Зарегистрирован: 24.05.2018
С нами: 5 лет 10 месяцев

Сообщение #4 miki » 01.09.2018, 14:44

Спасибо за ответ! Только дошли руки попробовать это сделать, но что-то не срабатывает первый вариант.
Второй вариант предполагает задание стиля каждой категории?

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #5 makki » 01.09.2018, 17:43

miki писал(а):Спасибо за ответ! Только дошли руки попробовать это сделать, но что-то не срабатывает первый вариант.
Второй вариант предполагает задание стиля каждой категории?
У вас уже есть какой-то заданный один стиль для всех категорий, а приставкой стиля cat_xx вы перекрываете в CSS нужные вам свойства. Если дополнительный стиль не задан, тогда основной стиль остается.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #6 korshunov » 02.09.2018, 06:16

miki писал(а):...но что-то не срабатывает первый вариант.

Надо бы URL давать, чтоб показать живьем, где что "не срабатывает"...

miki
miki
Репутация: 3
Сообщения: 22
Зарегистрирован: 24.05.2018
С нами: 5 лет 10 месяцев

Сообщение #7 miki » 05.09.2018, 09:26

Оказалось все совсем иначе.

Все сработало, но по-другому. Я воспользовался первым вариантом, задал стиль для категории 48 (поменял цвет фона)
В результате: Цвет фона поменялся у всех пунктов меню, но только когда находишься на странице категории 48. С других страниц сайта меню без изменений.

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #8 korshunov » 05.09.2018, 10:09

Пробуйте так:

Код: Выделить всё

<a class="category_link{if $category->id == $c->id} selected{/if}{if $c->id == 67} cat67{/if}" href="{$lang_link}catalog/{$c->url}" data-category="{$c->id}">

miki
miki
Репутация: 3
Сообщения: 22
Зарегистрирован: 24.05.2018
С нами: 5 лет 10 месяцев

Сообщение #9 miki » 05.09.2018, 20:37

korshunov писал(а):Пробуйте так:

Есть. Так работает.

Пришлось добавить

Код: Выделить всё

<span>{$c->name|escape}</span>
в обоих случаях. Иначе не отображались надписи у категорий, не имеющих подкатегории.

Спасибо!


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 44 гостя