فهرست منبع

FD3-612 se agrega chequeo si existe template

Espinoza Guillermo 6 سال پیش
والد
کامیت
7e50327475
3فایلهای تغییر یافته به همراه73 افزوده شده و 1 حذف شده
  1. 6 0
      Resources/config/services.yml
  2. 15 1
      Services/TemplateService.php
  3. 52 0
      Twig/TemplateExtension.php

+ 6 - 0
Resources/config/services.yml

@@ -10,3 +10,9 @@ services:
             - { name: sonata.admin, manager_type: orm, group: Template, label: Template, label_catalogue: TemplateBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:
             - [setTranslationDomain, [TemplateBundle]]
+
+    template.twig_template_extension:
+       class: TemplateBundle\Twig\TemplateExtension
+       arguments: [ '@template.template_service' ]
+       tags:
+           - { name: twig.extension }

+ 15 - 1
Services/TemplateService.php

@@ -53,7 +53,7 @@ class TemplateService
     {
         $content = null;
         $template = $this->getTemplateByName($name);
-	$params = array('em' => $this->entityManager) + $params;
+        $params = array('em' => $this->entityManager) + $params;
         if (!is_null($template)) {
             $content = $this->render($template, $params, $engine);
     	    var_dump($content);
@@ -120,5 +120,19 @@ class TemplateService
 
         return $filename;
     }
+    
+    /**
+     * Retorna si encuentra un template en la db con nombre = $name
+     * 
+     * @param string $name
+     *
+     * @return boolean
+     */
+    public function exists($name) 
+    {
+        $template = $this->getTemplateByName($name);
+        
+        return !is_null($template);
+    }
 
 }

+ 52 - 0
Twig/TemplateExtension.php

@@ -0,0 +1,52 @@
+<?php
+
+namespace TemplateBundle\Twig;
+
+use TemplateBundle\Services\TemplateService;
+
+class TemplateExtension extends \Twig_Extension
+{
+
+    /**
+     * @var TemplateService
+     */
+    private $templateService;
+
+
+    /**
+     * @param TemplateService $templateService
+     */
+    public function __construct(TemplateService $templateService)
+    {
+        $this->templateService = $templateService;
+    }
+
+    /**
+     * @return array
+     */
+    public function getFunctions()
+    {
+        return array(
+            new \Twig_SimpleFunction('template_exists', array($this, 'templateExists')),
+        );
+    }
+
+    /**
+     * @param string $name
+     *
+     * @return boolean
+     */
+    public function templateExists($name)
+    {
+        return $this->templateService->exists($name);
+    }
+
+    /**
+     * @return string
+     */
+    public function getName()
+    {
+        return 'template_extension';
+    }
+
+}