Добавление комментария к заказу (demodizzy)

Материал из Umicms
Версия от 09:30, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

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

Рассмотрим добавление комментария к заказу на примере демошаблона "Интернет-магазин современный". Для начала, напишем кастом, который будет записывать заказ.Откроем ~/classes/modules/emarket/__custom.php и поместим в него код:

<?php
		public function purchasecomment(){
		    $comment = htmlspecialchars(getRequest('comment'));
		    $ini = cmsController::getInstance()->getModule('emarket');
		 
		    $order = $ini->getBasketOrder(false);
		    $order->comment = $comment;
		    $order->commit();
		    $ini->redirect('/emarket/purchase/');
	}
?>

Также, пропишем этот макрос в файл ~/classes/modules/emarket/permissions.custom.php

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

После этого, в модуле "Шаблоны данных" создадим поле типа "Простой текст" с идентификатором "comment". Осталось только изменить шаблон дизайна, выводящий корзину. В demodizzy это ~/xsltTpls/modules/emarket/cart.xsl. Откроем его, и заменим

<a href="{$lang-prefix}/emarket/purchase/" class="button big basket_purchase">
	<xsl:text>&begin-purchase;</xsl:text>
</a>

на

<form action="{$lang-prefix}/emarket/purchasecomment/" >
					Ваш комментарий:<br />
					<textarea style="width: 300px; height: 50px;" name="comment"></textarea>
					<br /><br />
					<input type="submit" class="button big basket_purchase" value="&begin-purchase;" />
				</form>

Теперь при оформлении заказа пользователь сможет добавить к нему комментарий.

Данный функционал был проверен на работоспособность в версии системы 2.8.5.2.