HosipLan

Untitled

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