Тема: Изображение категорий

"Изображение - картинка категории, которая может быть использована для стилизации пункта меню в рубрикаторе товаров." - цитата из руководства.

Установил изображение для категории и нигде не нахожу его на сайте. Скажите хоть какой оператор отвечает за местоположение картинки чтобы в ручную вставить в шаблон

2

Re: Изображение категорий

В стандартных темах не предусмотрены картинки у категорий, но в вашей вы можете использовать их. Для обращения к картинке, загруженной к категории следует использовать в шаблонах:

<img src="{$dir.__image->getUrl(100, 100)}">

где $dir - это объект категории товара (\Catalog\Model\Orm\Dir)

Позволю себе немного шире расписать логику, пользуясь темой поста.
Обращение к {$dir.image} - вернет значение поля image из таблицы категорий. Этим можно пользоваться, так как если фото не загружено, то данной поле пустое, соответственно можно осуществлять проверку:

{if $dir.image} ... {/if}

А вот обращение к {$dir.__image} - позволяет получить объект поля, т.е. \RS\Orm\Type\Image, у которого уже можно вызвать метод getUrl() для получения ссылки на изображение необходимого размера.

Повысить оценку +1 Понизить оценку

Re: Изображение категорий

Спасибо большое roll

4

Re: Изображение категорий

Ребят а теперь объясните для людей которые после прочтения всех тем нифига не поняли )))
Как я понял для вывода изображений категории открываю /moduleview/catalog/list_products.tpl

Там нахожу

  <nav class="subCategory">
        {foreach $sub_dirs as $item}
        <a href="{urlmake category=$item._alias p=null f=null bfilter=null}">{$item.name}</a>
        {/foreach}
    </nav>

ПравильНО? и вставляю

 
        {if $dir.image}
        <img src="{$sub_dirs.__image->getUrl(100, 100)}">
        {/if}

и получаю

  <nav class="subCategory">
        {foreach $sub_dirs as $item}

        <h1>Всем привет сюда засунуть IMG</h1>
        {if $dir.image}
        <img src="{$sub_dirs.__image->getUrl(100, 100)}">
        {/if}


        <a href="{urlmake category=$item._alias p=null f=null bfilter=null}">{$item.name}</a>
        {/foreach}
    </nav>

Эхх не работает ) Ну не могу пока въехать ))

Повысить оценку Понизить оценку

5 Отредактировано Закусило Александр (15.03.2016 12:07:03)

Re: Изображение категорий

Ваша ошибка в том, что Вы перебираете массив с объектами категорий и пытаетесь получить изображение от массива. Естественно у Вас ни чего не получается.

{foreach $sub_dirs as $item}

У Вас объект категории будет в $item, а массив объектов в $sub_dirs. Т.е. правильно будет

{if $item.image}
    <img src="{$item.__image->getUrl(100, 100)}">
{/if}

А не

{if $dir.image}
     <img src="{$sub_dirs.__image->getUrl(100, 100)}">
{/if}

В вашем случае этих переменных не существует.

На будующее выводите содержимое переменных с помощью var_dump. Например:

<pre>
{var_dump($sub_dirs)}
<pre>

6

Re: Изображение категорий

Закусило Александр - спасибо все получилось! )

Повысить оценку Понизить оценку

Re: Изображение категорий

Не за что smile

8

Re: Изображение категорий

А вот у меня не получилось sad
Воевал, воевал и не выходит.

Пытаюсь вывести картинку категории в главном меню.

Беру category.tpl самое начало, где выводятся основные категории

<ul class="category">
        {hook name="catalog-blocks-category-category:list-item" title="{t}Категории товаров:элементы списка{/t}"}
        {foreach from=$dirlist item=dir}
        <li {if in_array($dir.fields.id, $pathids)}class="act"{/if} {$dir.fields->getDebugAttributes()}>
        <a href="{$dir.fields->getUrl()}">{$dir.fields.name}
         <span class="category_count">({$dir.fields.itemcount})</span></a>

и добавляю сюда вот это

<ul class="category">
        {hook name="catalog-blocks-category-category:list-item" title="{t}Категории товаров:элементы списка{/t}"}
        {foreach from=$dirlist item=dir}
        <li {if in_array($dir.fields.id, $pathids)}class="act"{/if} {$dir.fields->getDebugAttributes()}>

{foreach $sub_dirs as $item}
        {if $item.image}
               <img src="{$item.__image->getUrl(100, 100)}">
        {/if}
{/foreach}

        <a href="{$dir.fields->getUrl()}">{$dir.fields.name}
         <span class="category_count">({$dir.fields.itemcount})</span></a>

Картинка для категории в админке указана, но не выводится.

Результат хочется получить вот такой

http://s015.radikal.ru/i333/1606/8f/1ad2db90aadd.jpg

Re: Изображение категорий

<ul class="category">
        {hook name="catalog-blocks-category-category:list-item" title="{t}Категории товаров:элементы списка{/t}"}
        {foreach from=$dirlist item=dir}
        <li {if in_array($dir.fields.id, $pathids)}class="act"{/if} {$dir.fields->getDebugAttributes()}>
{if $dir.image}
               <img src="{$dir.__image->getUrl(100, 100)}">
        {/if}
        <a href="{$dir.fields->getUrl()}">{$dir.fields.name}
         <span class="category_count">({$dir.fields.itemcount})</span></a>

10 Отредактировано Sergey T. (06.06.2016 14:50:36)

Re: Изображение категорий

Все добавил как вы написали, но изображение все равно не выводится

  <ul class="category">
        {hook name="catalog-blocks-category-category:list-item" title="{t}Категории товаров:элементы списка{/t}"}
        {foreach from=$dirlist item=dir}
        <li {if in_array($dir.fields.id, $pathids)}class="act"{/if} {$dir.fields->getDebugAttributes()}>

        {if $dir.image}
               <img src="{$dir.__image->getUrl(30, 30)}">
        {/if}

        <a href="{$dir.fields->getUrl()}">{$dir.fields.name}


         <span class="category_count">({$dir.fields.itemcount})</span></a>



Хотя оно явно задано у категории:

http://s017.radikal.ru/i413/1606/62/a81aac55ea63.jpg




Если смотреть в инспекторе, то тоже пусто

http://s019.radikal.ru/i639/1606/24/39dde7845eb7.jpg

11 Отредактировано Андрей (06.06.2016 15:42:20)

Re: Изображение категорий

Sergey T. пишет:

Все добавил как вы написали, но изображение все равно не выводится


Может дело в кэше?

Повысить оценку Понизить оценку

12

Re: Изображение категорий

Кэш почищен несколько раз. Все равно не работает.

Re: Изображение категорий

Дело не в кэше. Судя из скриншота, ты где то не закрыли конструкцию. Вы весь код приведите.

14

Re: Изображение категорий

Вот целиком category.tpl

{* Список категорий из 2-х уровней*}
{if $dirlist}
    {addjs file="jquery.mainmenu.js" basepath="common"}

    <ul class="category">
        {hook name="catalog-blocks-category-category:list-item" title="{t}Категории товаров:элементы списка{/t}"}
        {foreach from=$dirlist item=dir}
        <li {if in_array($dir.fields.id, $pathids)}class="act"{/if} {$dir.fields->getDebugAttributes()}>

        {if $dir.image}
               <img src="{$dir.__image->getUrl(30, 30)}">
        {/if}

        <a href="{$dir.fields->getUrl()}">{$dir.fields.name}


         <span class="category_count">({$dir.fields.itemcount})</span></a>
            {if !empty($dir.child)}
            {assign var=cnt value=count($dir.child)}
            {if $cnt>9 && $cnt<21}
                {assign var=columns value="twoColumn"}
            {elseif $cnt>20}
                {assign var=columns value="threeColumn"}
            {/if}
            <ul {if $columns}class="{$columns}"{/if}>
                <li class="corner"></li>
                {foreach from=$dir.child item=item}
                <li {if in_array($item.fields.id, $pathids)}class="act"{/if} {$item.fields->getDebugAttributes()}><a href="{$item.fields->getUrl()}">{$item.fields.name} <span class="category_count2">({$item.fields.itemcount})</span></a>
                    
                    <!--третий уровень меню-->
                    <!--{if !empty($item.child)}
                        <ul class="subsubdir">
                           {foreach from=$item.child item=subitem}
                                <li {if in_array($subitem.fields.id, $pathids)}class="act"{/if} {$subitem.fields->getDebugAttributes()}><a href="{$subitem.fields->getUrl()}">{$subitem.fields.name}</a>
                                </li>
                           {/foreach}
                        </ul>      
                    {/if}-->
                    <!--третий уровень меню-->

                {/foreach}
            </ul>
            {/if}
        </li>
        {/foreach}
        {/hook}
    </ul>
{else}
    {include file="theme:default/block_stub.tpl"  class="blockCategory" do=[
        [
            'title' => t("Добавьте категории товаров"),
            'href' => {adminUrl do=false mod_controller="catalog-ctrl"}
        ]
    ]}
{/if}

Re: Изображение категорий

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

{* Список категорий из 2-х уровней*}
{if $dirlist}
    {addjs file="jquery.mainmenu.js" basepath="common"}

    <ul class="category">
        {hook name="catalog-blocks-category-category:list-item" title="{t}Категории товаров:элементы списка{/t}"}
            {foreach from=$dirlist item=dir}
                <li {if in_array($dir.fields.id, $pathids)}class="act"{/if} {$dir.fields->getDebugAttributes()}>

                    {if $dir.fields.image}
                           <img src="{$dir.fields.__image->getUrl(30, 30)}">
                    {/if}

                    <a href="{$dir.fields->getUrl()}">{$dir.fields.name}
                        <span class="category_count">({$dir.fields.itemcount})</span>
                    </a>
                    {if !empty($dir.child)}
                        {assign var=cnt value=count($dir.child)}
                        {if $cnt>9 && $cnt<21}
                            {assign var=columns value="twoColumn"}
                        {elseif $cnt>20}
                            {assign var=columns value="threeColumn"}
                        {/if}
                        <ul {if $columns}class="{$columns}"{/if}>
                            <li class="corner"></li>
                            {foreach from=$dir.child item=item}
                            <li {if in_array($item.fields.id, $pathids)}class="act"{/if} {$item.fields->getDebugAttributes()}><a href="{$item.fields->getUrl()}">{$item.fields.name} <span class="category_count2">({$item.fields.itemcount})</span></a>
                                
                                <!--третий уровень меню-->
                                <!--{if !empty($item.child)}
                                    <ul class="subsubdir">
                                       {foreach from=$item.child item=subitem}
                                            <li {if in_array($subitem.fields.id, $pathids)}class="act"{/if} {$subitem.fields->getDebugAttributes()}><a href="{$subitem.fields->getUrl()}">{$subitem.fields.name}</a>
                                            </li>
                                       {/foreach}
                                    </ul>      
                                {/if}-->
                                <!--третий уровень меню-->

                            {/foreach}
                        </ul>
                    {/if}
                </li>
            {/foreach}
        {/hook}
    </ul>
{else}
    {include file="theme:default/block_stub.tpl"  class="blockCategory" do=[
        [
            'title' => t("Добавьте категории товаров"),
            'href' => {adminUrl do=false mod_controller="catalog-ctrl"}
        ]
    ]}
{/if}

16

Re: Изображение категорий

Большое спасибо! Теперь все работает как надо! wink

Re: Изображение категорий

Не за что

18

Re: Изображение категорий

Объясните мне пожалуйста, как вывести на странице отдельно созданной в пункте меню как КАТАЛОГ категории в виде картинок, как тут http://10xlmen.ru/shop.html.

Re: Изображение категорий

Не совсем понятно. У Вас меню ссылается на какую-то определённую категорию и именно у данной категории вы хотите вывести картинки подкатегорий?

20 Отредактировано Евгения (10.12.2016 02:55:16)

Re: Изображение категорий

Евгения пишет:

Объясните мне пожалуйста, как вывести на странице отдельно созданной в пункте меню как КАТАЛОГ категории в виде картинок, как тут http://10xlmen.ru/shop.html.

Из меню вывод на страницу КАТАЛОГ со ВСЕМИ общими категориями но в картинках. Я создала страницу прописала ее в меню, но мне надо вывести на эту страницу шаблон со всеми категориями картинками, как в примере  http://big-odezhda.ru/catalog/ или сделала скрин желаемого результата но как его сюда добавить https://yadi.sk/i/cEhDtmna32oDQL

Re: Изображение категорий

Я Вас понял.
Ну как сделать программную часть я Вам подскажу, а вот как сделать верстку(застилизовать), то тут всё индивидуально тут надо программировать отображение под Вас.
У Вас категории, которые вы хотите вывести картинками принадлежать какой-то ещё категории или нет.

Вообще Вам надо обратиться к верстальщику он за малые деньги и очень быстро всё сделает. Это делается за 1 час человеком, который знает. Так будет проще и быстрее и будете сразу торговать не отвлекаясь на стили. Можете обратиться к нашим партнёрам https://readyscript.ru/partners/all/, или в платную поддержку http://helpdesk.readyscript.ru/.

22

Re: Изображение категорий

Закусило Александр пишет:

Я Вас понял.
Ну как сделать программную часть я Вам подскажу, а вот как сделать верстку(застилизовать), то тут всё индивидуально тут надо программировать отображение под Вас.
У Вас категории, которые вы хотите вывести картинками принадлежать какой-то ещё категории или нет.

Вообще Вам надо обратиться к верстальщику он за малые деньги и очень быстро всё сделает. Это делается за 1 час человеком, который знает. Так будет проще и быстрее и будете сразу торговать не отвлекаясь на стили. Можете обратиться к нашим партнёрам https://readyscript.ru/partners/all/, или в платную поддержку http://helpdesk.readyscript.ru/.

Хорошо обращусь, спасибо.

23

Re: Изображение категорий

А нельзя ли как то вставить все главные категории без верстки, то есть уже в имеющуюся тему classic? И кстати еще такой вопрос, вот например тема Воздушная уже содержит вывод категорий но почему то списком, я вставляю в категории картинки, но на сайте они не отображаются. С чем это связано? Вот пример http://vesna90.ru/catalog/novyy-god/

Re: Изображение категорий

А нельзя ли как то вставить все главные категории без верстки, то есть уже в имеющуюся тему classic?

Компьютер не умеет рисовать блоки, если ему не указать каким образом их рисовать.

И кстати еще такой вопрос, вот например тема Воздушная уже содержит вывод категорий но почему то списком, я вставляю в категории картинки, но на сайте они не отображаются.

Это связано с тем, что в темах, которые идут в комплекте просто не указан вывод картинок прикреплённых. Т.е. необходимо просто дописать конструкции. Плюс там всё индивидуально и нужно место под картинки. У многих людей очень разные задачи по отображению картинок. Проще говоря нужно немного под свои нужды подверстать. В будущих версия шаблонов у нас будет придумотрен вывод картинок.

25

Re: Изображение категорий

Закусило Александр пишет:

Компьютер не умеет рисовать блоки, если ему не указать каким образом их рисовать.

Ну вот тут получается и нудна верстка или прописать в стилях или файлу нужное количество блоков и размеры в пикселях? А если я создам страницу html с таблицей? Это решит мою проблему?

Это связано с тем, что в темах, которые идут в комплекте просто не указан вывод картинок прикреплённых. Т.е. необходимо просто дописать конструкции. Плюс там всё индивидуально и нужно место под картинки. У многих людей очень разные задачи по отображению картинок. Проще говоря нужно немного под свои нужды подверстать. В будущих версия шаблонов у нас будет придумотрен вывод картинок.

А когда будущий шаблон выйдет? Я буду ждать, так как дописать конструкцию мне не по силам. А так хочется отображать все свои категории и подкатегории картинками да еще с индивидуальным описанием внизу, а не на верху (