Вывод подкатегорий с картинками?

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

Casser
Casser
Репутация: 0
Сообщения: 56
Зарегистрирован: 07.01.2020
С нами: 4 года 2 месяца

Сообщение #1 Casser » 15.01.2020, 06:47

Как сделать вывод в главной категории подкатегорий с картинками самих подкатегории?
Например зашли в главную категорию https://lite.demookay.com/catalog/tehnika-dlya-doma техника для дома
И чтобы там отображались вместо товаров просто подкатегории Радиаторы отопления и Водонагреватели с картинками и с ссылками на сами подкатегории.
А главная категория была пустой без товаров, если в них не добавлены товары.

Помогите пожалуйста!
Версия та же что и на демо.

Master
Master
Репутация: 28
Сообщения: 84
Зарегистрирован: 25.01.2016
С нами: 8 лет 2 месяца

Сообщение #2 Master » 15.01.2020, 07:05

В файле design/okay_shop/html/products.tpl

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

{if $category->subcategories}
            <div class="main-products main-products__featured container">
                <div class="block block--boxed block--border">
                    <div class="f_row cat_grid">
                        {foreach $category->subcategories as $subc}
                            <div class="cat_grid__col d-flex f_col-6 f_col-sm-4 f_col-lg-3 f_col-xl-2">
                                <a class="cat_grid__item d-flex flex-column" href="{url_generator route='category' url=$subc->url}">
                                    <div class="cat_grid__image d-flex align-items-center justify-content-center">
                                        {if $subc->image}
                                            <img  src="{$subc->image|resize:100:100:false:$config->resized_categories_dir}" alt="{$subc->name}">
                                        {else}
                                            {include file="svg.tpl" svgId="no_image"}
                                        {/if}
                                    </div>
                                    <span class="cat_grid__name">{$subc->name|escape}</span>
                                </a>
                            </div>
                        {/foreach}
                    </div>
                </div>
            </div>
        {/if}
Последний раз редактировалось Master 15.01.2020, 15:39, всего редактировалось 1 раз.

Casser
Casser
Репутация: 0
Сообщения: 56
Зарегистрирован: 07.01.2020
С нами: 4 года 2 месяца

Сообщение #3 Casser » 15.01.2020, 07:22

Master, подскажите пожалуйста куда это вставить?

мой код:

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

{* The Categories page *}

{* The canonical address of the page *}
{if $set_canonical || $self_canonical}
    {if $category}
        {$canonical="/catalog/{$category->url}" scope=parent}
    {elseif $brand}
        {$canonical="/brands/{$brand->url}" scope=parent}
    {elseif $page->url=='discounted'}
        {$canonical="/discounted" scope=parent}
    {elseif $page->url=='bestsellers'}
        {$canonical="/bestsellers" scope=parent}
    {elseif $keyword}
        {$canonical="/all-products" scope=parent}
    {else}
        {$canonical="/all-products" scope=parent}
    {/if}
{/if}

{* Sidebar with filters *}
<div class="sidebar">
    <div class="sidebar_top fn_features">
     
    {include file='features.tpl'}
    </div>
</div>

<div class="products_container">
 
    {* The page heading *}
    {if $keyword}
        <h1 class="h1"><span data-language="products_search">{$lang->products_search}</span> {$keyword|escape}</h1>
 
    {elseif $page}
        <h1 class="h1">
            <span data-page="{$page->id}">{if $page->name_h1|escape}{$page->name_h1|escape}{else}{$page->name|escape}{/if}</span>
        </h1>
    {elseif $seo_filter_pattern->h1}
        <h1 class="h1">{$seo_filter_pattern->h1|escape}</h1>
    {else}
        <h1 class="h1"><span data-category="{$category->id}">{if $category->name_h1|escape}{$category->name_h1|escape}{else}{$category->name|escape}{/if}</span> {$brand->name|escape} {$filter_meta->h1|escape}</h1>
    {/if}

    {if $current_page_num == 1 && ($category->annotation || $brand->annotation) && !$is_filter_page && !$smarty.get.page && !$smarty.get.sort}
        <div class="block padding">
            {* Краткое описание категории *}
            {$category->annotation}


        </div>
    {/if}


   

    {* Product list *}
    <div id="fn_products_content" class="fn_categories products clearfix">
        {include file="products_content.tpl"}
    </div>

    {if $products}
        {* Friendly URLs Pagination *}
        <div class="fn_pagination">
            {include file='chpu_pagination.tpl'}
        </div>
    {/if}
   
    {if $current_page_num == 1 && $page->description}
        <div class="block padding">
            {$page->description}
        </div>
    {/if}

    {if $current_page_num == 1}
        {*SEO шаблон описания страницы фильтра*}
        {if $seo_filter_pattern->description}
            <div class="block padding">
                {$seo_filter_pattern->description}
            </div>
        {elseif (!$category || !$brand) && ($category->description || $brand->description) && !$is_filter_page && !$smarty.get.page && !$smarty.get.sort}
            <div class="block padding">
                {* Описание категории *}
                {$category->description}

                {* Описание бренда *}
                {$brand->description}
            </div>
        {/if}
    {/if}

</div>

{* Sidebar with browsed products *}
<div class="sidebar sidebar_bottom block">
    {* Browsed products *}
    {get_browsed_products var=browsed_products limit=4}
    {if $browsed_products}
        <div class="h2">{$lang->features_browsed}</div>
        <div class="browsed clearfix">
            {foreach $browsed_products as $browsed_product}
                <div class="browsed_item col-xs-6 col-sm-3 col-lg-6">
                    <a href="{$lang_link}products/{$browsed_product->url}">
                        {if $browsed_product->image->filename}
                            <img src="{$browsed_product->image->filename|resize:50:50}" alt="{$browsed_product->name|escape}" title="{$browsed_product->name|escape}">
                        {else}
                            <img width="50" height="50" src="design/{$settings->theme}/images/no_image.png" alt="{$browsed_product->name|escape}" title="{$browsed_product->name|escape}"/>
                        {/if}
                    </a>
                </div>
            {/foreach}
        </div>
    {/if}
</div>


Добавлено спустя 12 минут 49 секунд:
Пробовал вставлять ваш код внутрь, сайт не открывается, подскажите куда и как его вставить?

Master
Master
Репутация: 28
Сообщения: 84
Зарегистрирован: 25.01.2016
С нами: 8 лет 2 месяца

Сообщение #4 Master » 15.01.2020, 15:38

Ой, извините, у вас Lite, я выше дал код на OkayPro3.3.5
В вашем случае надо вставить код

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

 {if $category->subcategories}
   <div class="row cat_grid">
      {foreach $category->subcategories as $subc}
         <div class="col-sm-4 col-lg-3 cat_grid_col">
            <a class="cat_grid__item" href="{$lang_link}catalog/{$subc->url}">
               <div class="cat_grid__image">
                  {if $subc->image}
                     <img  src="{$subc->image|resize:200:200:false:$config->resized_categories_dir}" alt="{$subc->name}">
                  {else}
                     <img src="design/{$settings->theme}/images/no_image.png"  alt="{$subc->name}"/>
                  {/if}
               </div>
               <span class="cat_grid__name">{$subc->name|escape}</span>
            </a>
         </div>
      {/foreach}
   </div>
{/if}

после h1

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

   {* The page heading *}
    {if $keyword}
        <h1 class="h1"><span data-language="products_search">{$lang->products_search}</span> {$keyword|escape}</h1>
 
    {elseif $page}
        <h1 class="h1">
            <span data-page="{$page->id}">{if $page->name_h1|escape}{$page->name_h1|escape}{else}{$page->name|escape}{/if}</span>
        </h1>
    {elseif $seo_filter_pattern->h1}
        <h1 class="h1">{$seo_filter_pattern->h1|escape}</h1>
    {else}
        <h1 class="h1"><span data-category="{$category->id}">{if $category->name_h1|escape}{$category->name_h1|escape}{else}{$category->name|escape}{/if}</span> {$brand->name|escape} {$filter_meta->h1|escape}</h1>
    {/if}

Casser
Casser
Репутация: 0
Сообщения: 56
Зарегистрирован: 07.01.2020
С нами: 4 года 2 месяца

Сообщение #5 Casser » 17.01.2020, 06:24

Master, спасибо большое, получилось

Alex Artezia
Alex Artezia
Репутация: 0
Сообщения: 9
Зарегистрирован: 20.03.2020
С нами: 4 года

Сообщение #6 Alex Artezia » 23.07.2020, 15:04

Спасибо Master, на лицензии 3.5 отлично работает !
И можно дальше играться с оформлением.

Family Mall
Family Mall
Репутация: 2
Сообщения: 42
Зарегистрирован: 04.08.2017
С нами: 6 лет 7 месяцев

Сообщение #7 Family Mall » 28.09.2020, 09:20

Master, большое спасибо. Мне тоже пригодился вывод подкатегорий.

Casser
Casser
Репутация: 0
Сообщения: 56
Зарегистрирован: 07.01.2020
С нами: 4 года 2 месяца

Сообщение #8 Casser » 22.04.2021, 05:30


Aleks
Aleks
Репутация: 56
Сообщения: 382
Зарегистрирован: 24.05.2021
С нами: 2 года 10 месяцев

Сообщение #9 Aleks » 20.01.2023, 15:07

Код, приведенный Master_ом 15.01.2020 для v3.3.5, хорошо работает и в v4.2.1 и v4.3.1.
Одно неудобство: выводится весь список товаров данной категории ниже блока картинок подкатегорий.

Max9
Max9
Репутация: 0
Сообщения: 4
Зарегистрирован: 10.03.2023
С нами: 1 год

Сообщение #10 Max9 » 10.03.2023, 20:48

Master, подскажите, пожалуйста, какой код и куда нужно вставлять в версии CMS 4.3.2, чтобы реализовать вывод подкатегорий с картинками?

Master
Master
Репутация: 28
Сообщения: 84
Зарегистрирован: 25.01.2016
С нами: 8 лет 2 месяца

Сообщение #11 Master » 11.03.2023, 06:57

Да все так же, как в самом первом моем ответе.
файл ваша тема/design/html/products.tpl после h1

Max9
Max9
Репутация: 0
Сообщения: 4
Зарегистрирован: 10.03.2023
С нами: 1 год

Сообщение #12 Max9 » 13.03.2023, 11:07

Master, Спасибо большое.


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

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


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

   

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

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

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