Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

картинка категории в товаре


Recommended Posts

Доброго времени суток!

Задача: вывести в карточке товара категории, в которых встречается этот товар.

 

Что делалось: catalog/model/catalog/ product.php

	public function getCategoryNames($product_id) {     
        $query = $this->db->query("SELECT cd.name
                        FROM " . DB_PREFIX . "category_description cd
                        LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p2c.category_id = cd.category_id)
                            WHERE p2c.product_id = '" . (int)$product_id . "'
                            AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "'");     
        return $query->rows;
    }
	
	public function getCategoryPict($product_id) {     
        $query = $this->db->query("SELECT cd.image
                        FROM " . DB_PREFIX . "category cd
                        LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p2c.category_id = cd.category_id)
                            WHERE p2c.product_id = '" . (int)$product_id .  "'");     
        return $query->rows;
    }

catalog/controller/product/product.php

$data['cat_list'] = $this->model_catalog_product->getCategoryNames($product_id);
$data['cat_pict'] = $this->model_catalog_product->getCategoryPict($product_id);

...template/product/product.tpl

<div class="tov_main col-sm-12">
	<div class="tov col-sm-6">
		  
		  
		  <?php if ($cat_list) { ?>
                <?php foreach ($cat_list as $cat_name) { ?>
                    <li class="tovkat"><?php echo $cat_name['name']; ?></li>
                <?php } ?>
<?php } ?>

<?php if ($cat_pict) { ?>
                <?php foreach ($cat_pict as $cat_image) { ?>
                    <li class="tovkat"><img src="<?php echo $cat_image['image']; ?>"></li>
                <?php } ?>
<?php } ?>



	</div>
</div>

Дополнение: Если не обрамлять в <img src= , то текстом выводятся все пути, которые вписаны в базе. Название категории работает корректно.путь в базе к изображению категории - не корректный странный какой-то путь указан....

Вопрос: Как правильно "подтянуть" изображения категории в данных условиях.

Заранее благодарен!

Надіслати
Поділитися на інших сайтах

в контроллере используйте стандартную конструкцию 

$data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));

в вашем случае

$cat_pict = $this->model_catalog_product->getCategoryPict($product_id);
$data['cat_pict'] = array();
foreach($cat_pict as $pic)
   $data['cat_pict'][] = $this->model_tool_image->resize($pic['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
Змінено користувачем shalan
Надіслати
Поділитися на інших сайтах


@shalan, Спасибо за ответ!

Все чудно, но изображения не отображаются (( появляется пиктограмма картинки и все.

У меня подозрения, что я не правильно путь к картинке подсовываю. в базе (чистая версия), путь выглядит так: catalog/demo/compaq_presario.jpg

И именно этот путь, запросом и подсовывается. но физически, картинка не там.

 

Если это не будет не скромным, посмотрите мой запрос по картинке ))

И еще одно. Я долго искал описания стандартных конструкций, наверное, большинство вопросов бы не возникало. Если есть какой-то ресурс, подскажите...или я просто не туда смотрел )) 

Надіслати
Поділитися на інших сайтах

Запрос выдает путь относительно DIR_IMAGE, заданной в конфиге, а метод  $this->model_tool_image->resize создает масштабированное изображение и возвращает url созданной картинки.

Вроди бы все должно работать. Что возвращает $this->model_tool_image->resize ?

 

За стандартными конструкциями далеко ходить не надо, откройте контроллер и шаблон модуля категорий, там всё есть.

Надіслати
Поділитися на інших сайтах


возвращает заглушку "отсутствует изображение". проверил, фактически оно загружено и к категории привязано. в списке категорий, все отображается корректно

Змінено користувачем anboza
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

смотрите метод tool_image->resize

добавьте там отладочное сообщение, чтобы понять, что туда приходит, и почему файл не найден

Добрый день! был на выезде, не занимался вопросом. Как попробую, отпишу )) Не подумайте, что я просто не ответил.

Надіслати
Поділитися на інших сайтах

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

Уточните вопрос. Что именно нужно?

 

если просто вывести картинку, то открываете: catalog/view/theme/ваша тема/template/product/product.tpl

и в нужном месте, пишете:

<img src="catalog/view/theme/default/image/картинка.png">

меняя путь к картинке, по необходимости.

 

Если что-то другое нужно, уточните

Змінено користувачем anboza
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Пытаюсь вывести изображение,но не выводит, как писал shalan таким способом :

controller/product/pdoduct.php

 $cat_pict = $this->model_catalog_product->getbukletphoto($product_id);
             $data['cat_pict'] = array();
                 foreach($cat_pict as $pic)
            $data['cat_pict'][] = $this->model_tool_image->resize($pic['URL'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));

На выходе ошибка -Fatal error: Call to a member function resize() on null in C:\xampp\htdocs\site2\vqmod\vqcache\vq2-system_storage_modification_catalog_controller_product_product.php on line 257

 

путь в таблице к картинке имеет такой вид - buklet/booklet_size_01.gif 

 

 

 
Надіслати
Поділитися на інших сайтах


Пытаюсь вывести изображение,но не выводит, как писал shalan таким способом :

controller/product/pdoduct.php

 $cat_pict = $this->model_catalog_product->getbukletphoto($product_id);
             $data['cat_pict'] = array();
                 foreach($cat_pict as $pic)
            $data['cat_pict'][] = $this->model_tool_image->resize($pic['URL'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
На выходе ошибка -Fatal error: Call to a member function resize() on null in C:\xampp\htdocs\site2\vqmod\vqcache\vq2-system_storage_modification_catalog_controller_product_product.php on line 257

путь в таблице к картинке имеет такой вид - buklet/booklet_size_01.gif

В каком месте вы добавили этот код?

До или после получения фото товара

Посмотрите, чтобы код был после подключения модели tool/image

Змінено користувачем thentru
Надіслати
Поділитися на інших сайтах


Запрос выдает путь относительно DIR_IMAGE, заданной в конфиге, а метод  $this->model_tool_image->resize создает масштабированное изображение и возвращает url созданной картинки.

Вроди бы все должно работать. Что возвращает $this->model_tool_image->resize ?

 

За стандартными конструкциями далеко ходить не надо, откройте контроллер и шаблон модуля категорий, там всё есть.

возвращает ссылку вида: http://сайт.сom/h 

ошибок нет ((( 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.