
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.
101 lines
3.0 KiB
PHP
101 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Smarty Config Source Plugin
|
|
*
|
|
* @package Smarty
|
|
* @subpackage TemplateResources
|
|
* @author Uwe Tews
|
|
*/
|
|
|
|
/**
|
|
* Smarty Config Resource Data Object
|
|
* Meta Data Container for Template Files
|
|
*
|
|
* @package Smarty
|
|
* @subpackage TemplateResources
|
|
* @author Uwe Tews
|
|
*/
|
|
class Smarty_Template_Config extends Smarty_Template_Source
|
|
{
|
|
/**
|
|
* array of section names, single section or null
|
|
*
|
|
* @var null|string|array
|
|
*/
|
|
public $config_sections = null;
|
|
|
|
/**
|
|
* scope into which the config variables shall be loaded
|
|
*
|
|
* @var int
|
|
*/
|
|
public $scope = 0;
|
|
|
|
/**
|
|
* Flag that source is a config file
|
|
*
|
|
* @var bool
|
|
*/
|
|
public $isConfig = true;
|
|
|
|
/**
|
|
* Name of the Class to compile this resource's contents with
|
|
*
|
|
* @var string
|
|
*/
|
|
public $compiler_class = 'Smarty_Internal_Config_File_Compiler';
|
|
|
|
/**
|
|
* Name of the Class to tokenize this resource's contents with
|
|
*
|
|
* @var string
|
|
*/
|
|
public $template_lexer_class = 'Smarty_Internal_Configfilelexer';
|
|
|
|
/**
|
|
* Name of the Class to parse this resource's contents with
|
|
*
|
|
* @var string
|
|
*/
|
|
public $template_parser_class = 'Smarty_Internal_Configfileparser';
|
|
|
|
/**
|
|
* initialize Source Object for given resource
|
|
* Either [$_template] or [$smarty, $template_resource] must be specified
|
|
*
|
|
* @param Smarty_Internal_Template $_template template object
|
|
* @param Smarty $smarty smarty object
|
|
* @param string $template_resource resource identifier
|
|
*
|
|
* @return Smarty_Template_Config Source Object
|
|
* @throws SmartyException
|
|
*/
|
|
public static function load(
|
|
Smarty_Internal_Template $_template = null,
|
|
Smarty $smarty = null,
|
|
$template_resource = null
|
|
) {
|
|
static $_incompatible_resources = array('extends' => true, 'php' => true);
|
|
if ($_template) {
|
|
$smarty = $_template->smarty;
|
|
$template_resource = $_template->template_resource;
|
|
}
|
|
if (empty($template_resource)) {
|
|
throw new SmartyException('Source: Missing name');
|
|
}
|
|
// parse resource_name, load resource handler
|
|
list($name, $type) = Smarty_Resource::parseResourceName($template_resource, $smarty->default_config_type);
|
|
// make sure configs are not loaded via anything smarty can't handle
|
|
if (isset($_incompatible_resources[ $type ])) {
|
|
throw new SmartyException("Unable to use resource '{$type}' for config");
|
|
}
|
|
$source = new Smarty_Template_Config($smarty, $template_resource, $type, $name);
|
|
$source->handler->populate($source, $_template);
|
|
if (!$source->exists && isset($smarty->default_config_handler_func)) {
|
|
Smarty_Internal_Method_RegisterDefaultTemplateHandler::_getDefaultTemplate($source);
|
|
$source->handler->populate($source, $_template);
|
|
}
|
|
return $source;
|
|
}
|
|
}
|