Добавление комментария при оформлении заказа — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 1: Строка 1:
В данной статье будет описан способ подключения функционала, который позволит покупателю, при оформлении заказа, оставить свой комментарий к заказу.
+
'''Актуально для версии 2.9.6'''<br/><br/>
 +
'''Задача:''' Реализовать возможность добавления покупателю комментария к заказу<br/><br/>
 +
'''Реализация:'''
  
Итак какие действия необходимо выполнить. Необходимо зайти в модуль "Шаблоны данных", открыть на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавить поле Комментарий, с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, необходимо рядом с кнопкой "Оформить заказ" прописать следующее поле:
+
В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле:
 
<pre>
 
<pre>
 
Ваш комментарий:<br />
 
Ваш комментарий:<br />
Строка 8: Строка 10:
 
</pre>
 
</pre>
  
также необходимо поменять action формы на:
+
также необходимо поменять action формы с:
 +
<pre>
 +
/emarket/purchase/
 +
</pre>
 +
на:
 
<pre>
 
<pre>
 
/emarket/purchasecomment/
 
/emarket/purchasecomment/
 
</pre>
 
</pre>
  
В итоге, форма будет примерно такой (пример для tpl-шаблонов):
 
<pre>
 
<form action="%pre_lang%/emarket/purchasecomment/">
 
Ваш комментарий:<br/>
 
<textarea style="width: 300px; height: 50px;" name="comment"/></textarea>
 
<br /><br />
 
<input type="submit" value="Оформить заказ" />
 
</form>
 
</pre>
 
  
Далее в папке '''classes/modules/emarket/''' , в файл '''__custom.php''' добавляем следующий метод:
+
Далее, в файле  '''/classes/modules/emarket/__custom.php''' добавляем код следующего метода:
 
<source lang="php">
 
<source lang="php">
 
   public function purchasecomment(){
 
   public function purchasecomment(){
Строка 30: Строка 27:
  
 
     $order = $ini->getBasketOrder(false);
 
     $order = $ini->getBasketOrder(false);
     $order->comment = $comment;
+
     $order->setValue('comment', $comment);
 
     $order->commit();
 
     $order->commit();
 
     $ini->redirect('/emarket/purchase/');
 
     $ini->redirect('/emarket/purchase/');
   
 
 
   }
 
   }
 
</source>
 
</source>
  
  
В этой же папке создаем файл '''permissions.custom.php''' с таким содержанием:
+
В директории '''/classes/modules/emarket''' создаем файл '''permissions.custom.php''' со следующим содержанием:
 
<source lang="php">
 
<source lang="php">
 
<?php
 
<?php

Версия 09:22, 1 июня 2014

Актуально для версии 2.9.6

Задача: Реализовать возможность добавления покупателю комментария к заказу

Реализация:

В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле:

Ваш комментарий:<br />
<textarea style="width: 300px; height: 50px;" name="comment"/></textarea>
<br /><br />

также необходимо поменять action формы с:

/emarket/purchase/

на:

/emarket/purchasecomment/


Далее, в файле /classes/modules/emarket/__custom.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/modules/emarket создаем файл permissions.custom.php со следующим содержанием:

<?php
$permissions = array('purchasing' => array('purchasecomment'));
?>

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