motya88 Опубликовано 29 июня, 2016 Жалоба Поделиться Опубликовано 29 июня, 2016 Скажите как правильно сделать меню.С выводом под категорий,чтоб было как на рисунке.Пробовал примеры,но там под категории наследуют свойства родителя. Итак есть такое меню: <ul class="left-menu"> <li id="id0" class="parent"> <a href="">Категория_1<span class="arrow"></span></a> <div class="catalog-section-childs" style=""> <div class="catalog-section-child"> <a href=""> <span class="child"> <span class="image"> <img src="" width="50" height="50" alt=""> </span> <span class="text">Подкатегория 1</span> </span> </a> </div> <div class="catalog-section-child"> <a href=""> <span class="child"> <span class="image"> <img src="" width="50" height="50" alt=""> </span> <span class="text">Подкатегория 2</span> </span> </a> </div> </div> </li> <li> <a href="">Категория_2<span class="arrow"></span></a> </li> </ul> Как написать условия вывода категорий, что если у категории нет под категории, то у <li> такой то стиль, а если у категории есть под категория, то у нее другой.Буду благодарен если Вы поможете!Взялся просто учиться и разбираться. Для этого выбрал шаблон и пытаюсь его реализовать. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 июня, 2016 Жалоба Поделиться Опубликовано 29 июня, 2016 Наследует все верно, есть одна сложная конструкция вида: <ul> {foreach $categories as $c} {if $c->visible} <li>{$c->name}</li> {/if} {if $c->subcategories} <ul> {foreach $c->subcategories as $sc} {if $sc->visible} <li>{$sc->name}</li> {/if} {/foreach} </ul> {/if} {/foreach} {/ul} Вроде все верно написал Эта конструкция для 2-х уровней вложенности, если нужно 3-4-5, то делайте по аналогии {foreach $sc->subcategories as $ssc} и т.д. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 июня, 2016 Жалоба Поделиться Опубликовано 29 июня, 2016 Как написать условия вывода категорий, что если у категории нет под категории, то у <li> такой то стиль, а если у категории есть под категория, то у нее другой.К сожалению, в шаблоне стандартно НЕТ возможности в принципе полностью правильно написать такое условие. Обычно используют {if $c->subcategories}...{/if}, но работает не совсем правильно, так как при этом не учитывается активность категорий. Чтобы было совсем правильно, надо дорабатывать в PHP. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 июня, 2016 Жалоба Поделиться Опубликовано 29 июня, 2016 Обычно используют {if $c->subcategories}...{/if}, но работает не совсем правильно, так как при этом не учитывается активность категорий. Чтобы было совсем правильно, надо дорабатывать в PHP.С этим согласен, есть такой косяк Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 29 июня, 2016 Автор Жалоба Поделиться Опубликовано 29 июня, 2016 (изменено) Наследует все верно, есть одна сложная конструкция вида: <ul> {foreach $categories as $c} {if $c->visible} <li>{$c->name}</li> {/if} {if $c->subcategories} <ul> {foreach $c->subcategories as $sc} {if $sc->visible} <li>{$sc->name}</li> {/if} {/foreach} </ul> {/if} {/foreach} {/ul} Вроде все верно написал Эта конструкция для 2-х уровней вложенности, если нужно 3-4-5, то делайте по аналогии {foreach $sc->subcategories as $ssc} и т.д.Блин, что то пока не получилось адаптировать под меню которое я выложил НЕ могли бы вы показать, как это на примере с моим меню?? Изменено 29 июня, 2016 пользователем motya88 Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 30 июня, 2016 Жалоба Поделиться Опубликовано 30 июня, 2016 А в чем проблема с активностью?При желании можно обойти категории в шаблоне 2 раза - первый раз - посчитать активные, если их ЕСТЬ - то во второй раз их вывести. Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 30 июня, 2016 Автор Жалоба Поделиться Опубликовано 30 июня, 2016 Так как мне быть?? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 30 июня, 2016 Жалоба Поделиться Опубликовано 30 июня, 2016 Так как мне быть?? Основные пути:1. Изучить основы работы HTML, PHP, Smarty. Как только Вам будет понятен намек, который сделал Noxter в #2, это и будет означать возросший уровень знаний.2. Предложить специалистам выполнить нужное за денежку. 1 - познавательно, полезно, но долго и требует немалых умственных усилий2 - быстро, эффективно, но требует материальных затрат.Выбирайте более подходящий именно для Вас вариант. Можно попробовать еще3. Ждать, когда кто-то из мастеров сжалится и выложит для Вас полное решение. Бывают иногда на форуме такие энтузиасты. Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 30 июня, 2016 Автор Жалоба Поделиться Опубликовано 30 июня, 2016 Наследует все верно, есть одна сложная конструкция вида: <ul> {foreach $categories as $c} {if $c->visible} <li>{$c->name}</li> {/if} {if $c->subcategories} <ul> {foreach $c->subcategories as $sc} {if $sc->visible} <li>{$sc->name}</li> {/if} {/foreach} </ul> {/if} {/foreach} {/ul} Вроде все верно написал Эта конструкция для 2-х уровней вложенности, если нужно 3-4-5, то делайте по аналогии {foreach $sc->subcategories as $ssc} и т.д. Подскажите, где косяк у меня? У меня получилось вот так (см скрин) Вот какой код: {function name=categories_tree} {if $categories} <ul class="left-menu"> {foreach $categories as $c} {if $c->visible} <li> <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> </li> {/if} {if $c->subcategories} {foreach $c->subcategories as $sc} {if $sc->visible} <li class="parent"> <a {if $category->id == $sc->id}class="selected"{/if} href="catalog/{$sc->url}" data-category="{$sc->id}">{$sc->name|escape}<span class="arrow"></span></a> <div class="catalog-section-childs" style=""> <div class="catalog-section-child"> <a {if $category->id == $sc->id}class="selected"{/if} href="catalog/{$sc->url}" data-category="{$sc->id}"> <span class="child"> <span class="image"> {if $c->image} <img src="{$config->categories_images_dir}{$c->image}" width="50" height="50" alt="{$sc->name|escape}"> {/if} </span> <span class="text">{$sc->name|escape}</span> </span> </a> </div> </div> </li> {/if} {/foreach} {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 30 июня, 2016 Автор Жалоба Поделиться Опубликовано 30 июня, 2016 Я прям чую, осталось чуток, подскажите друзья Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 30 июня, 2016 Жалоба Поделиться Опубликовано 30 июня, 2016 Я прям чую, осталось чуток, подскажите друзья Вам кто-то говорил использовать{function name=categories_tree}, а?Уберите, и в конце кода тоже. Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 30 июня, 2016 Автор Жалоба Поделиться Опубликовано 30 июня, 2016 Вам кто-то говорил использовать{function name=categories_tree}, а?Уберите, и в конце кода тоже.Убрал строки,как вы и сказали.Текущая проблема:1)Пылесосы и миксеры -являются под категорией бытовой техники, а у меня на рисунке это видно -нет. 2)Пылесосы и Миксеры имеют класс "parent", а должна иметь этот класс категория бытовая техника. Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 30 июня, 2016 Автор Жалоба Поделиться Опубликовано 30 июня, 2016 Укажите плиз где ошибка Цитата Ссылка на сообщение Поделиться на другие сайты
Andrey Terkin Опубликовано 1 июля, 2016 Жалоба Поделиться Опубликовано 1 июля, 2016 {if $categories} <ul class="left-menu"> {foreach $categories as $c} {if $c->visible} <li id="id{$c->id}" {if $c->subcategories}class="parent"{/if}> <a href="catalog/{$c->url}">{$c->name|escape} {if $c->subcategories}<span class="arrow"></span>{/if}</a> {if $c->subcategories} <div class="catalog-section-childs" style=""> {foreach $c->subcategories as $sc} {if $sc->visible} <div class="catalog-section-child"> <a href="catalog/{$sc->url}"> <span class="child"> {if $sc->image} <span class="image"> <img src="{$config->categories_images_dir}{$sc->image}" width="50" height="50" alt="{$sc->name|escape}"> </span> {/if} <span class="text">{$sc->name|escape}</span> </span> </a> </div> {/if} {/foreach} </div> {/if} </li> {/if} {/foreach} </ul> {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 1 июля, 2016 Автор Жалоба Поделиться Опубликовано 1 июля, 2016 {if $categories} <ul class="left-menu"> {foreach $categories as $c} {if $c->visible} <li id="id{$c->id}" {if $c->subcategories}class="parent"{/if}> <a href="catalog/{$c->url}">{$c->name|escape} {if $c->subcategories}<span class="arrow"></span>{/if}</a> {if $c->subcategories} <div class="catalog-section-childs" style=""> {foreach $c->subcategories as $sc} {if $sc->visible} <div class="catalog-section-child"> <a href="catalog/{$sc->url}"> <span class="child"> {if $sc->image} <span class="image"> <img src="{$config->categories_images_dir}{$sc->image}" width="50" height="50" alt="{$sc->name|escape}"> </span> {/if} <span class="text">{$sc->name|escape}</span> </span> </a> </div> {/if} {/foreach} </div> {/if} </li> {/if} {/foreach} </ul> {/if} Спасибо, Большое! ВСЕ проблема решена. Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 1 июля, 2016 Автор Жалоба Поделиться Опубликовано 1 июля, 2016 Блин, рано обрадовался(( Теперь почему-то когда перешел на под категорию к примеру "Пылесосы" меню перестало показывать подкатегории(( Цитата Ссылка на сообщение Поделиться на другие сайты
Andrey Terkin Опубликовано 1 июля, 2016 Жалоба Поделиться Опубликовано 1 июля, 2016 Блин, рано обрадовался(( Теперь почему-то когда перешел на под категорию к примеру "Пылесосы" меню перестало показывать подкатегории((не должно такого быть Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 1 июля, 2016 Автор Жалоба Поделиться Опубликовано 1 июля, 2016 не должно такого бытьНу вот у меня как раз так и есть. Находясь в подкатегории при наведении на родительскую категорию меню не выпадает Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 1 июля, 2016 Автор Жалоба Поделиться Опубликовано 1 июля, 2016 не должно такого бытьПростите, Все я нашел косяк у себя. Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 1 июля, 2016 Автор Жалоба Поделиться Опубликовано 1 июля, 2016 Скажите почему в меню горизонтальном пункт Главная не работает? <ul class="store-horizontal"> {foreach $pages as $p} {* Выводим только страницы из первого меню *} {if $p->menu_id == 1} <li> {if $page && $page->id == $p->id} <a class="root-item-selected" data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a> {else} <a class="root-item" data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a> {/if} </li> {/if} {/foreach} </ul> Спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 1 июля, 2016 Жалоба Поделиться Опубликовано 1 июля, 2016 (изменено) Скажите почему в меню горизонтальном пункт Главная не работает? <ul class="store-horizontal"> {foreach $pages as $p} {* Выводим только страницы из первого меню *} {if $p->menu_id == 1} <li> {if $page && $page->id == $p->id} <a class="root-item-selected" data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a> {else} <a class="root-item" data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a> {/if} </li> {/if} {/foreach} </ul> СпасибоЧто значит "не работает"???Это понимать можно по разному, а потому как у нас экстрасенсов на форуме нет, соизвольте писать свои глупые вопросы ТОЧНО! Изменено 1 июля, 2016 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 1 июля, 2016 Автор Жалоба Поделиться Опубликовано 1 июля, 2016 Что значит "не работает"???Это понимать можно по разному, а потому как у нас экстрасенсов на форуме нет, соизвольте писать свои глупые вопросы ТОЧНО!Проблема заключается в том, что я находясь на странице к примеру БЛОГ, нажав Главная не могу перейти на нее. Если посмотреть код, то браузер пункт меню отображает так <a class="root-item" href="" data-page="1">Главная</a> я так понимаю должно быть <a class="root-item" href="/" data-page="1">Главная</a> Как это сделать?? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 1 июля, 2016 Жалоба Поделиться Опубликовано 1 июля, 2016 Скажите почему в меню горизонтальном пункт Главная не работает? На демо-сайте все прекрасно работает. Если не работает на Вашем сайте, то скорее всего из-за Ваших переделок. Причин может быть много разных.Если б Вы дали ссылку, можно было бы сказать определеннее. Цитата Ссылка на сообщение Поделиться на другие сайты
Andrey Terkin Опубликовано 1 июля, 2016 Жалоба Поделиться Опубликовано 1 июля, 2016 Проблема заключается в том, что я находясь на странице к примеру БЛОГ, нажав Главная не могу перейти на нее. Если посмотреть код, то браузер пункт меню отображает так <a class="root-item" href="" data-page="1">Главная</a> я так понимаю должно быть <a class="root-item" href="/" data-page="1">Главная</a> Как это сделать??Посмотрите в админке должна быть страница у которой в адресе есть слеш / Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 3 июля, 2016 Жалоба Поделиться Опубликовано 3 июля, 2016 Посмотрите в админке должна быть страница у которой в адресе есть слеш / да ну? по умолчанию у главной нет никакого слеша. и все работает.. Проблема заключается в том, что я находясь на странице к примеру БЛОГ, нажав Главная не могу перейти на нее. Если посмотреть код, то браузер пункт меню отображает так <a class="root-item" href="" data-page="1">Главная</a> я так понимаю должно быть <a class="root-item" href="/" data-page="1">Главная</a> Как это сделать??на демо точно так же https://yadi.sk/i/zzPp9D4HsyBiU и все работает. скорее у вас в чем-то другом проблема. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.