
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.
95 lines
2.3 KiB
PHP
95 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Smarty Resource Plugin
|
|
*
|
|
* @package Smarty
|
|
* @subpackage TemplateResources
|
|
* @author Rodney Rehm
|
|
*/
|
|
|
|
/**
|
|
* Smarty Resource Plugin
|
|
* Base implementation for resource plugins that don't compile cache
|
|
*
|
|
* @package Smarty
|
|
* @subpackage TemplateResources
|
|
*/
|
|
abstract class Smarty_Resource_Recompiled extends Smarty_Resource
|
|
{
|
|
/**
|
|
* Flag that it's an recompiled resource
|
|
*
|
|
* @var bool
|
|
*/
|
|
public $recompiled = true;
|
|
|
|
/**
|
|
* Resource does implement populateCompiledFilepath() method
|
|
*
|
|
* @var bool
|
|
*/
|
|
public $hasCompiledHandler = true;
|
|
|
|
/**
|
|
* compile template from source
|
|
*
|
|
* @param Smarty_Internal_Template $_smarty_tpl do not change variable name, is used by compiled template
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
public function process(Smarty_Internal_Template $_smarty_tpl)
|
|
{
|
|
$compiled = &$_smarty_tpl->compiled;
|
|
$compiled->file_dependency = array();
|
|
$compiled->includes = array();
|
|
$compiled->nocache_hash = null;
|
|
$compiled->unifunc = null;
|
|
$level = ob_get_level();
|
|
ob_start();
|
|
$_smarty_tpl->loadCompiler();
|
|
// call compiler
|
|
try {
|
|
eval('?>' . $_smarty_tpl->compiler->compileTemplate($_smarty_tpl));
|
|
} catch (Exception $e) {
|
|
unset($_smarty_tpl->compiler);
|
|
while (ob_get_level() > $level) {
|
|
ob_end_clean();
|
|
}
|
|
throw $e;
|
|
}
|
|
// release compiler object to free memory
|
|
unset($_smarty_tpl->compiler);
|
|
ob_get_clean();
|
|
$compiled->timestamp = time();
|
|
$compiled->exists = true;
|
|
}
|
|
|
|
/**
|
|
* populate Compiled Object with compiled filepath
|
|
*
|
|
* @param Smarty_Template_Compiled $compiled compiled object
|
|
* @param Smarty_Internal_Template $_template template object
|
|
*
|
|
* @return void
|
|
*/
|
|
public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template)
|
|
{
|
|
$compiled->filepath = false;
|
|
$compiled->timestamp = false;
|
|
$compiled->exists = false;
|
|
}
|
|
|
|
/*
|
|
* Disable timestamp checks for recompiled resource.
|
|
*
|
|
* @return bool
|
|
*/
|
|
/**
|
|
* @return bool
|
|
*/
|
|
public function checkTimestamps()
|
|
{
|
|
return false;
|
|
}
|
|
}
|