Redbean + Smarty update
This commit is contained in:
parent
c1b8226466
commit
eb0835ff74
122 changed files with 12653 additions and 11637 deletions
|
@ -2,73 +2,79 @@
|
|||
/**
|
||||
* Smarty Resource Plugin
|
||||
*
|
||||
* @package Smarty
|
||||
* @package Smarty
|
||||
* @subpackage TemplateResources
|
||||
* @author Rodney Rehm
|
||||
* @author Rodney Rehm
|
||||
*/
|
||||
|
||||
/**
|
||||
* Smarty Resource Plugin
|
||||
*
|
||||
* Base implementation for resource plugins
|
||||
*
|
||||
* @package Smarty
|
||||
* @package Smarty
|
||||
* @subpackage TemplateResources
|
||||
*/
|
||||
abstract class Smarty_Resource
|
||||
{
|
||||
/**
|
||||
* cache for Smarty_Template_Source instances
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $sources = array();
|
||||
/**
|
||||
* cache for Smarty_Template_Compiled instances
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $compileds = array();
|
||||
/**
|
||||
* cache for Smarty_Resource instances
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $resources = array();
|
||||
/**
|
||||
* resource types provided by the core
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $sysplugins = array(
|
||||
'file' => true,
|
||||
'string' => true,
|
||||
'file' => true,
|
||||
'string' => true,
|
||||
'extends' => true,
|
||||
'stream' => true,
|
||||
'eval' => true,
|
||||
'php' => true
|
||||
'stream' => true,
|
||||
'eval' => true,
|
||||
'php' => true
|
||||
);
|
||||
|
||||
/**
|
||||
* Name of the Class to compile this resource's contents with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $compiler_class = 'Smarty_Internal_SmartyTemplateCompiler';
|
||||
|
||||
/**
|
||||
* Name of the Class to tokenize this resource's contents with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $template_lexer_class = 'Smarty_Internal_Templatelexer';
|
||||
|
||||
/**
|
||||
* Name of the Class to parse this resource's contents with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $template_parser_class = 'Smarty_Internal_Templateparser';
|
||||
|
||||
/**
|
||||
* Load template's source into current template object
|
||||
*
|
||||
* {@internal The loaded source is assigned to $_template->source->content directly.}}
|
||||
*
|
||||
* @param Smarty_Template_Source $source source object
|
||||
*
|
||||
* @return string template source
|
||||
* @throws SmartyException if source cannot be loaded
|
||||
*/
|
||||
|
@ -80,7 +86,7 @@ abstract class Smarty_Resource
|
|||
* @param Smarty_Template_Source $source source object
|
||||
* @param Smarty_Internal_Template $_template template object
|
||||
*/
|
||||
abstract public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null);
|
||||
abstract public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null);
|
||||
|
||||
/**
|
||||
* populate Source Object with timestamp and exists from Resource
|
||||
|
@ -95,9 +101,10 @@ abstract class Smarty_Resource
|
|||
/**
|
||||
* modify resource_name according to resource handlers specifications
|
||||
*
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @param string $resource_name resource_name to make unique
|
||||
* @param boolean $is_config flag for config resource
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @param string $resource_name resource_name to make unique
|
||||
* @param boolean $is_config flag for config resource
|
||||
*
|
||||
* @return string unique resource name
|
||||
*/
|
||||
protected function buildUniqueResourceName(Smarty $smarty, $resource_name, $is_config = false)
|
||||
|
@ -122,9 +129,9 @@ abstract class Smarty_Resource
|
|||
// if use_sub_dirs, break file into directories
|
||||
if ($_template->smarty->use_sub_dirs) {
|
||||
$_filepath = substr($_filepath, 0, 2) . DS
|
||||
. substr($_filepath, 2, 2) . DS
|
||||
. substr($_filepath, 4, 2) . DS
|
||||
. $_filepath;
|
||||
. substr($_filepath, 2, 2) . DS
|
||||
. substr($_filepath, 4, 2) . DS
|
||||
. $_filepath;
|
||||
}
|
||||
$_compile_dir_sep = $_template->smarty->use_sub_dirs ? DS : '^';
|
||||
if (isset($_compile_id)) {
|
||||
|
@ -140,7 +147,7 @@ abstract class Smarty_Resource
|
|||
// set basename if not specified
|
||||
$_basename = $this->getBasename($compiled->source);
|
||||
if ($_basename === null) {
|
||||
$_basename = basename( preg_replace('![^\w\/]+!', '_', $compiled->source->name) );
|
||||
$_basename = basename(preg_replace('![^\w\/]+!', '_', $compiled->source->name));
|
||||
}
|
||||
// separate (optional) basename by dot
|
||||
if ($_basename) {
|
||||
|
@ -155,9 +162,10 @@ abstract class Smarty_Resource
|
|||
*
|
||||
* @param string $_path path to normalize
|
||||
* @param boolean $ds respect windows directory separator
|
||||
*
|
||||
* @return string normalized path
|
||||
*/
|
||||
protected function normalizePath($_path, $ds=true)
|
||||
protected function normalizePath($_path, $ds = true)
|
||||
{
|
||||
if ($ds) {
|
||||
// don't we all just love windows?
|
||||
|
@ -200,10 +208,11 @@ abstract class Smarty_Resource
|
|||
*
|
||||
* @param Smarty_Template_Source $source source object
|
||||
* @param Smarty_Internal_Template $_template template object
|
||||
*
|
||||
* @return string fully qualified filepath
|
||||
* @throws SmartyException if default template handler is registered but not callable
|
||||
*/
|
||||
protected function buildFilepath(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
|
||||
protected function buildFilepath(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
|
||||
{
|
||||
$file = $source->name;
|
||||
if ($source instanceof Smarty_Config_Source) {
|
||||
|
@ -232,7 +241,6 @@ abstract class Smarty_Resource
|
|||
// resolve relative path
|
||||
if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $file)) {
|
||||
// don't we all just love windows?
|
||||
$_path = str_replace('\\', '/', $file);
|
||||
$_path = DS . trim($file, '/');
|
||||
$_was_relative = true;
|
||||
} else {
|
||||
|
@ -325,7 +333,7 @@ abstract class Smarty_Resource
|
|||
}
|
||||
}
|
||||
$_return = call_user_func_array($_default_handler,
|
||||
array($source->type, $source->name, &$_content, &$_timestamp, $source->smarty));
|
||||
array($source->type, $source->name, &$_content, &$_timestamp, $source->smarty));
|
||||
if (is_string($_return)) {
|
||||
$source->timestamp = @filemtime($_return);
|
||||
$source->exists = !!$source->timestamp;
|
||||
|
@ -349,6 +357,7 @@ abstract class Smarty_Resource
|
|||
*
|
||||
* @param Smarty_Template_Source $source source object
|
||||
* @param string $file file name
|
||||
*
|
||||
* @return bool true if file exists
|
||||
*/
|
||||
protected function fileExists(Smarty_Template_Source $source, $file)
|
||||
|
@ -356,13 +365,13 @@ abstract class Smarty_Resource
|
|||
$source->timestamp = is_file($file) ? @filemtime($file) : false;
|
||||
|
||||
return $source->exists = !!$source->timestamp;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine basename for compiled filename
|
||||
*
|
||||
* @param Smarty_Template_Source $source source object
|
||||
*
|
||||
* @return string resource's basename
|
||||
*/
|
||||
protected function getBasename(Smarty_Template_Source $source)
|
||||
|
@ -373,8 +382,10 @@ abstract class Smarty_Resource
|
|||
/**
|
||||
* Load Resource Handler
|
||||
*
|
||||
* @param Smarty $smarty smarty object
|
||||
* @param string $type name of the resource
|
||||
* @param Smarty $smarty smarty object
|
||||
* @param string $type name of the resource
|
||||
*
|
||||
* @throws SmartyException
|
||||
* @return Smarty_Resource Resource Handler
|
||||
*/
|
||||
public static function load(Smarty $smarty, $type)
|
||||
|
@ -453,17 +464,18 @@ abstract class Smarty_Resource
|
|||
// TODO: try default_(template|config)_handler
|
||||
|
||||
// give up
|
||||
throw new SmartyException("Unkown resource type '{$type}'");
|
||||
throw new SmartyException("Unknown resource type '{$type}'");
|
||||
}
|
||||
|
||||
/**
|
||||
* extract resource_type and resource_name from template_resource and config_resource
|
||||
*
|
||||
* @note "C:/foo.tpl" was forced to file resource up till Smarty 3.1.3 (including).
|
||||
*
|
||||
* @param string $resource_name template_resource or config_resource to parse
|
||||
* @param string $default_resource the default resource_type defined in $smarty
|
||||
* @param string &$name the parsed resource name
|
||||
* @param string &$type the parsed resource type
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected static function parseResourceName($resource_name, $default_resource, &$name, &$type)
|
||||
|
@ -485,14 +497,16 @@ abstract class Smarty_Resource
|
|||
*
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @param string $resource_name resource_name to make unique
|
||||
*
|
||||
* @return string unique resource name
|
||||
*/
|
||||
|
||||
/**
|
||||
* modify template_resource according to resource handlers specifications
|
||||
*
|
||||
* @param Smarty_Internal_template $template Smarty instance
|
||||
* @param string $template_resource template_resource to extracate resource handler and name of
|
||||
* @param Smarty_Internal_template $template Smarty instance
|
||||
* @param string $template_resource template_resource to extract resource handler and name of
|
||||
*
|
||||
* @return string unique resource name
|
||||
*/
|
||||
public static function getUniqueTemplateName($template, $template_resource)
|
||||
|
@ -510,15 +524,15 @@ abstract class Smarty_Resource
|
|||
|
||||
/**
|
||||
* 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_Source Source Object
|
||||
*/
|
||||
public static function source(Smarty_Internal_Template $_template=null, Smarty $smarty=null, $template_resource=null)
|
||||
public static function source(Smarty_Internal_Template $_template = null, Smarty $smarty = null, $template_resource = null)
|
||||
{
|
||||
if ($_template) {
|
||||
$smarty = $_template->smarty;
|
||||
|
@ -540,7 +554,7 @@ abstract class Smarty_Resource
|
|||
// check runtime cache
|
||||
$_cache_key = 'template|' . $unique_resource_name;
|
||||
if ($smarty->compile_id) {
|
||||
$_cache_key .= '|'.$smarty->compile_id;
|
||||
$_cache_key .= '|' . $smarty->compile_id;
|
||||
}
|
||||
if (isset(self::$sources[$_cache_key])) {
|
||||
return self::$sources[$_cache_key];
|
||||
|
@ -560,6 +574,8 @@ abstract class Smarty_Resource
|
|||
* initialize Config Source Object for given resource
|
||||
*
|
||||
* @param Smarty_Internal_Config $_config config object
|
||||
*
|
||||
* @throws SmartyException
|
||||
* @return Smarty_Config_Source Source Object
|
||||
*/
|
||||
public static function config(Smarty_Internal_Config $_config)
|
||||
|
@ -595,18 +611,15 @@ abstract class Smarty_Resource
|
|||
|
||||
return $source;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Smarty Resource Data Object
|
||||
*
|
||||
* Meta Data Container for Template Files
|
||||
*
|
||||
* @package Smarty
|
||||
* @package Smarty
|
||||
* @subpackage TemplateResources
|
||||
* @author Rodney Rehm
|
||||
*
|
||||
* @author Rodney Rehm
|
||||
* @property integer $timestamp Source Timestamp
|
||||
* @property boolean $exists Source Existence
|
||||
* @property boolean $template Extended Template reference
|
||||
|
@ -616,84 +629,98 @@ class Smarty_Template_Source
|
|||
{
|
||||
/**
|
||||
* Name of the Class to compile this resource's contents with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $compiler_class = null;
|
||||
|
||||
/**
|
||||
* Name of the Class to tokenize this resource's contents with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $template_lexer_class = null;
|
||||
|
||||
/**
|
||||
* Name of the Class to parse this resource's contents with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $template_parser_class = null;
|
||||
|
||||
/**
|
||||
* Unique Template ID
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $uid = null;
|
||||
|
||||
/**
|
||||
* Template Resource (Smarty_Internal_Template::$template_resource)
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $resource = null;
|
||||
|
||||
/**
|
||||
* Resource Type
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $type = null;
|
||||
|
||||
/**
|
||||
* Resource Name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $name = null;
|
||||
|
||||
/**
|
||||
* Unique Resource Name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $unique_resource = null;
|
||||
|
||||
/**
|
||||
* Source Filepath
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $filepath = null;
|
||||
|
||||
/**
|
||||
* Source is bypassing compiler
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $uncompiled = null;
|
||||
|
||||
/**
|
||||
* Source must be recompiled on every occasion
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $recompiled = null;
|
||||
|
||||
/**
|
||||
* The Components an extended template is made of
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $components = null;
|
||||
|
||||
/**
|
||||
* Resource Handler
|
||||
*
|
||||
* @var Smarty_Resource
|
||||
*/
|
||||
public $handler = null;
|
||||
|
||||
/**
|
||||
* Smarty instance
|
||||
*
|
||||
* @var Smarty
|
||||
*/
|
||||
public $smarty = null;
|
||||
|
@ -706,7 +733,7 @@ class Smarty_Template_Source
|
|||
* @param string $resource full template_resource
|
||||
* @param string $type type of resource
|
||||
* @param string $name resource name
|
||||
* @param string $unique_resource unqiue resource name
|
||||
* @param string $unique_resource unique resource name
|
||||
*/
|
||||
public function __construct(Smarty_Resource $handler, Smarty $smarty, $resource, $type, $name, $unique_resource)
|
||||
{
|
||||
|
@ -728,10 +755,11 @@ class Smarty_Template_Source
|
|||
/**
|
||||
* get a Compiled Object of this source
|
||||
*
|
||||
* @param Smarty_Internal_Template $_template template objet
|
||||
* @param Smarty_Internal_Template|Smarty_Internal_Config $_template template object
|
||||
*
|
||||
* @return Smarty_Template_Compiled compiled object
|
||||
*/
|
||||
public function getCompiled(Smarty_Internal_Template $_template)
|
||||
public function getCompiled($_template)
|
||||
{
|
||||
// check runtime cache
|
||||
$_cache_key = $this->unique_resource . '#' . $_template->compile_id;
|
||||
|
@ -763,8 +791,9 @@ class Smarty_Template_Source
|
|||
/**
|
||||
* <<magic>> Generic Setter.
|
||||
*
|
||||
* @param string $property_name valid: timestamp, exists, content, template
|
||||
* @param mixed $value new value (is not checked)
|
||||
* @param string $property_name valid: timestamp, exists, content, template
|
||||
* @param mixed $value new value (is not checked)
|
||||
*
|
||||
* @throws SmartyException if $property_name is not valid
|
||||
*/
|
||||
public function __set($property_name, $value)
|
||||
|
@ -774,7 +803,7 @@ class Smarty_Template_Source
|
|||
case 'timestamp':
|
||||
case 'exists':
|
||||
case 'content':
|
||||
// required for extends: only
|
||||
// required for extends: only
|
||||
case 'template':
|
||||
$this->$property_name = $value;
|
||||
break;
|
||||
|
@ -787,7 +816,8 @@ class Smarty_Template_Source
|
|||
/**
|
||||
* <<magic>> Generic getter.
|
||||
*
|
||||
* @param string $property_name valid: timestamp, exists, content
|
||||
* @param string $property_name valid: timestamp, exists, content
|
||||
*
|
||||
* @return mixed
|
||||
* @throws SmartyException if $property_name is not valid
|
||||
*/
|
||||
|
@ -807,62 +837,65 @@ class Smarty_Template_Source
|
|||
throw new SmartyException("source property '$property_name' does not exist.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Smarty Resource Data Object
|
||||
*
|
||||
* Meta Data Container for Template Files
|
||||
*
|
||||
* @package Smarty
|
||||
* @package Smarty
|
||||
* @subpackage TemplateResources
|
||||
* @author Rodney Rehm
|
||||
*
|
||||
* @author Rodney Rehm
|
||||
* @property string $content compiled content
|
||||
*/
|
||||
class Smarty_Template_Compiled
|
||||
{
|
||||
/**
|
||||
* Compiled Filepath
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $filepath = null;
|
||||
|
||||
/**
|
||||
* Compiled Timestamp
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
public $timestamp = null;
|
||||
|
||||
/**
|
||||
* Compiled Existence
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $exists = false;
|
||||
|
||||
/**
|
||||
* Compiled Content Loaded
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $loaded = false;
|
||||
|
||||
/**
|
||||
* Template was compiled
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $isCompiled = false;
|
||||
|
||||
/**
|
||||
* Source Object
|
||||
*
|
||||
* @var Smarty_Template_Source
|
||||
*/
|
||||
public $source = null;
|
||||
|
||||
/**
|
||||
* Metadata properties
|
||||
*
|
||||
* populated by Smarty_Internal_Template::decodeProperties()
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $_properties = null;
|
||||
|
@ -876,5 +909,4 @@ class Smarty_Template_Compiled
|
|||
{
|
||||
$this->source = $source;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue