diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php index cae588da70af..d5cf2651f002 100644 --- a/app/Http/Controllers/PreviewController.php +++ b/app/Http/Controllers/PreviewController.php @@ -374,11 +374,20 @@ class PreviewController extends BaseController // 'projects' => Project::query()->company()->with('tasks','client')->where('client_id', $client_id)->orderBy('id','desc')->take(2)->get(), // ]; + $ts = (new TemplateService()); - $ts->setCompany($company) - ->setTemplate($design_object) - ->mock(); - + try { + $ts->setCompany($company) + ->setTemplate($design_object) + ->mock(); + } + catch(\Twig\Error\SyntaxError $e) + { + + // return response()->json(['message' => 'Twig syntax is invalid.', 'errors' => new \stdClass], 422); + + } + $html = $ts->getHtml(); if (request()->query('html') == 'true') { diff --git a/app/Http/Middleware/UserVerified.php b/app/Http/Middleware/UserVerified.php index c951c13f3a6f..e45acb74c757 100644 --- a/app/Http/Middleware/UserVerified.php +++ b/app/Http/Middleware/UserVerified.php @@ -21,10 +21,9 @@ use Illuminate\Http\Request; */ class UserVerified { - public $user; - - public function __construct(?User $user) + public function __construct(public ?User $user) { + $this->user = property_exists($user, 'id') ? $user : auth()->user(); } diff --git a/app/Services/Template/TemplateService.php b/app/Services/Template/TemplateService.php index 514f066e8ad7..874ccaff55a0 100644 --- a/app/Services/Template/TemplateService.php +++ b/app/Services/Template/TemplateService.php @@ -29,6 +29,7 @@ use App\Utils\Traits\MakesDates; use Twig\Extra\Intl\IntlExtension; use App\Transformers\TaskTransformer; use App\Transformers\QuoteTransformer; +use App\Services\Template\TemplateMock; use App\Transformers\CreditTransformer; use App\Transformers\InvoiceTransformer; use App\Transformers\PaymentTransformer; @@ -146,11 +147,18 @@ class TemplateService $template = $content->ownerDocument->saveHTML($content); - $template = $this->twig->createTemplate(html_entity_decode($template)); + try { + $template = $this->twig->createTemplate(html_entity_decode($template)); + } + catch(\Twig\Error\SyntaxError $e) { + nlog($e->getMessage()); + throw ($e); + } + $template = $template->render($this->data); $f = $this->document->createDocumentFragment(); - nlog($template); + $f->appendXML(html_entity_decode($template)); $replacements[] = $f; diff --git a/composer.lock b/composer.lock index f1745e73b6bd..1c3d91f5945e 100644 --- a/composer.lock +++ b/composer.lock @@ -13813,16 +13813,16 @@ }, { "name": "turbo124/beacon", - "version": "v1.5.1", + "version": "v1.5.2", "source": { "type": "git", "url": "https://github.com/turbo124/beacon.git", - "reference": "a737499198a3aff2d194d4f2a4c834257187d9b8" + "reference": "4f08b91d3f9326e42f664e667d84100dc8afe752" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/turbo124/beacon/zipball/a737499198a3aff2d194d4f2a4c834257187d9b8", - "reference": "a737499198a3aff2d194d4f2a4c834257187d9b8", + "url": "https://api.github.com/repos/turbo124/beacon/zipball/4f08b91d3f9326e42f664e667d84100dc8afe752", + "reference": "4f08b91d3f9326e42f664e667d84100dc8afe752", "shasum": "" }, "require": { @@ -13869,9 +13869,9 @@ "turbo124" ], "support": { - "source": "https://github.com/turbo124/beacon/tree/v1.5.1" + "source": "https://github.com/turbo124/beacon/tree/v1.5.2" }, - "time": "2023-09-24T07:20:04+00:00" + "time": "2023-10-01T07:13:02+00:00" }, { "name": "twig/intl-extra",