Автор Тема: Изображения товара в тексте после описания  (Прочитано 71 раз)

25 Май 2018, 10:17:41
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Привет, друзья!
Мне кажется, что картинки товара должны располагаться в описании к товару. Одно за другим, чтобы на телефоне было удобно смотреть в большом размере листая вверх. Имеющийся модуль не удобен при просмотре на телефоне.
Прошу помощи! Примерно представляю себе запрос в базу данных с адресами изображений, который нужно поместить в tpl страницы товара.
Думаю, как лучше: убрать стандартный модуль просмотра изображений или оставить.
25 Май 2018, 13:13:02
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Переместить изображения в tpl нельзя, запросом из бд ничего не сделать. Можно код переместить в product.tpl, и слилями слить два блока изображения и описание.
25 Май 2018, 16:10:14
Ответ #2
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Переместить изображения в tpl нельзя, запросом из бд ничего не сделать. Можно код переместить в product.tpl, и слилями слить два блока изображения и описание.
Как это сделать? Можно подробнее?
25 Май 2018, 19:44:45
Ответ #3
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нашел такой запрос в бд. В какой таблице хранятся изображения? они привязаны к товару? Как их вынимать?



$dirct= $_SERVER['DOCUMENT_ROOT']."/".$_GET['idpage'];
$hdl=opendir($dirct);
while ($file = readdir($hdl))
if ( ($file!=".")&&($file!="..")&&($file!="1.jpg")) $a[]=$file;
closedir($hdl);
asort($a);
foreach ($a as $value) {
echo '<div style="width:940px; text-align:center;">';
echo '<img src="http://myshop.ru/'.$data['id'].'/';
echo $value;
echo '" align="center" width="830" data-ks-lazyloaded="true" style="border: 5px solid #7d6b72;"></div>';
echo '<div style="width:940px; height:10px; text-align:center;"></div>';
}

}
$mysqli = new mysqli("localhost", "123", "132", "2122");
$mysqli->query("SET NAMES 'utf8'");
$result_set = $mysqli->query("SELECT id, name, brand, price, description, availability, expert FROM astana where id = ".(int)$_GET['idpage']);

while($row = $result_set->fetch_assoc())
printData($row);
$result_set->close();
$mysqli->close();
27 Май 2018, 07:15:15
Ответ #4
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот так можно вывести все изображения товаров? добавив следующий код в product.js
$context->link->getImageLink($product.link_rewrite, $product.id_image, 'home_default');
27 Май 2018, 10:12:25
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Такой код для файлов php, а не для js.
Вот так можно выбрать все ид картинок для товара sql запросом
SELECT `id_image`
FROM `'._DB_PREFIX_.'image`
WHERE `id_product` = '.$id_product
27 Май 2018, 10:20:12
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105653
  • Репутация: +39552/-0
    • Просмотр профиля
    • Webstudio UwK
В контроллере страницы товара уже есть методы выбора изображений
/**
 * Assign template vars related to images
 */
protected function assignImages()
{
    $images = $this->product->getImages((int)$this->context->cookie->id_lang);
Вам ничего добавлять ненужно. Для показа изображений используйте
{$images}в шаблоне страницы product.tpl
Cоздание интернет сайтов Webstudio UwK
27 Май 2018, 10:21:34
Ответ #7
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Такой код для файлов php, а не для js.
Вот так можно выбрать все ид картинок для товара sql запросом
SELECT `id_image`
FROM `'._DB_PREFIX_.'image`
WHERE `id_product` = '.$id_product

Так мне не ID картинок нужны, мне просто нужно, чтобы после описания показывались картинки в полный размер одна за другой. Чтоб клиент просто листал вниз и рассматривал картинки.
27 Май 2018, 10:31:28
Ответ #8
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере страницы товара уже есть методы выбора изображений
/**
 * Assign template vars related to images
 */
protected function assignImages()
{
    $images = $this->product->getImages((int)$this->context->cookie->id_lang);
Вам ничего добавлять ненужно. Для показа изображений используйте
{$images}в шаблоне страницы product.tpl

Когда вставляю в product.tpl этот код {$images}, то появляется просто слово Array

27 Май 2018, 10:35:09
Ответ #9
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105653
  • Репутация: +39552/-0
    • Просмотр профиля
    • Webstudio UwK
Вывод изображений в шаблоне
{if isset($images)}
{foreach from=$images item=image name=thumbnails}
{assign var=imageIds value="`$product->id`-`$image.id_image`"}
{if !empty($image.legend)}
{assign var=imageTitle value=$image.legend|escape:'html':'UTF-8'}
{else}
{assign var=imageTitle value=$product->name|escape:'html':'UTF-8'}
{/if}
<li {if $smarty.foreach.thumbnails.last} class="last"{/if}>
<img class="img-responsive"  src="{$link->getImageLink($product->link_rewrite, $imageIds, 'home_default')|escape:'html':'UTF-8'}" alt="{$imageTitle}" title="{$imageTitle}"{if isset($cartSize)} height="" width=""{/if} />
</li>
{/foreach}
{/if}
Cоздание интернет сайтов Webstudio UwK
27 Май 2018, 10:58:40
Ответ #10
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вывод изображений в шаблоне
{if isset($images)}
{foreach from=$images item=image name=thumbnails}
{assign var=imageIds value="`$product->id`-`$image.id_image`"}
{if !empty($image.legend)}
{assign var=imageTitle value=$image.legend|escape:'html':'UTF-8'}
{else}
{assign var=imageTitle value=$product->name|escape:'html':'UTF-8'}
{/if}
<li {if $smarty.foreach.thumbnails.last} class="last"{/if}>
<img class="img-responsive"  src="{$link->getImageLink($product->link_rewrite, $imageIds, 'home_default')|escape:'html':'UTF-8'}" alt="{$imageTitle}" title="{$imageTitle}"{if isset($cartSize)} height="" width=""{/if} />
</li>
{/foreach}
{/if}

СПАСИБО ОГРОМНОЕ! Я счастлив!