Skip to content

Instantly share code, notes, and snippets.

@gmorel
Last active August 29, 2015 13:56
Show Gist options
  • Select an option

  • Save gmorel/9095525 to your computer and use it in GitHub Desktop.

Select an option

Save gmorel/9095525 to your computer and use it in GitHub Desktop.

Revisions

  1. gmorel revised this gist Feb 25, 2014. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion php
    Original file line number Diff line number Diff line change
    @@ -20,7 +20,6 @@ use Thelia\Core\Template\TemplateDefinition;

    /**
    * Class TemplateListener
    * @package FinaxyThelia2Fundation\Listener
    * @author Manuel Raynaud <[email protected]>
    */
    class TemplateListener implements EventSubscriberInterface
  2. gmorel created this gist Feb 19, 2014.
    4 changes: 4 additions & 0 deletions gistfile1.xml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,4 @@
    <service id="base.thelia2_fundation.template.listener" class="BaseTemplate\Listener\TemplateListener" scope="request">
    <argument type="service" id="thelia.parser"/>
    <tag name="kernel.event_subscriber"/>
    </service>
    75 changes: 75 additions & 0 deletions php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,75 @@
    <?php
    /**
    * Created by PhpStorm.
    * Date: 2/19/14
    * Time: 3:16 PM
    *
    * @author Guillaume MOREL <[email protected]>
    */

    namespace BaseTemplate\Listener;

    use Symfony\Component\DependencyInjection\Container;
    use Symfony\Component\DependencyInjection\ContainerInterface;
    use Symfony\Component\EventDispatcher\EventSubscriberInterface;
    use Symfony\Component\HttpKernel\KernelEvents;
    use Thelia\Core\Event\TheliaEvents;
    use Thelia\Core\Template\Smarty\SmartyParser;
    use Thelia\Core\Template\TemplateDefinition;


    /**
    * Class TemplateListener
    * @package FinaxyThelia2Fundation\Listener
    * @author Manuel Raynaud <[email protected]>
    */
    class TemplateListener implements EventSubscriberInterface
    {
    /** @var SmartyParser */
    public $parser;

    /**
    * @param SmartyParser $parser
    */
    public function __construct(SmartyParser $parser)
    {
    $this->parser = $parser;
    }

    public function boot($event)
    {
    $this->parser->addTemplateDirectory(
    TemplateDefinition::FRONT_OFFICE,
    'baseTemplate',
    THELIA_TEMPLATE_DIR . '/frontOffice/baseTemplate',
    '0'
    );
    }

    /**
    * Returns an array of event names this subscriber wants to listen to.
    *
    * The array keys are event names and the value can be:
    *
    * * The method name to call (priority defaults to 0)
    * * An array composed of the method name to call and the priority
    * * An array of arrays composed of the method names to call and respective
    * priorities, or 0 if unset
    *
    * For instance:
    *
    * * array('eventName' => 'methodName')
    * * array('eventName' => array('methodName', $priority))
    * * array('eventName' => array(array('methodName1', $priority), array('methodName2'))
    *
    * @return array The event names to listen to
    *
    * @api
    */
    public static function getSubscribedEvents()
    {
    return array(
    KernelEvents::REQUEST => array('boot', 128)
    );
    }
    }