Fix tests for translations, where missing in the po/mo files Add original and post translation for compare for outside and inside smarty translation Update documentation and only keep the git update path, the others are deprecated Update phpunit to v11 and update tests according to this, including updated test template data file Add the tools folder to git ignore
86 lines
2.1 KiB
PHP
86 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Smarty\Resource;
|
|
|
|
use Smarty\Smarty;
|
|
|
|
/**
|
|
* Smarty Internal Plugin Resource Eval
|
|
*
|
|
|
|
|
|
* @author Uwe Tews
|
|
* @author Rodney Rehm
|
|
*/
|
|
|
|
/**
|
|
* Smarty Internal Plugin Resource Eval
|
|
* Implements the strings as resource for Smarty template
|
|
* {@internal unlike string-resources the compiled state of eval-resources is NOT saved for subsequent access}}
|
|
*
|
|
|
|
|
|
*/
|
|
class StringEval extends RecompiledPlugin
|
|
{
|
|
/**
|
|
* populate Source Object with meta data from Resource
|
|
*
|
|
* @param \Smarty\Template\Source $source source object
|
|
* @param \Smarty\Template $_template template object
|
|
*
|
|
* @return void
|
|
*/
|
|
public function populate(\Smarty\Template\Source $source, ?\Smarty\Template $_template = null)
|
|
{
|
|
$source->uid = sha1($source->name);
|
|
$source->timestamp = $source->exists = true;
|
|
}
|
|
|
|
/**
|
|
* Load template's source from $resource_name into current template object
|
|
*
|
|
* @param \Smarty\Template\Source $source source object
|
|
*
|
|
* @return string template source
|
|
*@uses decode() to decode base64 and urlencoded template_resources
|
|
*
|
|
*/
|
|
public function getContent(\Smarty\Template\Source $source)
|
|
{
|
|
return $this->decode($source->name);
|
|
}
|
|
|
|
/**
|
|
* decode base64 and urlencode
|
|
*
|
|
* @param string $string template_resource to decode
|
|
*
|
|
* @return string decoded template_resource
|
|
*/
|
|
protected function decode($string)
|
|
{
|
|
// decode if specified
|
|
if (($pos = strpos($string, ':')) !== false) {
|
|
if (!strncmp($string, 'base64', 6)) {
|
|
return base64_decode(substr($string, 7));
|
|
} elseif (!strncmp($string, 'urlencode', 9)) {
|
|
return urldecode(substr($string, 10));
|
|
}
|
|
}
|
|
return $string;
|
|
}
|
|
|
|
/**
|
|
* Determine basename for compiled filename
|
|
*
|
|
* @param \Smarty\Template\Source $source source object
|
|
*
|
|
* @return string resource's basename
|
|
*/
|
|
public function getBasename(\Smarty\Template\Source $source)
|
|
{
|
|
return '';
|
|
}
|
|
}
|