Source of file ManagesDocumentTemplates.php

Size: 1,636 Bytes - Last Modified: 2019-06-27T09:09:04+00:00

/home/vagrant/www/document-templates/src/Http/Controllers/ManagesDocumentTemplates.php

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
<?php


namespace BWF\DocumentTemplates\Http\Controllers;


use BWF\DocumentTemplates\DocumentTemplates\DocumentTemplateFactory;
use BWF\DocumentTemplates\DocumentTemplates\DocumentTemplateModel;
use BWF\DocumentTemplates\DocumentTemplates\DocumentTemplateModelInterface;
use BWF\DocumentTemplates\Layouts\TwigLayout;
use Illuminate\Support\Collection;

trait ManagesDocumentTemplates
{
    /**
     * @return Collection|string[]
     */
    protected function  getAvailableLayouts()
    {
        $layout = new TwigLayout();

        return $layout->getAvailableLayouts();
    }

    /**
     * @return \Illuminate\Support\Collection|string[]
     */
    protected function getAvailableClasses()
    {
        $classes = collect($this->documentClasses);
        $savedClasses = DocumentTemplateModel::all()->pluck('document_class');

        return $classes->diff($savedClasses);
    }


    /**
     * @param DocumentTemplateModelInterface $model
     * @return \BWF\DocumentTemplates\EditableTemplates\EditableTemplate[]|\Illuminate\Support\Collection
     * @throws \Exception
     */
    protected function getTemplates(DocumentTemplateModelInterface $model)
    {
        $documentTemplate = DocumentTemplateFactory::build($model);

        return $documentTemplate->getTemplates();
    }

    /**
     * @param DocumentTemplateModelInterface $model
     * @return string[]
     * @throws \Exception
     */
    protected function getPlaceholders(DocumentTemplateModelInterface $model)
    {
        $documentTemplate = DocumentTemplateFactory::build($model);

        return $documentTemplate->getTemplatePlaceholders();
    }

}