PATH:
home
/
letacommog
/
crmleta
/
libraries
/
Smarty
/
libs
/
sysplugins
<?php /** * Smarty Internal Plugin Resource Extends * * @package Smarty * @subpackage TemplateResources * @author Uwe Tews * @author Rodney Rehm */ /** * Smarty Internal Plugin Resource Extends * * Implements the file system as resource for Smarty which {extend}s a chain of template files templates * * @package Smarty * @subpackage TemplateResources */ class Smarty_Internal_Resource_Extends extends Smarty_Resource { /** * populate Source Object with meta data from Resource * * @param Smarty_Template_Source $source source object * @param Smarty_Internal_Template $_template template object */ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null) { $uid = ''; $sources = array(); $components = explode('|', $source->name); $exists = true; foreach ($components as $component) { $s = Smarty_Resource::source(null, $source->smarty, $component); if ($s->type == 'php') { throw new SmartyException("Resource type {$s->type} cannot be used with the extends resource type"); } $sources[$s->uid] = $s; $uid .= $s->filepath; if ($_template && $_template->smarty->compile_check) { $exists == $exists && $s->exists; } } $source->components = $sources; $source->filepath = $s->filepath; $source->uid = sha1($uid); if ($_template && $_template->smarty->compile_check) { $source->timestamp = $s->timestamp; $source->exists = $exists; } // need the template at getContent() $source->template = $_template; } /** * populate Source Object with timestamp and exists from Resource * * @param Smarty_Template_Source $source source object */ public function populateTimestamp(Smarty_Template_Source $source) { $source->exists = true; foreach ($source->components as $s) { $source->exists == $source->exists && $s->exists; } $source->timestamp = $s->timestamp; } /** * Load template's source from files into current template object * * @param Smarty_Template_Source $source source object * @return string template source * @throws SmartyException if source cannot be loaded */ public function getContent(Smarty_Template_Source $source) { if (!$source->exists) { throw new SmartyException("Unable to read template {$source->type} '{$source->name}'"); } $_rdl = preg_quote($source->smarty->right_delimiter); $_ldl = preg_quote($source->smarty->left_delimiter); $_components = array_reverse($source->components); $_first = reset($_components); $_last = end($_components); foreach ($_components as $_component) { // register dependency if ($_component != $_first) { $source->template->properties['file_dependency'][$_component->uid] = array($_component->filepath, $_component->timestamp, $_component->type); } // read content $source->filepath = $_component->filepath; $_content = $_component->content; // extend sources if ($_component != $_last) { if (preg_match_all("!({$_ldl}block\s(.+?){$_rdl})!", $_content, $_open) != preg_match_all("!({$_ldl}/block{$_rdl})!", $_content, $_close)) { throw new SmartyException("unmatched {block} {/block} pairs in template {$_component->type} '{$_component->name}'"); } preg_match_all("!{$_ldl}block\s(.+?){$_rdl}|{$_ldl}/block{$_rdl}|{$_ldl}\*([\S\s]*?)\*{$_rdl}!", $_content, $_result, PREG_OFFSET_CAPTURE); $_result_count = count($_result[0]); $_start = 0; while ($_start+1 < $_result_count) { $_end = 0; $_level = 1; if (substr($_result[0][$_start][0],0,strlen($source->smarty->left_delimiter)+1) == $source->smarty->left_delimiter.'*') { $_start++; continue; } while ($_level != 0) { $_end++; if (substr($_result[0][$_start + $_end][0],0,strlen($source->smarty->left_delimiter)+1) == $source->smarty->left_delimiter.'*') { continue; } if (!strpos($_result[0][$_start + $_end][0], '/')) { $_level++; } else { $_level--; } } $_block_content = str_replace($source->smarty->left_delimiter . '$smarty.block.parent' . $source->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%', substr($_content, $_result[0][$_start][1] + strlen($_result[0][$_start][0]), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + strlen($_result[0][$_start][0]))); Smarty_Internal_Compile_Block::saveBlockData($_block_content, $_result[0][$_start][0], $source->template, $_component->filepath); $_start = $_start + $_end + 1; } } else { return $_content; } } } /** * 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 str_replace(':', '.', basename($source->filepath)); } } ?>
[+]
..
[-] smarty_internal_compile_for.php
[edit]
[-] smarty_internal_compile_while.php
[edit]
[-] smarty_internal_template.php
[edit]
[-] smarty_security.php
[edit]
[-] smarty_internal_compile_setfilter.php
[edit]
[-] smarty_internal_filter_handler.php
[edit]
[-] smarty_internal_resource_string.php
[edit]
[-] smarty_internal_data.php
[edit]
[-] smarty_internal_compile_include.php
[edit]
[-] smarty_internal_compile_nocache.php
[edit]
[-] smarty_internal_resource_file.php
[edit]
[-] smarty_internal_compile_include_php.php
[edit]
[-] smarty_internal_compile_break.php
[edit]
[-] smarty_internal_nocache_insert.php
[edit]
[-] smarty_internal_configfileparser.php
[edit]
[-] smarty_resource_uncompiled.php
[edit]
[-] smarty_internal_resource_extends.php
[edit]
[-] smarty_internal_compile_private_print_expression.php
[edit]
[-] smarty_internal_compile_extends.php
[edit]
[-] smarty_internal_debug.php
[edit]
[-] smarty_internal_write_file.php
[edit]
[-] smarty_resource.php
[edit]
[-] smarty_internal_templatebase.php
[edit]
[-] smarty_cacheresource_keyvaluestore.php
[edit]
[-] smarty_internal_compile_append.php
[edit]
[-] smarty_internal_compilebase.php
[edit]
[-] smarty_internal_compile_if.php
[edit]
[-] smarty_resource_recompiled.php
[edit]
[-] smarty_internal_compile_private_block_plugin.php
[edit]
[-] smarty_internal_resource_registered.php
[edit]
[-] smarty_internal_parsetree.php
[edit]
[-] smarty_internal_function_call_handler.php
[edit]
[-] smarty_internal_compile_private_modifier.php
[edit]
[-] smarty_internal_compile_foreach.php
[edit]
[-] smarty_internal_templateparser.php
[edit]
[-] smarty_internal_compile_capture.php
[edit]
[-] smarty_internal_compile_private_registered_block.php
[edit]
[-] smarty_internal_compile_private_object_block_function.php
[edit]
[-] smarty_internal_utility.php
[edit]
[-] smarty_internal_compile_config_load.php
[edit]
[-] smarty_internal_compile_block.php
[edit]
[-] smarty_resource_custom.php
[edit]
[-] smarty_internal_resource_stream.php
[edit]
[-] smarty_internal_resource_eval.php
[edit]
[-] smarty_internal_templatelexer.php
[edit]
[-] smarty_internal_compile_call.php
[edit]
[-] smarty_internal_compile_insert.php
[edit]
[-] smarty_internal_compile_section.php
[edit]
[-] smarty_config_source.php
[edit]
[-] smarty_internal_config.php
[edit]
[-] smarty_internal_smartytemplatecompiler.php
[edit]
[-] smarty_cacheresource_custom.php
[edit]
[-] smarty_internal_resource_php.php
[edit]
[-] smarty_internal_compile_function.php
[edit]
[-] smarty_internal_compile_private_object_function.php
[edit]
[-] smarty_internal_configfilelexer.php
[edit]
[-] smarty_cacheresource.php
[edit]
[-] smarty_internal_cacheresource_file.php
[edit]
[-] smarty_internal_compile_assign.php
[edit]
[-] smarty_internal_config_file_compiler.php
[edit]
[-] smarty_internal_compile_eval.php
[edit]
[-] smarty_internal_templatecompilerbase.php
[edit]
[-] smarty_internal_compile_private_registered_function.php
[edit]
[-] smarty_internal_compile_rdelim.php
[edit]
[-] smarty_internal_compile_ldelim.php
[edit]
[-] smarty_internal_compile_private_special_variable.php
[edit]
[-] smarty_internal_compile_private_function_plugin.php
[edit]
[-] smarty_internal_compile_debug.php
[edit]
[-] smarty_internal_get_include_path.php
[edit]
[-] smarty_internal_compile_continue.php
[edit]