Prestashop получить изображение продукта по умолчанию из названия продукта?

В Prestashop я хочу знать, по какому шаблону prestashop показывает изображение продукта по умолчанию? Я имею в виду, скажем, у меня есть запрос mysql для prestashop, подобный этому

SELECT ps_product.id_product,ps_product.id_category_default,description_short,ps_product_lang.name FROM ps_product_lang,ps_product WHERE ps_product_lang.id_lang=1 AND ps_product.id_product=ps_product_lang.id_product

Теперь я получу идентификатор продукта, категорию продукта, описание и название. Теперь, согласно продуктам prestashop по умолчанию и базе данных, которые у меня есть для продукта iPod Nano, поля базы данных похожи на

id_product  id_category_default
  1               3       

Теперь, если я хочу получить изображение продукта, я буду использовать

img/p/id_product/id_category_default/id_product.id_category_default

Это сделает img src похожим на

img/p/1/3/13.jpg

Теперь, когда я использовал это, я получил изображение Belkin Leather Folio для iPod.

но с тем же условием я получил точный образ для ipod shuffle. Так может кто-нибудь любезно сказать мне, как получить точное изображение по умолчанию для названия продукта? Любая помощь и предложения будут действительно заметны.


person NewUser    schedule 11.03.2014    source источник


Ответы (1)


Вы можете использовать этот запрос, чтобы получить идентификатор изображения обложки (изображение, отображаемое в представлении категории) для продукта:

SELECT id_image FROM ps_image WHERE cover = 1 AND id_product = $idProduct

Затем вы можете сгенерировать путь к изображению с помощью следующего кода:

$imgPath = 'img/p/';
for ($i = 0; $i < strlen($idImage); $i++) {
  $imgPath .= $idImage[$i] . '/';
}
$imgPath .= $idImage . '.jpg';

Если вы хотите получить идентификатор изображения миниатюры по умолчанию, отображаемой в представлении продукта, вы можете использовать этот запрос:

SELECT id_image FROM ps_image WHERE position = 1 AND id_product = $idProduct
person yenshirak    schedule 11.03.2014
comment
Спасибо за ответ. Но можете ли вы сказать мне, каков будет точный путь к изображению. Поскольку тег img показывает изображение из src. поэтому, чтобы показать изображение, нам нужен наш путь к изображению, такой как этот <img src="img/p/1/5/15.jpg" alt="" /> для идентификатора продукта 1. Теперь, согласно вашему ответу, я получаю имя изображения 15.jpg, и это хорошо, но как получить путь к изображению? Как я могу использовать это имя изображения без пути к изображению? В соответствии с вашим ответом путь к изображению будет <img src="img/p/15.jpg"> Итак, теперь вы можете сказать мне, как получить 1 и 5, поскольку правильный путь к изображению для product_id 1 равен <img src="img/p/1/5/15.jpg"> - person NewUser; 12.03.2014
comment
Путь к изображению формируется из цифр идентификатора изображения. Для 6 будет img / p / 6 / 6.jpg. Для 16 это будет img / p / 1/6 / 16.jpg, для 123 это будет /img/p/1/2/3/123.jpg. Проверьте код PHP в моем ответе. - person yenshirak; 12.03.2014
comment
в своем ответе вы использовали for ($i = 0; $i < strlen($idImage); $i++) { $imgPath .= $idImage[$i] . '/'; } Итак, вы можете сказать мне, как получить переменную $ idImage? - person NewUser; 12.03.2014
comment
$ idImage является результатом этого запроса: SELECT id_image FROM ps_image WHERE cover = 1 AND id_product = $idProduct - person yenshirak; 12.03.2014
comment
хорошо .. Я получил это, но, как вы можете видеть, у меня уже есть запрос выше, я написал SELECT ps_product.id_product,ps_product.id_category_default,description_short,ps_product_lang.name FROM ps_product_lang,ps_product WHERE ps_product_lang.id_lang=1 AND ps_product.id_product=ps_product_lang.id_product Я использовал это для получения идентификатора продукта, имени, описания. Можете ли вы сказать мне, как объединить ваш запрос с этим, чтобы я одновременно получил идентификатор продукта, название продукта, описание, идентификатор категории, идентификатор изображения? - person NewUser; 12.03.2014
comment
Неа, что показывает #1054 - Unknown column 'id_i‌​mage' in 'field list' - person NewUser; 12.03.2014
comment
У меня работает, но попробуйте следующее: SELECT p.id_product, p.id_category_default, l.description_short, l.name, i.id_image FROM ps_product AS p LEFT JOIN ps_product_lang AS l ON p.id_product = l.id_product LEFT JOIN ps_image AS i ON p.id_product = i.id_product WHERE l.id_lang = 1 AND i.cover = 1 - person yenshirak; 12.03.2014