Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/lib/internal/Customweb/Mvc/Template/Php/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/lib/internal/Customweb/Mvc/Template/Php/Renderer.php
<?php
/**
 *  * You are allowed to use this API in your web application.
 *
 * Copyright (C) 2018 by customweb GmbH
 *
 * This program is licenced under the customweb software licence. With the
 * purchase or the installation of the software in your application you
 * accept the licence agreement. The allowed usage is outlined in the
 * customweb software licence which can be found under
 * http://www.sellxed.com/en/software-license-agreement
 *
 * Any modification or distribution is strictly forbidden. The license
 * grants you the installation in one application. For multiuse you will need
 * to purchase further licences at http://www.sellxed.com/shop.
 *
 * See the customweb software licence agreement for more details.
 *
 */



/**
 * @author Simon Schurter
 * @Bean
 */
class Customweb_Mvc_Template_Php_Renderer extends Customweb_Mvc_Template_Renderer
{
	private $plugins = array();
	
	public function __construct(Customweb_Asset_IResolver $assetResolver, Customweb_DependencyInjection_IContainer $container)
	{
		parent::__construct($assetResolver, $container);
		
		$this->initPlugins();
	}
	
	public function render(Customweb_Mvc_Template_IRenderContext $context)
	{
		$stream = $this->getAssetResolver()->resolveAssetStream($context->getTemplate() . '.phtml');
		
		if ($stream instanceof Customweb_Core_Stream_Input_File) {
			return $this->renderInclude($stream->getFilePath(), $context->getVariables());
		} else {
			return $this->renderEval($stream->read(), $context->getVariables());
		}
	}

	private function renderInclude($template, array $variables)
	{
		extract($variables, EXTR_SKIP);
		
		ob_start();
		include $template;
		$html = ob_get_clean();
		
		return $html;
	}

	private function renderEval($template, array $variables)
	{
		extract($variables, EXTR_SKIP);
		
		ob_start();
		eval($template);
		$html = ob_get_clean();
		
		return $html;
	}
	
	public function __call($name, $arguments)
	{
		if (isset($this->plugins[$name])) {
			$plugin = $this->plugins[$name];
			if ($plugin instanceof Customweb_Mvc_Template_IFilter) {
				return $this->plugins[$name]->filter(current($arguments));
			}
		}
		throw new Exception(Customweb_Core_String::_("The plugin '!plugin' has not been found.")->format(array('!plugin' => $name)));
	}
	
	private function initPlugins()
	{
		$this->addFilter(new Customweb_Mvc_Template_Filter_Translate());
	}
	
	private function addFilter(Customweb_Mvc_Template_IFilter $filter)
	{
		$this->plugins[$filter->getName()] = $filter;
	}
}

Spamworldpro Mini