Files
Smarty-Extended/src/Resource/StringEval.php
Clemens Schwaighofer 856a88d891 Update to Smarty 5.7.0
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
2026-01-07 10:06:39 +09:00

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 '';
}
}