Добавление ссылки на версию для печати заказа в личном кабинете

Материал из Umicms
Версия от 08:03, 24 декабря 2013; PilipenkAV (обсуждение | вклад) (Новая страница: «== Задача == Вывести в личном кабинете для заказа ссылку на версию для печати. == Решение == П…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Задача

Вывести в личном кабинете для заказа ссылку на версию для печати.

Решение

Первоначально необходимо создать кастомный макрос для вывода версии для печати, на основе уже существующего макроса order_printable, для этого в файл \classes\modules\emarket\__custom.php скопируем текст макроса и назовем этот макрос например custom_order_printable. Так же в данном макросе необходимо будет изменить условие получения ID заказа. В конечном итоге файл должен выглядеть примерно так как показано в коде ниже:

<?php
	abstract class __emarket_custom  {
		//TODO: Write here your own macroses
		public function order_printable_custom() {

			$orderId = getRequest('orderId');
			
			if(!$orderId) {
				$this->redirect("/emarket/personal/");
			}
			
			$uri = "uobject://{$orderId}/?transform=sys-tpls/emarket-order-printable_custom.xsl";
			//$uri = "uobject://{$orderId}/";
			$result = file_get_contents($uri);
			$buffer = outputBuffer::current();
			$buffer->charset('utf-8');
			$buffer->contentType('text/html');
			//$buffer->contentType('text/xml');
			$buffer->clear();
			$buffer->push($result);
			$buffer->end();
			return;
		}
	};
?>

В переменной $uri у нас указана ссылка на шаблон по которому будет выводиться версия для печати, мы указали файл emarket-order-printable_custom.xsl,