Подсветка категории при выборе подкатегории

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

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #1 Julius123 » 23.03.2018, 20:11

Подскажите, можно как-то через smarty сделать проверку что сейчас выбрана любая подкатегория из этой категории, сделал проверку чтобы выдеять цветом подкатегорию, которая сейчас открыта, но при заходе в подкатегорию сама подкатегория подсвечивается но при этом необходимо еще подсветить главную категорию.

http://prntscr.com/ivhkkb

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #2 Julius123 » 25.03.2018, 15:50

Это невозможно? :(

voland
voland
Репутация: 1
Сообщения: 9
Зарегистрирован: 26.03.2018
С нами: 6 лет

Сообщение #3 voland » 26.03.2018, 13:52

Возможно. В style.css вставь
.category_item:hover > .category_link
{
color: #1480a8;
}
Все работает
http://prntscr.com/iwk9we

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #4 Julius123 » 29.03.2018, 07:22

voland писал(а):Возможно. В style.css вставь
.category_item:hover > .category_link
{
color: #1480a8;
}
Все работает
http://prntscr.com/iwk9we

Не подскажите как именно это адаптировать для такого меню?

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

<nav id="catalog_menu" class="hidden_small">                 
    {function name=categories_tree}
        {if $categories}
            <ul>
            {foreach $categories as $c}
                {if $c->visible}
                    {if $c->children|count > 1}
                    <li class="parent{if $category->id == $c->id} opened{/if}">
                        <a class="{if $category->id == $c->id} selected{/if}" {if $c->url !== $category->url}href="{$lang_link}catalog/{$c->url}"{else}style="color:#ff81a3;"{/if}>
                         
                          {if $c->image}
                          <i class="cat_icon">
                             <img src="{$c->image|resize:23:23:false:$config->resized_categories_dir}" alt="{$c->name|escape}" />
                          </i>
                    {/if}
                         
                            <span>{$c->name|escape}</span>
                            <i class="angle_icon hidden_small">{include file='svg_sprite.tpl' svgId='angle_icon'}</i>
                        </a>

                        <i class="cat_switch hidden_lg">{include file='svg_sprite.tpl' svgId='angle_icon'}</i>
                   
                        <div class="submenu{if $c->image} subimage{/if}">
                            {categories_tree categories=$c->subcategories}
                           
                        </div>
                    </li>
                    {else}
                   <li class="parent{if $category->id == $c->id} opened{/if}">
                        <a class="{if $category->id == $c->id} selected{/if}" {if $c->url !== $category->url}href="{$lang_link}catalog/{$c->url}"{else}style="color:#ff81a3;"{/if}>
                         
                          {if $c->image}
                          <i class="cat_icon">
                             <img src="{$c->image|resize:23:23:false:$config->resized_categories_dir}" alt=">{$c->name|escape}"/>
                          </i>
                    {/if}
                         
                            <span>{$c->name|escape}</span>
                           
                        </a>

                     
                    </li>
                    {/if}
                {/if}
            {/foreach}
            </ul>
        {/if}
    {/function}
    {categories_tree categories=$categories}
</nav>

voland
voland
Репутация: 1
Сообщения: 9
Зарегистрирован: 26.03.2018
С нами: 6 лет

Сообщение #5 voland » 30.03.2018, 09:06

Вы можете дать ссылку вашего сайта? Я посмотрю код

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #6 Julius123 » 30.03.2018, 19:06

voland писал(а):Вы можете дать ссылку вашего сайта? Я посмотрю код

Вот этот шаблон стоит http://carol.simplamarket.net

voland
voland
Репутация: 1
Сообщения: 9
Зарегистрирован: 26.03.2018
С нами: 6 лет

Сообщение #7 voland » 02.04.2018, 09:21

Вставь этот код в style.css
Цвет замени на свой
.catalog_item:hover > .catalog_link
{
color: #1480a8;
}

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #8 Julius123 » 02.04.2018, 17:17

voland писал(а):Вставь этот код в style.css
Цвет замени на свой
.catalog_item:hover > .catalog_link
{
color: #1480a8;
}
Что-то не работает. Я вообще не совсем понимаю как можно с помощью проверять что открыта подкатегория

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

Сообщение #9 korshunov » 03.04.2018, 07:21

Julius123 писал(а):Я вообще не совсем понимаю как можно с помощью проверять что открыта подкатегория

Надо использовать $category->path. Возможно, простым условием не выйдет, придется цикл выполнять.

Если требуется глубина вложенности минимальная, то, может, достаточно и $category->parent_id...

voland
voland
Репутация: 1
Сообщения: 9
Зарегистрирован: 26.03.2018
С нами: 6 лет

Сообщение #10 voland » 03.04.2018, 07:25

http://prntscr.com/j03ose все работает. Может кэш не почистил?

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #11 Julius123 » 03.04.2018, 07:44

voland писал(а):http://prntscr.com/j03ose все работает. Может кэш не почистил?
У меня скорее всего немного старее версия шаблона и там немного другой код. У меня на сайте установлен модуль PageSpeed поэтому исходный код сжат и он не читаемый на сайте. Только такой исходный код::

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

<nav id="catalog_menu" class="hidden_small">                 
    {function name=categories_tree}
        {if $categories}
            <ul>
            {foreach $categories as $c}
                {if $c->visible}
                    {if $c->children|count > 1}
                    <li class="parent{if $category->id == $c->id} opened{/if}">
                        <a class="{if $category->id == $c->id} selected{/if}" {if $c->url !== $category->url}href="{$lang_link}catalog/{$c->url}"{else}style="color:#ff81a3;"{/if}>
                         
                          {if $c->image}
                          <i class="cat_icon">
                             <img src="{$c->image|resize:23:23:false:$config->resized_categories_dir}" alt="{$c->name|escape}" />
                          </i>
                    {/if}
                         
                            <span>{$c->name|escape}</span>
                            <i class="angle_icon hidden_small">{include file='svg_sprite.tpl' svgId='angle_icon'}</i>
                        </a>

                        <i class="cat_switch hidden_lg">{include file='svg_sprite.tpl' svgId='angle_icon'}</i>
                   
                        <div class="submenu{if $c->image} subimage{/if}">
                            {categories_tree categories=$c->subcategories}
                           
                        </div>
                    </li>
                    {else}
                   <li class="parent{if $category->id == $c->id} opened{/if}">
                        <a class="{if $category->id == $c->id} selected{/if}" {if $c->url !== $category->url}href="{$lang_link}catalog/{$c->url}"{else}style="color:#ff81a3;"{/if}>
                         
                          {if $c->image}
                          <i class="cat_icon">
                             <img src="{$c->image|resize:23:23:false:$config->resized_categories_dir}" alt=">{$c->name|escape}"/>
                          </i>
                    {/if}
                         
                            <span>{$c->name|escape}</span>
                           
                        </a>

                     
                    </li>
                    {/if}
                {/if}
            {/foreach}
            </ul>
        {/if}
    {/function}
    {categories_tree categories=$categories}
</nav>



korshunov писал(а):Надо использовать $category->path. Возможно, простым условием не выйдет, придется цикл выполнять.

Если требуется глубина вложенности минимальная, то, может, достаточно и $category->parent_id...

У меня только один уровень вложенности, Категория -> Подкатегория, может есть какой пример?

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

Сообщение #12 korshunov » 03.04.2018, 07:51

{if $c->id==$category->id || $c->parent_id==$category->id}

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #13 Julius123 » 03.04.2018, 07:56

korshunov писал(а):{if $c->id==$category->id || $c->parent_id==$category->id}
Почему-то это условие ничего не делает пишу {if $c->id==$category->id || $c->parent_id==$category->id}style="color:#000;"{/if}

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

Сообщение #14 korshunov » 03.04.2018, 08:04

Зависит от многого, к частности, в каком месте пишете, на какой странице смотрите...
Надо бы URL давать...


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

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


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

   

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

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

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