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

Материал из Umicms
Перейти к:навигация, поиск
Строка 40: Строка 40:
 
Данный функционал был проверен на работоспособность в версии системы 2.8.5.2.
 
Данный функционал был проверен на работоспособность в версии системы 2.8.5.2.
 
</p>
 
</p>
[[Категория:Модуль Интернет магазин]][[Категория:Написание кастомных макросов]]
+
[[Категория:Модуль Интернет магазин]][[Категория:Написание кастомных макросов]][[Категория: Верстка в XSLT]]

Версия 09:30, 5 июня 2013

Рассмотрим добавление комментария к заказу на примере демошаблона "Интернет-магазин современный". Для начала, напишем кастом, который будет записывать заказ.Откроем ~/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.