
Comparing changes: https://github.com/smarty-php/smarty/compare/v4.3.1...v4.4.1 It is noticeable that Smarty 4.3.1 does not officially support PHP 8.3. Is only supported with 4.4.0. Remark: During tests with Smarty 4.5.1, it was noticed that the following warning occurs: Deprecated: Using the unregistered function "function_exists" in a template is deprecated and will be removed in a future version. Use Smarty::registerPlugin to explicitly register a custom modifier. As of Smarty 5.X.X, templates must be revised again. The Smarty release 5.0.2 is already officially available. However, integration into FlatPress is not entirely trivial.
63 lines
1.9 KiB
PHP
63 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Extends All Resource
|
|
* Resource Implementation modifying the extends-Resource to walk
|
|
* through the template_dirs and inherit all templates of the same name
|
|
*
|
|
* @package Resource-examples
|
|
* @author Rodney Rehm
|
|
*/
|
|
class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends
|
|
{
|
|
/**
|
|
* populate Source Object with meta data from Resource
|
|
*
|
|
* @param Smarty_Template_Source $source source object
|
|
* @param Smarty_Internal_Template $_template template object
|
|
*
|
|
* @return void
|
|
*/
|
|
public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
|
|
{
|
|
$uid = '';
|
|
$sources = array();
|
|
$timestamp = 0;
|
|
foreach ($source->smarty->getTemplateDir() as $key => $directory) {
|
|
try {
|
|
$s = Smarty_Resource::source(null, $source->smarty, 'file:' . '[' . $key . ']' . $source->name);
|
|
if (!$s->exists) {
|
|
continue;
|
|
}
|
|
$sources[ $s->uid ] = $s;
|
|
$uid .= $s->filepath;
|
|
$timestamp = $s->timestamp > $timestamp ? $s->timestamp : $timestamp;
|
|
} catch (SmartyException $e) {
|
|
}
|
|
}
|
|
if (!$sources) {
|
|
$source->exists = false;
|
|
return;
|
|
}
|
|
$sources = array_reverse($sources, true);
|
|
reset($sources);
|
|
$s = current($sources);
|
|
$source->components = $sources;
|
|
$source->filepath = $s->filepath;
|
|
$source->uid = sha1($uid . $source->smarty->_joined_template_dir);
|
|
$source->exists = true;
|
|
$source->timestamp = $timestamp;
|
|
}
|
|
|
|
/**
|
|
* Disable timestamp checks for extendsall resource.
|
|
* The individual source components will be checked.
|
|
*
|
|
* @return bool false
|
|
*/
|
|
public function checkTimestamps()
|
|
{
|
|
return false;
|
|
}
|
|
}
|