55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Smarty plugin
 | 
						|
 * @package Smarty
 | 
						|
 * @subpackage plugins
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * delete a dir recursively (level=0 -> keep root)
 | 
						|
 * WARNING: no tests, it will try to remove what you tell it!
 | 
						|
 *
 | 
						|
 * @param string $dirname
 | 
						|
 * @param integer $level
 | 
						|
 * @param integer $exp_time
 | 
						|
 * @return boolean
 | 
						|
 */
 | 
						|
 | 
						|
//  $dirname, $level = 1, $exp_time = null
 | 
						|
 | 
						|
function smarty_core_rmdir($params, &$smarty)
 | 
						|
{
 | 
						|
   if(!isset($params['level'])) { $params['level'] = 1; }
 | 
						|
   if(!isset($params['exp_time'])) { $params['exp_time'] = null; }
 | 
						|
 | 
						|
   if($_handle = @opendir($params['dirname'])) {
 | 
						|
 | 
						|
        while (false !== ($_entry = readdir($_handle))) {
 | 
						|
            if ($_entry != '.' && $_entry != '..') {
 | 
						|
                if (@is_dir($params['dirname'] . DIRECTORY_SEPARATOR . $_entry)) {
 | 
						|
                    $_params = array(
 | 
						|
                        'dirname' => $params['dirname'] . DIRECTORY_SEPARATOR . $_entry,
 | 
						|
                        'level' => $params['level'] + 1,
 | 
						|
                        'exp_time' => $params['exp_time']
 | 
						|
                    );
 | 
						|
                    smarty_core_rmdir($_params, $smarty);
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    $smarty->_unlink($params['dirname'] . DIRECTORY_SEPARATOR . $_entry, $params['exp_time']);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        closedir($_handle);
 | 
						|
   }
 | 
						|
 | 
						|
   if ($params['level']) {
 | 
						|
       return @rmdir($params['dirname']);
 | 
						|
   }
 | 
						|
   return (bool)$_handle;
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/* vim: set expandtab: */
 | 
						|
 | 
						|
?>
 |