Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: northys
- * Date: 4/6/14
- * Time: 5:11 PM
- */
- namespace App\Libs\Wime\UI;
- use Nette;
- class BaseControl extends Nette\Application\UI\Control
- {
- /**
- * @var Nette\DI\Container
- */
- private $serviceLocator;
- /**
- * @var Nette\Localization\ITranslator|Translator
- */
- private $translator;
- public function __construct()
- {
- parent::__construct();
- }
- public function injectContext(Nette\DI\Container $serviceLocator)
- {
- $this->serviceLocator = $serviceLocator;
- }
- /**
- * @return Nette\DI\Container|\SystemContainer
- */
- protected function getServiceLocator()
- {
- if ($this->serviceLocator === NULL) {
- $this->serviceLocator = $this->getPresenter()->getContext();
- }
- return $this->serviceLocator;
- }
- /**
- * @param string $class
- * @return Nette\Templating\FileTemplate|Nette\Templating\ITemplate|\stdClass
- */
- protected function createTemplate($class = NULL)
- {
- $template = parent::createTemplate($class);
- /** @var \Nette\Templating\FileTemplate|\stdClass $template */
- $sl = $this->getServiceLocator();
- $template->consts = $this->presenter->template->consts;
- $template->productionMode = $sl->expand('%productionMode%');
- foreach ($sl->findByTag('helperLoader') as $loader => $tags) {
- $template->registerHelperLoader(callback($sl->getService($loader), 'loader'));
- }
- return $template;
- }
- /**
- * @param \Kdyby\Translation\Translator|\Nette\Localization\ITranslator $translator
- * @return BaseControl
- */
- public function setTranslator($translator)
- {
- $this->translator = $translator;
- }
- /**
- * @return \Kdyby\Translation\Translator|\Nette\Localization\ITranslator
- */
- public function getTranslator()
- {
- if ($this->translator === NULL) {
- $this->translator = $this->getServiceLocator()->getByType('Nette\Localization\ITranslator');
- }
- return $this->translator;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement