Автор Тема: Получить URL картинок  (Прочитано 757 раз)

08 Сентябрь 2016, 11:10:29
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Как при помощи SQL-запроса можно получить все вложеные картинки? Вот к примеру следующий запрос дает только ID картинок, а нужно получить не ID а URL к картинке:
SELECT p.`id_product`, p.`id_category_default`, pl.`name`, pi.`id_image`
FROM `ps_product` p
LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product`)
LEFT JOIN `ps_image` pi ON (p.`id_product` = pi.`id_product`)
09 Сентябрь 2016, 10:17:53
Ответ #1
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$images = array();
$id_lang = (int)$this->context->language->id;
$query = "SELECT ...";
$results = Db::getInstance()->executeS($query);
foreach ($results as $key => $val)
  {
    $id_product = (int)$val['id_product'];
    $id_image = (int)$val['id_image'];
    $product = new Product($id_product);
    $link = new Link();
    $images[] = $link->getImageLink( $product->link_rewrite[$id_lang], $id_image, 'medium_default' );
}
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
09 Сентябрь 2016, 10:24:03
Ответ #2
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$images = array();
$id_lang = (int)$this->context->language->id;
$query = "SELECT ...";
$results = Db::getInstance()->executeS($query);
foreach ($results as $key => $val)
  {
    $id_product = (int)$val['id_product'];
    $id_image = (int)$val['id_image'];
    $product = new Product($id_product);
    $link = new Link();
    $images[] = $link->getImageLink( $product->link_rewrite[$id_lang], $id_image, 'medium_default' );
}

Db::getInstance() - это же не стандартный класс РНР!
А какая библиотека здесь используется? Или нужно подключать скрипты PrespaShop?
09 Сентябрь 2016, 10:30:57
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
http://prestashop-forum.ru/index.php/topic,101.msg45102.html#msg45102
Зачем создавать дубли? Пишите уже в одном посте.
09 Сентябрь 2016, 10:36:21
Ответ #4
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
http://prestashop-forum.ru/index.php/topic,101.msg45102.html#msg45102
Зачем создавать дубли? Пишите уже в одном посте.

1) Сначала не нашел старого поста и создал но новый
2) На форуме было сообщение, что так как старая тема была создана очень давно и поскольку последний ответ был более года назад - то рекомендуется создать новую тему  :)
09 Сентябрь 2016, 11:01:49
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы бы сразу написали что хотите это делать не из Prestashop...
Используйте Prestashop Web Service:
http://95QUGCYAYPHQT924W4A8GJR76D9U4R4M@myprestashop.com/api/images/products/1

формат: http://KEY@youshop.com/api/images/products/ID_Product

сначала сгенерируйте этот самый ключ доступа к API: Advanced Parameters->Webservice

подробнее читайте здесь: http://doc.prestashop.com/display/PS16/Web+service+one-page+documentation
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
09 Сентябрь 2016, 11:15:11
Ответ #6
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы бы сразу написали что хотите это делать не из Prestashop...
Используйте Prestashop Web Service:
http://95QUGCYAYPHQT924W4A8GJR76D9U4R4M@myprestashop.com/api/images/products/1


формат: http://KEY@youshop.com/api/images/products/ID_Product


сначала сгенерируйте этот самый ключ доступа к API: Advanced Parameters->Webservice


подробнее читайте здесь: http://doc.prestashop.com/display/PS16/Web+service+one-page+documentation

Да... как все сложно... А как получить KEY (Prestashop 1.4.10.0)? Я что-то не вижу кнопку Add KEY...
09 Сентябрь 2016, 11:20:37
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
"Добавить" под предупреждениями...
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
09 Сентябрь 2016, 11:37:27
Ответ #8
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
"Добавить" под предупреждениями...
Извините, не увидил.
Создал ключ. Перехожу по url http://KEY@МОЙ-САЙТ.RU/api/images/products/ID_Product - сначала выдает сообщение о том, что сайт не нуждается в авторизации а при нажатии на продолжить - ошибка 404 - страница не найдена...
09 Сентябрь 2016, 11:42:26
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы поставили галочку напротив "Включить Webservice" ? :-)
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
09 Сентябрь 2016, 11:47:36
Ответ #10
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы поставили галочку напротив "Включить Webservice" ? :-)
Да
09 Сентябрь 2016, 12:34:30
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
To get the web service to work, you need to generate / regenerate a .htaccess file.
While still in the Back Office, go to the Tools / Generators tab and click to regenerate .htaccess

взято с оф.док. http://doc.prestashop.com/display/PS14/Chapter+1+-+Creating+Access+to+Back+Office

Т.е. чтобы получить доступ к веб-сервису, вам необходимо сгенерировать/пересоздать файл .htaccess

(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
11 Сентябрь 2016, 12:21:38
Ответ #12
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
To get the web service to work, you need to generate / regenerate a .htaccess file.
While still in the Back Office, go to the Tools / Generators tab and click to regenerate .htaccess

взято с оф.док. http://doc.prestashop.com/display/PS14/Chapter+1+-+Creating+Access+to+Back+Office

Т.е. чтобы получить доступ к веб-сервису, вам необходимо сгенерировать/пересоздать файл .htaccess



Спасибо за помощь. Получилось.