Добавление блока в карточку товара

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

11.12.2010 21:41

Необходимо добавить блок в карточку товара, в блоке будет отображаться ссылочная картинка. Данный блок будет привязан к атрибуту товара. Если в атрибуте используется ссылка, то блок отображает картинку при клике на которую происходит переход, если атрибут не используется, то картинки в блоке нет.
Вопрос, какой тип атрибута использовать?
Как это всё реализвать, не нарушая всей блочности движка.

Может где-то есть статейка...я не нашёл ((

Понятно что всё можно запихать в файл и руками прописать, но хочется сделать всё по уму.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

11.12.2010 21:44

Разумеется, в стандартной сборке нет такой узкоспецифической функции.
Сами сделайте в соттветствующем шаблоне текущей темы - это и есть по уму.

#3 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

11.12.2010 21:49

а какой лучше тип атрибута использовать?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

11.12.2010 21:51

Вы изложите проблему на более высоком уровне: что нужно покупателю и что нужно продавцу.

#5 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

11.12.2010 22:12

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


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

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

11.12.2010 22:20

В данном случае задача - типовая, хоть и нерешаемая стандартными функциями.
Я рекомендую вам поискать готовый модуль.
Вот, навскидку, нашёл такой: Zensolutions Image Gallery
Но, думаю, он не единственный в наличии.

#7 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

12.12.2010 22:15

для себя решил этот вопрос следующим образом

создал атрибут "cargallery" с текстовым полем, туда вводится внутренняя ссылка на сайт (скрипт галереи)

в фале добавил

<?php echo $this->getChildHtml('media') ?>
<a href="<?php echo $_product->getResource()->getAttribute('cargallery')->getFrontend()->getValue($_product)?>"target="_blank">
<img style="margin-bottom:1px"; align="left" src="/skin/frontend/default/hellowired/images/foto_galery.png" /></a>


Но остался вопрос:
Кнопка выводится постоянно, а выводить нужно только при одном условии, если в значении атрибута есть текст, который является ссылкой.
Уже голову сломал...
Подскажите где ошибка?

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

12.12.2010 23:00

Запрограммируйте алгоритм, который будет определять, является ли атрибут ссылкой.

#9 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

12.12.2010 23:58

логику и код вижу следующий

$data - т.к. вводиться будет не полный url

<script type="text/javascript">
if (<?php echo $_product->getAttribute('cargallery')?>==($data)) 
{
   <a href="<?php echo $_product->getResource()->getAttribute('cargallery')->getFrontend()->getValue($_product)?>"target="_blank">
   <img style="margin-bottom:1px"; align="left" src="/skin/frontend/default/hellowired/images/foto_galery.png" /></a>;

} else {

  echo "false";
}
</script>


единственный вопрос, всё ли верно?

#10 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

13.12.2010 15:05

Я вообще не понимаю, каково значение переменной $data и в чём смысл сравнения этой переменной со значением атрибута товара.

#11 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

31.12.2010 14:41

Ваш код работать не будет, потому что теги HTML в программном коде JavaScript приведут к сбою интерпретатора JavaScript.

Поделиться темой: