1

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

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

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

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 Понизить оценку

3

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: Изображение категорий

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

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

7

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

9

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

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

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

12

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

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

13

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}

14

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}

15

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

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

16

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

Не за что

17

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

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

18

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

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

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

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

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

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

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

20

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

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

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

21

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

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

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

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

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

22

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

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

23

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

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

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

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

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

24

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

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

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

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

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

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

25

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

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

Как временное решение, да. Однако если один ньюанс. Тема является адаптивной. Это значит, что при сжатии экрана сайт реагирует перестроением вёрстки или например открытии его на мобильном устройстве будет всего 320 пикселей, куда не вместится Ваша таблица. 21 век, диктует свои правила. Если адаптивность не делать, то как бы всё в порядке будет. А могу Вам дать код вывода категорий. Если есть возможность и время, то впринципе его вы можете застилизовать.

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

Не скоро.

Вам по сути нужно изменить сам шаблон list_products.tpl. Там как раз и идёт вывод категории.

{if $category.description}<div class="categoryDescription">{$category.description}</div>{/if} {* Выводит описание категории *}

Соответственно, Вы данную конструкцию можете переместить вниз, в нужное место. Также я бы посоветовал бы при правке включить на это время отображение ошибок https://readyscript.ru/faq/#faq-errors и пройти курс по этой ссылке https://readyscript.ru/text-blog/Kak-so … dyScript/, чтобы понимать как править шаблоны.