Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** Smarty plugin* @package Smarty* @subpackage plugins*//*** Extract non-cacheable parts out of compiled template and write it** @param string $compile_path* @param string $template_compiled* @return boolean*/function smarty_core_write_compiled_include($params, &$smarty){$_tag_start = 'if \(\$this->caching && \!\$this->_cache_including\) \{ echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\'; \};';$_tag_end = 'if \(\$this->caching && \!\$this->_cache_including\) \{ echo \'\{/nocache\:(\\2)#(\\3)\}\'; \};';preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us',$params['compiled_content'], $_match_source, PREG_SET_ORDER);// no nocache-parts found: doneif (count($_match_source)==0) return;// convert the matched php-code to functions$_include_compiled = "<?php /* Smarty version ".$smarty->_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n";$_include_compiled .= " compiled from " . strtr(urlencode($params['resource_name']), array('%2F'=>'/', '%3A'=>':')) . " */\n\n";$_compile_path = $params['include_file_path'];$smarty->_cache_serials[$_compile_path] = $params['cache_serial'];$_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>";$_include_compiled .= $params['plugins_code'];$_include_compiled .= "<?php";$this_varname = ((double)phpversion() >= 5.0) ? '_smarty' : 'this';for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) {$_match =& $_match_source[$_i];$source = $_match[4];if ($this_varname == '_smarty') {/* rename $this to $_smarty in the sourcecode */$tokens = token_get_all('<?php ' . $_match[4]);/* remove trailing <?php */$open_tag = '';while ($tokens) {$token = array_shift($tokens);if (is_array($token)) {$open_tag .= $token[1];} else {$open_tag .= $token;}if ($open_tag == '<?php ') break;}for ($i=0, $count = count($tokens); $i < $count; $i++) {if (is_array($tokens[$i])) {if ($tokens[$i][0] == T_VARIABLE && $tokens[$i][1] == '$this') {$tokens[$i] = '$' . $this_varname;} else {$tokens[$i] = $tokens[$i][1];}}}$source = implode('', $tokens);}/* add function to compiled include */$_include_compiled .= "function _smarty_tplfunc_$_match[2]_$_match[3](&\$$this_varname){$source}";}$_include_compiled .= "\n\n?>\n";$_params = array('filename' => $_compile_path,'contents' => $_include_compiled, 'create_dirs' => true);require_once(SMARTY_CORE_DIR . 'core.write_file.php');smarty_core_write_file($_params, $smarty);return true;}?>