Пользовательский атрибут изображения Magento. Как мне войти в веб-интерфейс? - PullRequest
5 голосов
/ 09 июля 2010

Я добавил атрибут изображения с именем и меткой, например, Новое изображение, new_image.

Как мне получить это, например, из view.phtml? Я думал, что это будет так же просто, как

<?php
    echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150);
?>

Но это выдает ошибку.

Кто-нибудь знает правильный способ сделать это?

Большое спасибо.

Ответы [ 8 ]

3 голосов
/ 13 ноября 2013

Вам необходимо добавить пользовательское изображение-заполнитель в папку скина: images/catalog/product/placeholder/custom_image.jpg

3 голосов
/ 19 марта 2012

Ответ слишком поздно для вас, но может помочь другим. Следующий ответ относится к странице просмотра продукта.

Сначала проверьте, имеет ли этот атрибут какое-либо значение или нет.

$isNewImage =$_product->getResource()->getAttribute('new_image')->getFrontend()->getValue($_product);

Если для бэк-энда выбрано какое-то значение

<?php if ( $isNewImage != 'no_selection'):?>

$_newImg ='<img id="your-id" src="'.$this->helper('catalog/image')->init($_product, 'new_image')->resize(300,300).'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />';

 echo $_helper->productAttribute($_product, $_newImg , 'new_image'); 

<?php  endif; ?>
3 голосов
/ 28 ноября 2010

У меня была та же проблема с отображением в списке, но, наконец, я нашел способ ее решить. Я обнаружил, что атрибут отображается только на странице просмотра продукта, а не на странице списка. Итак, я снова загрузил продукт как:

$product=Mage::getModel('catalog/product')->load($_product->getId());

И когда я использовал $product вместо $_product в отображаемом изображении, т.е.

helper('catalog/image')->init($product, 'new_image')->resize(150, 150); ?>

это сработало.

Я знаю, что это не очень хороший способ сделать это, но я не знаю другого способа. Может быть, мы могли бы сделать что-то, чтобы выбрать атрибут в списке.

1 голос
/ 25 апреля 2019

Похоже, вы используете $ _product из коллекции - попробуйте сначала загрузить его:

$product = Mage::getModel('catalog/product')->load($_product->getId());
$this->helper('catalog/image')->init($product, 'new_image')->resize(150, 150);
1 голос
/ 28 января 2011

Schonkton, я могу убедиться, что ваш код работал нормально в catalog / product / view.phtml. Я полагаю, что вы добавили атрибут изображения в группу атрибутов ... Заметьте, что вывод эха будет передавать ссылку на изображение, поэтому его необходимо заключить в тег изображения.

    echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150);
0 голосов
/ 30 мая 2018

Но это выдает ошибку.

Бьюсь об заклад, ваша ошибка в var / report похожа на

Image not found 

Убедитесь, что вы загрузили изображение в продукт.Я предлагаю использовать пример из bhab для предотвращения ошибок, если у продуктов нет нового изображения.

Итак, убедитесь, что

  1. атрибут new_image существует
  2. атрибут находится в вашем текущем наборе атрибутов
  3. view.phtml использует код bhabs
  4. новый_изображение-изображение дается в продукте
0 голосов
/ 26 июля 2012

Код Фаррухса близок к лучшему ответу,

Хотя он предполагает, что у нас всегда есть объект $ _helper по умолчанию, если это не так, просто вызовите echo, где приведен атрибут $ _newImg

Во-вторых, я отображаю свое изображение во всплывающем окне jquery scriptoluscious, и этот код заставляет это окно открывать сам сайт во всплывающем окне, а на 3-м уровне отображает мой атрибут изображения ... Это почти похоже начало фильма, когда вы продолжаете нажимать на всплывающее окно в рамке всплывающего окна, пока не получите изображение ... Просто хотел поделиться странностью!

0 голосов
/ 10 июля 2010

Существует только несколько допустимых строковых значений для этого вызова инициализации: image, small_image и thumbnail, соответствующих атрибутам продукта для этих изображений. Если вы хотите называть изображения таким образом, вам нужно установить new_image в качестве одного из этих трех изображений на панели администрирования.

В противном случае ищите методы «галереи» в продукте, так как они предоставят вам все ваши изображения для повторения.

Спасибо, Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...