* Доступно с версии 6.8.7
Пример реализации печати документа заказа в личном кабинете клиента.
<a href="?action=print&printlayout_id=10&guid={guid}">Печать</a>, где в printlayout_id указываем идентификатор шаблона документа, который будет использован для генерации документа.<?php
// Печать документа
if (Core_Array::getGet('action') == 'print')
{
// Драйвер шаблона документов. 1-HTML, 2-Docx
$driver_id = 2;
/* Массив идентификаторов доступных для заказа шаблонов документов:
* 9 - Акт об оказании услуг
* 10 - Счет на оплату
* 11 - ТОРГ-12
* 12 - Товарный чек
* 13 - Счет-фактура
*/
$aAvailablePrintlayouts = array(9, 10, 11, 12, 13);
$printlayout_id = intval(Core_Array::getGet('printlayout_id'));
if (in_array($printlayout_id, $aAvailablePrintlayouts))
{
$oPrintlayout = Core_Entity::factory('Printlayout')->getById($printlayout_id);
if (!is_null($oPrintlayout))
{
$oPrintlayout_Controller = new Printlayout_Controller($oPrintlayout);
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
$oPrintlayout_Driver = Core_Entity::factory('Printlayout_Driver', $driver_id);
$guid = strval(Core_Array::getGet('guid'));
$oShop_Order = $oShop->Shop_Orders->getByGuid($guid);
if (!is_null($oShop_Order))
{
$oPrintlayout_Controller
->replace($oShop_Order->getPrintlayoutReplaces())
->driver($oPrintlayout_Driver)
->entity($oShop_Order);
$oPrintlayout_Controller->execute()->downloadFile();
exit();
}
}
}
Core_Page::instance()->response->status(404)->sendHeaders()->showBody();
exit();
}