Добавление комментария при оформлении заказа — различия между версиями
| Whoa (обсуждение | вклад) | Vitaliks (обсуждение | вклад)  | ||
| (не показаны 2 промежуточные версии 1 участника) | |||
| Строка 1: | Строка 1: | ||
| − | '''Актуально для версии 20.''' | + | '''Актуально для версии 20.''' | 
| − | + | == Задача ==  | |
| − | |||
| + | Реализовать возможность добавления покупателю комментария к заказу<br/> | ||
| + | |||
| + | == Решение == | ||
| В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле: | В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле: | ||
| <pre> | <pre> | ||
| Строка 22: | Строка 24: | ||
| Далее, в файле  '''~/classes/components/emarket/customMacros.php''' добавляем код следующего метода: | Далее, в файле  '''~/classes/components/emarket/customMacros.php''' добавляем код следующего метода: | ||
| <source lang="php"> | <source lang="php"> | ||
| − | + | public function purchasecomment(){ | |
|      $comment = htmlspecialchars(getRequest('comment')); |      $comment = htmlspecialchars(getRequest('comment')); | ||
|      $ini = cmsController::getInstance()->getModule('emarket'); |      $ini = cmsController::getInstance()->getModule('emarket'); | ||
| Строка 30: | Строка 32: | ||
|      $order->commit(); |      $order->commit(); | ||
|      $ini->redirect('/emarket/purchase/'); |      $ini->redirect('/emarket/purchase/'); | ||
| − | + | } | |
| </source> | </source> | ||
| Строка 37: | Строка 39: | ||
| <source lang="php"> | <source lang="php"> | ||
| <?php | <?php | ||
| − | $permissions = array('purchasing' => array('purchasecomment')); | + |     $permissions = array('purchasing' => array('purchasecomment')); | 
| ?> | ?> | ||
| </source> | </source> | ||
Текущая версия на 07:53, 17 мая 2019
Актуально для версии 20.
Задача
Реализовать возможность добавления покупателю комментария к заказу
Решение
В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле:
<span>Ваш комментарий:</span> <textarea style="width: 300px; height: 50px;" name="comment"/></textarea>
Также необходимо поменять action формы с:
/emarket/purchase/
на:
/emarket/purchasecomment/
Далее, в файле  ~/classes/components/emarket/customMacros.php добавляем код следующего метода:
public function purchasecomment(){
    $comment = htmlspecialchars(getRequest('comment'));
    $ini = cmsController::getInstance()->getModule('emarket');
    $order = $ini->getBasketOrder(false);
    $order->setValue('comment', $comment);
    $order->commit();
    $ini->redirect('/emarket/purchase/');
}
В директории ~/classes/components/emarket/ создаем файл permissions.custom.php со следующим содержанием:
<?php
    $permissions = array('purchasing' => array('purchasecomment'));
?>
Теперь при оформлении заказа пользователь сможет оставить комментарий к заказу. При просмотре заказа в административной части, комментарий будет отображаться в блоке "Свойства заказа".
