UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: Niall от 29 Января 2019, 19:52:24

Название: Расширение функционала метода emarket basket
Отправлено: Niall от 29 Января 2019, 19:52:24
Добрый день,

Я не так давно работаю с umi cms.
Мне необходимо реализовать, что-то вроде дополнительного комментария к товару, который будет отправляться в корзину. (т.е. нажали добавить в корзину и возникает модальное окно, которое просит дополнительной информации).

Я нашел данный пример (http://wiki.umisoft.ru/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_emarket_basket).
Но как я выяснил спустя недолгое время, этот пример писался для старого umi cms.
Сейчас я использую последнюю сборку umi и php7.

Я добавил свой кастом макрос, который скопировал из (/classes/сomponents/emarket/macros.php),
путь: /classes/сomponents/emarket/customMacros.php
<?php
 public function basket_custom($mode = false, $itemType = false, $itemId = false) {
  ...
   switch ($mode) {
     case 'put' : {
$module->handleBasketPutCustom($itemType, $itemId, $order);
break;
     }
  ...
}
public function handleBasketPutCustom($itemType = false, $itemId = false, $order = false){
...
  if ($itemType == 'element') {
$orderItem->custom_field = htmlspecialchars(getRequest('custom_field'));
$orderItem = $this->module->getBasketItem($itemId, false);
...
}
?>

Так же я создал файл с permissions /classes/сomponents/emarket/permissions.custom.php
<?php
  $permissions = ['purchasing' => ['basket_custom', 'handleBasketPutCustom']];
?>

custom_field - я уже добавил в административной панели.

Чтобы протестировать, что это работает я пытался перейти по ссылке:
  http://websitename.ru/udata/emarket/basket_custom/put/element/221/?custom_field="sw03"
И у меня добавился обычный товар 221, без дополнительно поля на который я расчитывал.

В итоге основной вопрос, правильно ли я адаптировал пример для новой umi? (если да, то может кто-то сталкивался уже с подобной проблемой, почему не работает)
Или может быть, есть какие-то другие способы это реализовать. Был бы благодарен за подсказку/пример/направление.
Основная проблема - это необходимо добавить новое поле поле к товару, а заполнить этот "комментарий" нужно при нажатии на "добавить в корзину".

Заранее спасибо :)
Название: Re: Расширение функционала метода emarket basket
Отправлено: admin2@pomdv.com от 24 Февраля 2019, 15:29:06
а вы в шаблоне типа данных "заказ" - это самое поле создали?