Advertisement
Northys

Untitled

Apr 6th, 2014
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.94 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: northys
  5.  * Date: 4/6/14
  6.  * Time: 5:11 PM
  7.  */
  8.  
  9. namespace App\Libs\Wime\UI;
  10.  
  11. use Nette;
  12.  
  13.  
  14. class BaseControl extends Nette\Application\UI\Control
  15. {
  16.  
  17.     /**
  18.      * @var Nette\DI\Container
  19.      */
  20.     private $serviceLocator;
  21.  
  22.     /**
  23.      * @var Nette\Localization\ITranslator|Translator
  24.      */
  25.     private $translator;
  26.  
  27.  
  28.  
  29.     public function __construct()
  30.     {
  31.         parent::__construct();
  32.     }
  33.  
  34.  
  35.  
  36.     public function injectContext(Nette\DI\Container $serviceLocator)
  37.     {
  38.         $this->serviceLocator = $serviceLocator;
  39.     }
  40.  
  41.  
  42.  
  43.     /**
  44.      * @return Nette\DI\Container|\SystemContainer
  45.      */
  46.     protected function getServiceLocator()
  47.     {
  48.         if ($this->serviceLocator === NULL) {
  49.             $this->serviceLocator = $this->getPresenter()->getContext();
  50.         }
  51.  
  52.         return $this->serviceLocator;
  53.     }
  54.  
  55.  
  56.  
  57.     /**
  58.      * @param string $class
  59.      * @return Nette\Templating\FileTemplate|Nette\Templating\ITemplate|\stdClass
  60.      */
  61.     protected function createTemplate($class = NULL)
  62.     {
  63.         $template = parent::createTemplate($class);
  64.         /** @var \Nette\Templating\FileTemplate|\stdClass $template */
  65.  
  66.         $sl = $this->getServiceLocator();
  67.         $template->consts = $this->presenter->template->consts;
  68.         $template->productionMode = $sl->expand('%productionMode%');
  69.  
  70.         foreach ($sl->findByTag('helperLoader') as $loader => $tags) {
  71.             $template->registerHelperLoader(callback($sl->getService($loader), 'loader'));
  72.         }
  73.  
  74.         return $template;
  75.     }
  76.  
  77.  
  78.  
  79.     /**
  80.      * @param \Kdyby\Translation\Translator|\Nette\Localization\ITranslator $translator
  81.      * @return BaseControl
  82.      */
  83.     public function setTranslator($translator)
  84.     {
  85.         $this->translator = $translator;
  86.     }
  87.  
  88.  
  89.  
  90.     /**
  91.      * @return \Kdyby\Translation\Translator|\Nette\Localization\ITranslator
  92.      */
  93.     public function getTranslator()
  94.     {
  95.         if ($this->translator === NULL) {
  96.             $this->translator = $this->getServiceLocator()->getByType('Nette\Localization\ITranslator');
  97.         }
  98.  
  99.         return $this->translator;
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement