Source of file DocumentTemplate.php
Size: 1,948 Bytes - Last Modified: 2019-06-27T09:09:04+00:00
/home/vagrant/www/document-templates/src/DocumentTemplates/DocumentTemplate.php
| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | <?phpnamespace BWF\DocumentTemplates\DocumentTemplates; use BWF\DocumentTemplates\Layouts\TwigLayout; use BWF\DocumentTemplates\Renderers\TwigRenderer; trait DocumentTemplate {use BaseDocumentTemplate; /** * @var \BWF\DocumentTemplates\DocumentTemplates\DocumentTemplateModel */protected $model = null; /** * @param \BWF\DocumentTemplates\DocumentTemplates\DocumentTemplateModelInterface|null $model * @throws \Twig\Error\LoaderError * @throws \Twig\Error\RuntimeError * @throws \Twig\Error\SyntaxError */public function init(DocumentTemplateModelInterface $model = null) { if($model){ $this->model = $model; } else{ $this->model = DocumentTemplateModel::byDocumentClass(get_class($this))->first(); } $this->renderer = new TwigRenderer(); $this->layout = new TwigLayout(); if ($this->model) { $layoutName = $this->model->getLayoutName(); if ($layoutName) { $this->layout->load($layoutName); } } } /** * @return \Illuminate\Support\Collection|\BWF\DocumentTemplates\EditableTemplates\EditableTemplate[] */public function getTemplates() { $templates = collect(); $layoutTemplates = $this->layout->getTemplates(); $layoutTemplateNames = $layoutTemplates->map(function($item){ return $item->getName(); }); if ($this->model) { $templates = $this->model->getEditableTemplates($layoutTemplateNames); } /** @var EditableTemplate $layoutTemplate */ foreach ($layoutTemplates as $layoutTemplate) { $templateName = $layoutTemplate->getName(); if (!$templates->contains('name', $templateName)) { $templates->push($layoutTemplate); } } return $templates; } } |