Files
admin
ajaxtabs
bewerbung
bewerbung_QIS
ckeditor5
classes
config
datepicker
fancybox-2.1.7
hogrefe
jquery
language
lib
smarty
demo
lexer
libs
internals
plugins
sysplugins
smarty_cacheresource.php
smarty_cacheresource_custom.php
smarty_cacheresource_keyvaluestore.php
smarty_data.php
smarty_internal_cacheresource_file.php
smarty_internal_compile_append.php
smarty_internal_compile_assign.php
smarty_internal_compile_block.php
smarty_internal_compile_break.php
smarty_internal_compile_call.php
smarty_internal_compile_capture.php
smarty_internal_compile_config_load.php
smarty_internal_compile_continue.php
smarty_internal_compile_debug.php
smarty_internal_compile_eval.php
smarty_internal_compile_extends.php
smarty_internal_compile_for.php
smarty_internal_compile_foreach.php
smarty_internal_compile_function.php
smarty_internal_compile_if.php
smarty_internal_compile_include.php
smarty_internal_compile_include_php.php
smarty_internal_compile_insert.php
smarty_internal_compile_ldelim.php
smarty_internal_compile_nocache.php
smarty_internal_compile_private_block_plugin.php
smarty_internal_compile_private_foreachsection.php
smarty_internal_compile_private_function_plugin.php
smarty_internal_compile_private_modifier.php
smarty_internal_compile_private_object_block_function.php
smarty_internal_compile_private_object_function.php
smarty_internal_compile_private_php.php
smarty_internal_compile_private_print_expression.php
smarty_internal_compile_private_registered_block.php
smarty_internal_compile_private_registered_function.php
smarty_internal_compile_private_special_variable.php
smarty_internal_compile_rdelim.php
smarty_internal_compile_section.php
smarty_internal_compile_setfilter.php
smarty_internal_compile_shared_inheritance.php
smarty_internal_compile_while.php
smarty_internal_compilebase.php
smarty_internal_config_file_compiler.php
smarty_internal_configfilelexer.php
smarty_internal_configfileparser.php
smarty_internal_data.php
smarty_internal_debug.php
smarty_internal_extension_clear.php
smarty_internal_extension_handler.php
smarty_internal_method_addautoloadfilters.php
smarty_internal_method_adddefaultmodifiers.php
smarty_internal_method_append.php
smarty_internal_method_appendbyref.php
smarty_internal_method_assignbyref.php
smarty_internal_method_assignglobal.php
smarty_internal_method_clearallassign.php
smarty_internal_method_clearallcache.php
smarty_internal_method_clearassign.php
smarty_internal_method_clearcache.php
smarty_internal_method_clearcompiledtemplate.php
smarty_internal_method_clearconfig.php
smarty_internal_method_compileallconfig.php
smarty_internal_method_compilealltemplates.php
smarty_internal_method_configload.php
smarty_internal_method_createdata.php
smarty_internal_method_getautoloadfilters.php
smarty_internal_method_getconfigvars.php
smarty_internal_method_getdebugtemplate.php
smarty_internal_method_getdefaultmodifiers.php
smarty_internal_method_getregisteredobject.php
smarty_internal_method_getstreamvariable.php
smarty_internal_method_gettags.php
smarty_internal_method_gettemplatevars.php
smarty_internal_method_loadfilter.php
smarty_internal_method_loadplugin.php
smarty_internal_method_mustcompile.php
smarty_internal_method_registercacheresource.php
smarty_internal_method_registerclass.php
smarty_internal_method_registerdefaultconfighandler.php
smarty_internal_method_registerdefaultpluginhandler.php
smarty_internal_method_registerdefaulttemplatehandler.php
smarty_internal_method_registerfilter.php
smarty_internal_method_registerobject.php
smarty_internal_method_registerplugin.php
smarty_internal_method_registerresource.php
smarty_internal_method_setautoloadfilters.php
smarty_internal_method_setdebugtemplate.php
smarty_internal_method_setdefaultmodifiers.php
smarty_internal_method_unloadfilter.php
smarty_internal_method_unregistercacheresource.php
smarty_internal_method_unregisterfilter.php
smarty_internal_method_unregisterobject.php
smarty_internal_method_unregisterplugin.php
smarty_internal_method_unregisterresource.php
smarty_internal_nocache_insert.php
smarty_internal_parsetree.php
smarty_internal_parsetree_code.php
smarty_internal_parsetree_dq.php
smarty_internal_parsetree_dqcontent.php
smarty_internal_parsetree_tag.php
smarty_internal_parsetree_template.php
smarty_internal_parsetree_text.php
smarty_internal_resource_eval.php
smarty_internal_resource_extends.php
smarty_internal_resource_file.php
smarty_internal_resource_php.php
smarty_internal_resource_registered.php
smarty_internal_resource_stream.php
smarty_internal_resource_string.php
smarty_internal_runtime_cachemodify.php
smarty_internal_runtime_codeframe.php
smarty_internal_runtime_filterhandler.php
smarty_internal_runtime_foreach.php
smarty_internal_runtime_getincludepath.php
smarty_internal_runtime_hhvm.php
smarty_internal_runtime_inheritance.php
smarty_internal_runtime_subtemplate.php
smarty_internal_runtime_tplfunction.php
smarty_internal_runtime_updatecache.php
smarty_internal_runtime_updatescope.php
smarty_internal_runtime_validatecompiled.php
smarty_internal_runtime_var.php
smarty_internal_runtime_writefile.php
smarty_internal_smartytemplatecompiler.php
smarty_internal_template.php
smarty_internal_templatebase.php
smarty_internal_templatecompilerbase.php
smarty_internal_templatelexer.php
smarty_internal_templateparser.php
smarty_internal_testinstall.php
smarty_internal_undefined.php
smarty_resource.php
smarty_resource_custom.php
smarty_resource_recompiled.php
smarty_resource_uncompiled.php
smarty_security.php
smarty_template_cached.php
smarty_template_compiled.php
smarty_template_config.php
smarty_template_resource_base.php
smarty_template_source.php
smarty_undefined_variable.php
smarty_variable.php
smartycompilerexception.php
smartyexception.php
Autoloader.php
Config_File.class.php
Smarty.class.php
SmartyBC.class.php
Smarty_Compiler.class.php
debug.tpl
.gitattributes
.gitignore
.travis.yml
BUGS
COMPOSER_RELEASE_NOTES.txt
COPYING.lib
ChangeLog
FAQ
INHERITANCE_RELEASE_NOTES.txt
INSTALL
NEWS
NEW_FEATURES.txt
QUICK_START
README
README.md
RELEASE_NOTES
SMARTY_2_BC_NOTES.txt
SMARTY_3.0_BC_NOTES.txt
SMARTY_3.1_NOTES.txt
TODO
change_log.txt
composer.json
smarty2
smarty_3
Smarty-2.6.28.zip
smarty-3.1.29.zip
media
mpdf
old_CKEditor_4.6.1
overlib
phpspreadsheet_1.8.1.0
praxisstelle
status
templates
templates_c
upload_20210329
uploads
.gitignore
aufl.html
bewerber_daten.php
config.inc.php
cr_test.php
cron_remember_mail_kehl.php
cron_remember_mail_lubu.php
cron_remember_upload.php
fetch_gebdat.php
func_age.php
func_fetch_tan.php
func_get_parameter.php
func_get_restplatz.php
func_id.php
func_notenskala.php
func_standard_hs.php
func_tangen.php
index.php
phpspreadsheet_1.8.1.0.zip
sepa-ueberweisung.jpg
sepa-ueberweisung2.jpg
test1.php
ueberweisungstraeger.png
dvm/lib/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php
2022-11-28 10:27:30 +01:00

124 lines
4.6 KiB
PHP
Executable File

<?php
/**
* Smarty Method ClearCompiledTemplate
*
* Smarty::clearCompiledTemplate() method
*
* @package Smarty
* @subpackage PluginsInternal
* @author Uwe Tews
*/
class Smarty_Internal_Method_ClearCompiledTemplate
{
/**
* Valid for Smarty object
*
* @var int
*/
public $objMap = 1;
/**
* Delete compiled template file
*
* @api Smarty::clearCompiledTemplate()
* @link http://www.smarty.net/docs/en/api.clear.compiled.template.tpl
*
* @param \Smarty $smarty
* @param string $resource_name template name
* @param string $compile_id compile id
* @param integer $exp_time expiration time
*
* @return integer number of template files deleted
*/
public function clearCompiledTemplate(Smarty $smarty, $resource_name = null, $compile_id = null, $exp_time = null)
{
$_compile_dir = $smarty->getCompileDir();
if ($_compile_dir == '/') { //We should never want to delete this!
return 0;
}
$_compile_id = isset($compile_id) ? preg_replace('![^\w]+!', '_', $compile_id) : null;
$_dir_sep = $smarty->use_sub_dirs ? DS : '^';
if (isset($resource_name)) {
$_save_stat = $smarty->caching;
$smarty->caching = false;
/* @var Smarty_Internal_Template $tpl */
$tpl = new $smarty->template_class($resource_name, $smarty);
$smarty->caching = $_save_stat;
if ($tpl->source->exists) {
// remove from compileds cache
$tpl->source->compileds = array();
$_resource_part_1 = basename(str_replace('^', DS, $tpl->compiled->filepath));
$_resource_part_1_length = strlen($_resource_part_1);
} else {
return 0;
}
$_resource_part_2 = str_replace('.php', '.cache.php', $_resource_part_1);
$_resource_part_2_length = strlen($_resource_part_2);
}
$_dir = $_compile_dir;
if ($smarty->use_sub_dirs && isset($_compile_id)) {
$_dir .= $_compile_id . $_dir_sep;
}
if (isset($_compile_id)) {
$_compile_id_part = $_compile_dir . $_compile_id . $_dir_sep;
$_compile_id_part_length = strlen($_compile_id_part);
}
$_count = 0;
try {
$_compileDirs = new RecursiveDirectoryIterator($_dir);
// NOTE: UnexpectedValueException thrown for PHP >= 5.3
}
catch (Exception $e) {
return 0;
}
$_compile = new RecursiveIteratorIterator($_compileDirs, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($_compile as $_file) {
if (substr(basename($_file->getPathname()), 0, 1) == '.' || strpos($_file, '.svn') !== false) {
continue;
}
$_filepath = (string) $_file;
if ($_file->isDir()) {
if (!$_compile->isDot()) {
// delete folder if empty
@rmdir($_file->getPathname());
}
} else {
$unlink = false;
if ((!isset($_compile_id) || (isset($_filepath[$_compile_id_part_length]) &&
$a = !strncmp($_filepath, $_compile_id_part, $_compile_id_part_length))) &&
(!isset($resource_name) || (isset($_filepath[$_resource_part_1_length]) &&
substr_compare($_filepath, $_resource_part_1, - $_resource_part_1_length,
$_resource_part_1_length) == 0) ||
(isset($_filepath[$_resource_part_2_length]) &&
substr_compare($_filepath, $_resource_part_2, - $_resource_part_2_length,
$_resource_part_2_length) == 0))
) {
if (isset($exp_time)) {
if (time() - @filemtime($_filepath) >= $exp_time) {
$unlink = true;
}
} else {
$unlink = true;
}
}
if ($unlink && @unlink($_filepath)) {
$_count ++;
if (function_exists('opcache_invalidate')) {
opcache_invalidate($_filepath);
}
}
}
}
// clear template objects cache
$smarty->_cache['isCached'] = array();
if (isset($smarty->ext->_subtemplate)) {
$smarty->ext->_subtemplate->tplObjects = array();
}
return $_count;
}
}