Добавление ссылки на версию для печати заказа в личном кабинете — различия между версиями
(Новая страница: «== Задача == Вывести в личном кабинете для заказа ссылку на версию для печати. == Решение == П…») |
|||
Строка 4: | Строка 4: | ||
== Решение == | == Решение == | ||
− | Первоначально необходимо создать кастомный макрос для вывода версии для печати, на основе уже существующего макроса ''order_printable'', для этого в файл '''\classes\modules\emarket\__custom.php''' скопируем текст макроса и назовем этот макрос например '' | + | Первоначально необходимо создать кастомный макрос для вывода версии для печати, на основе уже существующего макроса ''order_printable'', для этого в файл '''\classes\modules\emarket\__custom.php''' скопируем текст макроса и назовем этот макрос например ''order_printable_custom''. |
+ | Так же в данном макросе необходимо будет изменить условие получения ID заказа. В конечном итоге код в файле должен выглядеть примерно так как показано ниже: | ||
<source lang="php"> | <source lang="php"> | ||
Строка 10: | Строка 11: | ||
abstract class __emarket_custom { | abstract class __emarket_custom { | ||
//TODO: Write here your own macroses | //TODO: Write here your own macroses | ||
− | public function order_printable_custom() { | + | public function order_printable_custom( $orderIdCustom = false ) { |
− | $ | + | if(!$orderIdCustom) { |
− | + | $orderIdCustom = getRequest('orderId'); | |
− | + | if (!$orderIdCustom) { | |
− | + | $this->redirect("/emarket/"); | |
+ | } | ||
} | } | ||
Строка 34: | Строка 36: | ||
</source> | </source> | ||
− | В переменной ''$uri'' у нас указана ссылка на шаблон по которому будет выводиться версия для печати, мы указали файл '''emarket-order-printable_custom.xsl''' | + | В переменной ''$uri'' у нас указана ссылка на шаблон по которому будет выводиться версия для печати, мы указали файл '''emarket-order-printable_custom.xsl''' и в папке '''/templates/demodizzy/xslt/sys-tpls/''' нам необходимо создать файл с таким же названием (можно скопировать уже имеющийся шаблон '''emarket-order-printable.xsl'''). |
+ | |||
+ | == Вывод ссылки на печатную версию в TPL шаблонизаторе == | ||
+ | |||
+ | |||
+ | |||
+ | == Вывод ссылки на печатную версию в XSLT шаблонизаторе == |
Версия 13:06, 7 января 2014
Содержание
Задача
Вывести в личном кабинете для заказа ссылку на версию для печати.
Решение
Первоначально необходимо создать кастомный макрос для вывода версии для печати, на основе уже существующего макроса order_printable, для этого в файл \classes\modules\emarket\__custom.php скопируем текст макроса и назовем этот макрос например order_printable_custom. Так же в данном макросе необходимо будет изменить условие получения ID заказа. В конечном итоге код в файле должен выглядеть примерно так как показано ниже:
<?php
abstract class __emarket_custom {
//TODO: Write here your own macroses
public function order_printable_custom( $orderIdCustom = false ) {
if(!$orderIdCustom) {
$orderIdCustom = getRequest('orderId');
if (!$orderIdCustom) {
$this->redirect("/emarket/");
}
}
$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 и в папке /templates/demodizzy/xslt/sys-tpls/ нам необходимо создать файл с таким же названием (можно скопировать уже имеющийся шаблон emarket-order-printable.xsl).