Вход • Регистрация

Изображения в карточке товара

  • 07 февраля 2016 г.
  • Хочу сделать изображения как в карточке товара или как в avito, т.е. основное изображение и листинг.
    Сначала решил с листингом поковыряться, за основу взял действующий пример из карточки товара.
    Код
    if($result["preview_images"])
    {
    echo '<a class="control-prev shop-previews-control" href="#">&nbsp;</a>
    <a class="control-next shop-previews-control" href="#">&nbsp;</a>';
    echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
    foreach ($result["img"] as $img)
    {
    echo ' <a class="js_shop_preview_img item" href="#" style="background-image:url('.$img["preview"].')" image_id="'.$img["id"].'">&nbsp;</a>';
    }
    echo '</div>';
    }

    Если его заменить полностью, то не работает из за if($result["preview_images"])
    Вывел так:
    Код
    if (!empty($result["img"]))
    {
    echo '<a class="control-prev shop-previews-control" href="#">&nbsp;</a>
    <a class="control-next shop-previews-control" href="#">&nbsp;</a>';
    echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
    foreach ($result["img"] as $img)
    {

    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
    . '</a> ';

    }
    echo '</div>';
    }

    Коряво, но что то похоже на результат , правда не листает изображения.
    Еще, если менять направление прокрутки (вертикально), какой js ?
  • 07 февраля 2016 г.
  • Вот так работает, но почему то листинг идет по диагонали

    Код
    if (!empty($result["img"]))
    {
    echo '<a class="control-prev shop-previews-control" href="#">&nbsp;</a>
    <a class="control-next shop-previews-control" href="#">&nbsp;</a>';
    echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
    foreach ($result["img"] as $img)
    {
    switch ($img["type"])
    {
    case 'animation':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$result["id"].'ab]">';
    break;
    case 'large_image':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
    break;
    default:
    echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
    break;
    }

    echo ' <a class="js_shop_preview_img item" href="#" style="background-image:url('.$img["src"].')" image_id="'.$img["id"].'">&nbsp;</a>';
    }
    echo '</div>';
    }
  • 07 февраля 2016 г.
  • Спасибо, разобрался
    Всегда так, спросишь и вроде получаться начинается

    Код
    if (!empty($result["img"]))
    {
    echo '<a class="control-prev shop-previews-control" href="#">&nbsp;</a>
    <a class="control-next shop-previews-control" href="#">&nbsp;</a>';
    echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
    foreach ($result["img"] as $img)
    {
    echo ' <a class="js_shop_preview_img item" href="#" style="background-image:url('.$img["src"].')" image_id="'.$img["id"].'">&nbsp;</a>';
    }
    echo '</div>';
    }
  • 07 февраля 2016 г.
  • Единственно, что получилось, это только листинг.
    В shop.view.id.php листинг начинается с if($result["preview_images"]), в ab оно не воспринимается (пытался добавить из shop.model.php в ab.model.php, не получилось), сделал if (!empty($result["img"])), только тогда в листинге появились изображения, а вот полное изображение не выходит.
    Код
    if (!empty($result["img"]))
    {
    echo '<div class="js_shop_all_img shop_all_img shop-item-big-images">';

    foreach ($result["img"] as $img)
    {
    switch ($img["type"])
    {
    case 'animation':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$result["id"].'ab]">';
    break;
    case 'large_image':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
    break;
    default:
    echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
    break;
    }
    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
    . '</a> ';

    }
    echo '</div>';
    if (!empty($result["img"]))
    {
    echo '<a class="control-prev shop-previews-control" href="#">&nbsp;</a>
    <a class="control-next shop-previews-control" href="#">&nbsp;</a>';
    echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
    foreach ($result["img"] as $img)
    {
    echo ' <a class="js_shop_preview_img item" href="#" style="background-image:url('.$img["src"].')" image_id="'.$img["id"].'">&nbsp;</a>';
    }
    echo '</div>';
    }
    }

    Прошу помощи
  • 10 февраля 2016 г.
  • Покопался в документации (спасибо Виталию (nvgpro), чего то я забыл про нее , бывает), Не выходит видимо по причине, что к ab.view.id.php подключены изображения с тегом "medium", другие link и preview не выводит. Как можно подключить изображения других размеров, пробовал добавить в модели объявлений по принципу магазина, нет результата (может и не так пробовал выводить ). Я вообще там ковыряюсь?
  • 10 февраля 2016 г.
  • Еще такой вопрос:
    Если даже подключены изображения помеченные тегом "medium" все равно же должно работать?
    В качестве превью "medium" и основного изображения "medium" или я не прав?
    js подключил - shop.id.js

    Код
    if (!empty($result["img"]))
    {
    echo '<div class="js_shop_all_img shop_all_img shop-item-big-images">';
    $k = 0;
    foreach ($result["img"] as $img)
    {
    switch ($img["type"])
    {
    case 'animation':
    echo '<a class="js_shop_img shop-item-image'.(empty($k) ? ' active' : '').'" href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$result["id"].'shop]" image_id="'.$img["id"].'">';
    break;
    case 'large_image':
    echo '<a class="js_shop_img shop-item-image'.(empty($k) ? ' active' : '').'" href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'" image_id="'.$img["id"].'">';
    break;
    default:
    echo '<a class="js_shop_img shop-item-image'.(empty($k) ? ' active' : '').'" href="'.BASE_PATH.$img["link"].'" image_id="'.$img["id"].'">';
    break;
    }
    echo '<img src="'.$img["scr"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">';
    $k++;
    }

    echo '</div>';
    if($result["img"])
    {
    echo '<a class="control-prev shop-previews-control" href="#">&nbsp;</a>
    <a class="control-next shop-previews-control" href="#">&nbsp;</a>';
    echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
    foreach ($result["img"] as $img)
    {
    echo ' <a class="js_shop_preview_img item" href="#" style="background-image:url('.$img["link"].')" image_id="'.$img["id"].'">&nbsp;</a>';
    }
    echo '</div>';
    }
    }
  • 10 февраля 2016 г. , редакция: 10 февраля 2016 г.
  • А вот это не то (скрин)? ( просто интересно, может малой кровью?) Но все равно preview не выводит.
    Вывел в модели так:

    Код
    if ($this->diafan->configmodules("images_element"))
    {
    $this->result["img"] = $this->diafan->_images->get(
    'medium', $row["id"], 'ab', 'element',
    $this->diafan->_site->id, $row["name"], 0, 0, 'large'
    );
    $row["preview_images"] = ! empty($row["img"][0]["vs"]["preview"]) ? true : false;
    if($row["preview_images"])
    {
    foreach ($row["img"] as $i => $dummy)
    {
    $row["img"][$i]["preview"] = $row["img"][$i]["vs"]["preview"];
    }
    }
    }


    Не выводит
  • 12 февраля 2016 г.
  • Проблема была в стилях, видимо где то цепанул, со стандартным style.css все работает.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум