Как создать вторую галерею к товару?

Доброго дня! Требуется создать вторую фотогалерею к товару для фото от покупателей и из салона. Так как обычных фото полно ( более 20  в разных цветах мебель). Нужна как бы вторая фотогалерея.

До этого делала через приложение фото и столкнулась с тем, что индексируется поисковиками криво - а именно ссылки идут на крупные фото в фотогалерее и люди не видят карточку товара((( Если закрыть приложение фото от индексации то и фотки не попадают в поиск. 

Может есть у кого какие идеи? 

1 ответ

  • 1
    Алексей Webasyst 14 января 2019 01:43 #

    Если фото от пользователей, то может использовать плагины отзывов с возможностью добавления фото?
    Либо добавлять страницу товара с фотографиями.

    • +1
      Adelin Adelin 14 января 2019 01:51 #

      Фото с отзывами это есть)) Но нужна именно вторая красивая фотогалерея сразу под описанием товара. 

      Что значит добавлять страницу товара с фото? 

      • +1
        Алексей Алексей Webasyst 14 января 2019 12:24 #

        В карточке товара при редактировании есть раздел Страницы, где вы можете добавлять страницы к конкретному товару. Но содержимое будет на отдельной на странице, а не под описанием.

        • +2
          replicant replicant 14 января 2019 13:55 #

          Содержимое отдельной страницы можно вытащить в шаблон товарной страницы в любое место. Есть же массив $product.pages откуда можно заинклюдить контент выбранной страницы примерно так {include file="string:`$page.content`"}.

          По такой схеме иногда работают всякие шаблоны с табами-вкладками страниц.

      • +2
        replicant replicant 14 января 2019 13:37 #

        На самом деле идей масса как это сделать. Сходу 5-6 штук от сложных в использовании типа доп.параметров до примитивных (загрузил и забыл). Весь вопрос в том что именно вам подойдет.

        Вот набросал идею ровно за три минуты на коленке (прошу прощения за колхоз из двух foreach делал бегом). Но из плюсов:
        - кликабельно и смотрибельно в зоне просмотра основной фото (не надо городить элементы интерфейса)
        - подгружаемо в основной скрипт слайд-шоу (не придется подключать ещё скрипты)
        - создаются эскизы и накладывается водяной знак (экономия трафика при загрузке страницы, что весьма проблематично при ином способе загрузки фото, т.к. грузится масштабированная картинка, а не легкий эскиз)
        - управление фото в одной вкладке всех фотографий товара
        - разделение на группы фото по принципу "уникального" image.description позволит отсеять пользовательские фото для слайдшоу ещё и в list-thumbs.html например (только в админке первой фоткой юзерскую ставить не надо, а в остальном вроде логично)
        - в зависимости от верстки шаблона блок фото можно разорвать на части и юзерские сразу подгружать в полный размер в основное слайд-шоу (лайт-бокс), а миниатюры вывести хоть у черта на рогах, например, сразу под описание или под название товара или ещё куда (это все уже вопросы к css и верстке)

        {if count($product.images) > 1 || (count($product.images) === 1 && $video)}
        <div class="more-images" id="product-gallery">
        <div id="minus-video" style="display:inline">
            {foreach $product.images as $image}
            {if $image.description != "..."}
                <div class="image{if $image.id == $product.image_id} selected{/if}">
                    <a id="product-image-{$image.id}" href="{$wa->shop->imgUrl($image, '1280')}">
                        {$wa->shop->imgHtml($image, '96x96', ['title'=> $image.description|escape, 'alt'=>$image.description|escape])}
                    </a>
                </div>
            {/if}
            {if $image@last}<br>{/if}
            {/foreach}
            {foreach $product.images as $image2}
            {if $image2.description == "..."}
                <div class="image{if $image2.id == $product.image_id} selected{/if}">
                    <a id="product-image-{$image2.id}" href="{$wa->shop->imgUrl($image2, '1280')}">
                        {$wa->shop->imgHtml($image2, '96x96', ['title'=> $product.name|escape, 'alt'=>$product.name|escape])}
                    </a>
                </div>
            {/if}
            {/foreach}
        </div>

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите