/** * Initializes and return an instance of the given class name. * * @access public * @param string $className * @return mixed */ public function getInstance($className) { switch ($className) { case '\\Zepi\\Web\\General\\Manager\\AssetManager': if ($this->assetManager === null) { $this->assetManager = new $className($this->getDataObjectBackend('assets.data'), $this->framework->getRootDirectory()); $this->assetManager->initializeAssetManager(); } return $this->assetManager; break; case '\\Zepi\\Web\\General\\Manager\\AssetCacheManager': if ($this->assetCacheManager === null) { // Get the cache backends $path = $this->framework->getRootDirectory() . '/cache/'; $fileObjectBackend = new \Zepi\Turbo\Backend\FileObjectBackend($path . 'cachedFiles.data'); $fileBackend = new \Zepi\Turbo\Backend\FileBackend($path); // CSS helper $cssHelper = new \Zepi\Web\General\Helper\CssHelper($fileBackend); // Load the configuration $configurationManager = $this->framework->getInstance('\\Zepi\\Core\\Utils\\Manager\\ConfigurationManager'); $minifyAssets = $configurationManager->getSetting('assets.minifyAssets'); $combineAssetGroups = $configurationManager->getSetting('assets.combineAssetGroups'); $this->assetCacheManager = new $className($this->framework, $this->getInstance('\\Zepi\\Web\\General\\Manager\\AssetManager'), $fileObjectBackend, $fileBackend, $cssHelper, $minifyAssets, $combineAssetGroups); $this->assetCacheManager->initializeAssetCacheManager(); } return $this->assetCacheManager; break; case '\\Zepi\\Web\\General\\Manager\\TemplatesManager': if ($this->templatesManager === null) { $this->templatesManager = new $className($this->framework, $this->getDataObjectBackend('templates.data')); $this->templatesManager->initializeTemplatesManager(); // Execute the register renderer event $runtimeManager = $this->framework->getRuntimeManager(); $runtimeManager->executeEvent('\\Zepi\\Web\\General\\Event\\RegisterRenderers'); } return $this->templatesManager; break; case '\\Zepi\\Web\\General\\Manager\\MenuManager': case '\\Zepi\\Web\\General\\Manager\\MetaInformationManager': return $this->framework->initiateObject($className, array(), true); break; default: return $this->framework->initiateObject($className); break; } }
/** * Renders the template and returns the content. * * @access public * @param string $key * @param array $additionalData * @return string */ public function renderTemplate($key, $additionalData = array()) { return $this->templatesManager->renderTemplate($key, $additionalData); }
/** * Renders the given abstract container element and returns the html code * for the given container. * * @access public * @param \Zepi\Web\UserInterface\Layout\AbstractContainer $container * @return string */ public function render(AbstractContainer $container) { $template = $container->getTemplateKey(); return $this->templatesManager->renderTemplate($template, array('layoutRenderer' => $this, 'container' => $container)); }
/** * Register the html renderer on the templates manager to render * the templates. * * @access public * @param \Zepi\Turbo\Framework $framework * @param \Zepi\Turbo\Request\RequestAbstract $request * @param \Zepi\Turbo\Response\Response $response */ public function execute(Framework $framework, RequestAbstract $request, Response $response) { $this->templatesManager->addRenderer($this->htmlRenderer); }