Files
2026-09-15 10:35:56 +08:00

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>');}} }