Рекомендуемые сообщения

anboza    2

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

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

 

Что делалось: 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= , то текстом выводятся все пути, которые вписаны в базе. Название категории работает корректно.путь в базе к изображению категории - не корректный странный какой-то путь указан....

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shalan    36

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

$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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
anboza    2

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

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

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shalan    36

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
anboza    2

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

Изменено пользователем anboza

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shalan    36

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mirstiker    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
anboza    2

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
anboza    2

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

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

 

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

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

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

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

 

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

Изменено пользователем anboza

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mirstiker    0

Пытаюсь вывести изображение,но не выводит, как писал 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 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
thentru    172

Пытаюсь вывести изображение,но не выводит, как писал 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mirstiker    0

model_tool_image

Спасибо помогло,перекинул код и все заработало))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
anboza    2

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу