sergeypay Опубликовано 22 июля, 2015 Жалоба Поделиться Опубликовано 22 июля, 2015 (изменено) Требуется на странице /catalog вывести все названия категорий 1 уровня, соответственно если зайти в категорию должно отображаться подкатегории. В общем у меня все работает как нужно, когда заходишь в категорию 1 уровня подкатегории 2 уровня отображаются отлично, но когда заходишь на страницу site.ru/catalog не отображаются все Главные категории 1 уровня. подскажите как вывести на странице site.ru/catalog все названия категорий 1 уровня? Код полу рабочего варианта в .htaccess добавлено RewriteRule ^catalog/?$ index.php?module=ProductsView [L,QSA] для отображения страницы site.ru/catalog и убрать ошибку что такой страницы не существует. {if $page->url=='catalog'}// пытался отобразить вывыд всех категорий 1 уровня если url == catalog, но в данном случае url вообще не выводится, а так бы был рабочий вариант; но если убрать эту проверку то выводится и категории 1 уровня и подкатегории, вообщем если убрать вывод категорий 1 уровня в подкатегориях вариант вполне будет рабочий, помогите плиз. {if $category} <ul class="catalog_list"> {foreach $category as $c} {if $c->visible} <li class="catalog_item"> <a href="catalog/{$c->url}"> <div class="catalog_image"> {if $c->image} <img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}" title="{$c->name|escape}"> {else} <img src="design/{$settings->theme|escape}/images/bg/nofoto.png" alt="{$c->name|escape}" title="{$c->name|escape}"> {/if} </div> <span class="catalog_name">{$c->name|escape}</span> </a> </li> {/if} {/foreach} </ul> <div class="clear_dot"></div> {/if} {if $category->subcategories} <ul class="catalog_list"> {foreach $category->subcategories as $c} {if $c->visible} <li class="catalog_item"> <a href="catalog/{$c->url}"> <div class="catalog_image"> {if $c->image} <img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}" title="{$c->name|escape}"> {else} <img src="design/{$settings->theme|escape}/images/bg/nofoto.png" alt="{$c->name|escape}" title="{$c->name|escape}"> {/if} </div> <span class="catalog_name">{$c->name|escape}</span> </a> </li> {/if} {/foreach} </ul> <div class="clear_dot"></div> {/if} {/if} Изменено 22 июля, 2015 пользователем sergeypay Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 22 июля, 2015 Жалоба Поделиться Опубликовано 22 июля, 2015 почему вы не используете ф-ю древовидного вывода категорий? Цитата Ссылка на сообщение Поделиться на другие сайты
sergeypay Опубликовано 22 июля, 2015 Автор Жалоба Поделиться Опубликовано 22 июля, 2015 почему вы не используете ф-ю древовидного вывода категорий?пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен. Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Noxter Опубликовано 22 июля, 2015 Решение Жалоба Поделиться Опубликовано 22 июля, 2015 пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен.Вы забыли создать страницу в админке URL у которой должен быть catalog, из за этого и не срабатывает условие: {if $page->url=='catalog'} Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 22 июля, 2015 Жалоба Поделиться Опубликовано 22 июля, 2015 пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен. напишите в личку. еще {foreach $category as $c} не будет работать. Цитата Ссылка на сообщение Поделиться на другие сайты
sergeypay Опубликовано 23 июля, 2015 Автор Жалоба Поделиться Опубликовано 23 июля, 2015 . еще {foreach $category as $c} не будет работать.Да, верно, позже заметил. {foreach $categories as $c} Вы забыли создать страницу в админке URL у которой должен быть catalog, из за этого и не срабатывает условие: {if $page->url=='catalog'} Спасибо большое за подсказку, Именно то что нужно было спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
sergeypay Опубликовано 23 июля, 2015 Автор Жалоба Поделиться Опубликовано 23 июля, 2015 Не нахожу кнопки чтобы поставить что тема решена? Цитата Ссылка на сообщение Поделиться на другие сайты
akvk Опубликовано 4 августа, 2016 Жалоба Поделиться Опубликовано 4 августа, 2016 А подскажите пожалуйста как после вывода категорий на странице каталог убрать вывод всей продукции? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 5 августа, 2016 Жалоба Поделиться Опубликовано 5 августа, 2016 Подобным приемом: вместо <!--Каталог товаров-->{if $products} поставить <!--Каталог товаров-->{if $products && $page->url != 'catalog'} Цитата Ссылка на сообщение Поделиться на другие сайты
akvk Опубликовано 5 августа, 2016 Жалоба Поделиться Опубликовано 5 августа, 2016 Подобным приемом: вместо <!--Каталог товаров-->{if $products} поставить <!--Каталог товаров-->{if $products && $page->url != 'catalog'}Спасибо за помощь все работает!Если кому понадобится решение, то я сделал так: <!--Каталог товаров--> {if $products && $page->url != 'catalog'} <!-- Список товаров--> ... Здесь блок страниц товаров {elseif $page->url=='catalog'} <!-- Страница каталог --> {else} <h3>Товары не найдены</h3> {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
akvk Опубликовано 5 августа, 2016 Жалоба Поделиться Опубликовано 5 августа, 2016 Kors, а подскажи пожалуйста каким условием можно разбить вывод в цикле товаров в bootstrap разметки.Есть три колонки: <div class="row"></div><div class="row row-two"></div> <div class="row row-three"></div> Нужно при выводе категорий подменить класс на следующий {if $categories} {foreach $categories as $c} <div class="row"> (Вот здесь нужно подменить класс row на row row-two после вывода 3 записей и так далее на класс row row-three.) {if $c->visible} <a href="catalog/{$c->url}"> <div class="catalog_image"> {if $c->image} <img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}" title="{$c->name|escape}"> {/if} </div> <span>{$c->name|escape}</span> </a> {/if} </div> {/foreach} {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 5 августа, 2016 Жалоба Поделиться Опубликовано 5 августа, 2016 Использовать что-то типа {if $c@iteration<=3} Вывод с первого по третий {elseif $c@iteration<=6} Вывод с 4-го по 6-ой {else} Вывод с 6-го и далее {/if} Может не совсем правильно работать, если есть отключенные категории. Кстати, в Вашем коде тоже есть этот недостаток, могут выводиться пустые <div class="row"></div>. Для совсем корректной работы надо еще усложнять... Цитата Ссылка на сообщение Поделиться на другие сайты
akvk Опубликовано 5 августа, 2016 Жалоба Поделиться Опубликовано 5 августа, 2016 Использовать что-то типа{if $c@iteration<=3}Вывод с первого по третий{elseif $c@iteration<=6}Вывод с 4-го по 6-ой{else}Вывод с 6-го и далее{/if} Может не совсем правильно работать, если есть отключенные категории.Кстати, в Вашем коде тоже есть этот недостаток, могут выводиться пустые <div class="row"></div>.Для совсем корректной работы надо еще усложнять...Спасибо Вам огромное за помощь! Цитата Ссылка на сообщение Поделиться на другие сайты
akvk Опубликовано 7 августа, 2016 Жалоба Поделиться Опубликовано 7 августа, 2016 Использовать что-то типа{if $c@iteration<=3}Вывод с первого по третий{elseif $c@iteration<=6}Вывод с 4-го по 6-ой{else}Вывод с 6-го и далее{/if} Может не совсем правильно работать, если есть отключенные категории.Кстати, в Вашем коде тоже есть этот недостаток, могут выводиться пустые <div class="row"></div>.Для совсем корректной работы надо еще усложнять...Извините пожалуйста, но у меня похожий вопрос, но я никак не могу сообразить как сделать.А как сделать, чтобы в{foreach $products as $product}<div class="row"> ----- Здесь три записи ---- </div> <div class="row"> ----- Здесь три записи ---- </div> <div class="row"> ----- Здесь три записи ---- </div>{/foreach}и до бесконечности. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 7 августа, 2016 Жалоба Поделиться Опубликовано 7 августа, 2016 {foreach $products as $product} {if $product@first || ($product@iteration - 1) is div by 3}<div class="row">{/if} ..... {if $product@last || $product@iteration is div by 3}</div>{/if} {/foreach} Цитата Ссылка на сообщение Поделиться на другие сайты
akvk Опубликовано 8 августа, 2016 Жалоба Поделиться Опубликовано 8 августа, 2016 {foreach $products as $product} {if $product@first || ($product@iteration - 1) is div by 3}<div class="row">{/if} ..... {if $product@last || $product@iteration is div by 3}</div>{/if} {/foreach} Огромнейшее человеческое спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 14 ноября, 2020 Жалоба Поделиться Опубликовано 14 ноября, 2020 (изменено) у меня стоит вывод название категории к которой принадлежит товар, их может быть несколько (чайник, электро чайник и тд), как сделать вывод чтобы отображало название первой категории а не второй, а то в каталоге может показывать название второй категории, а в карточке товара первой? Изменено 14 ноября, 2020 пользователем get31 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.