8 lines
972 B
PHP
8 lines
972 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
namespace Esun\EmailPreview\Controller\Adminhtml\Preview;
|
|
use Esun\EmailPreview\Model\PreviewService;
|
|
use Magento\Backend\App\Action;
|
|
use Magento\Framework\Controller\Result\RawFactory;
|
|
class Render extends Action { public const ADMIN_RESOURCE='Esun_EmailPreview::preview'; public function __construct(Action\Context $context, private readonly PreviewService $service, private readonly RawFactory $rawFactory){parent::__construct($context);} public function execute(){ $result=$this->rawFactory->create(); try{$email=$this->service->render($this->getRequest()->getParams()); return $result->setHeader('Content-Type','text/html; charset=UTF-8',true)->setContents($email['html']);}catch(\Throwable $e){return $result->setHeader('Content-Type','text/html; charset=UTF-8',true)->setHttpResponseCode(400)->setContents('<div style="font:16px Arial;padding:24px;color:#b30000">'.htmlspecialchars($e->getMessage(),ENT_QUOTES,'UTF-8').'</div>');}} }
|