You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					55 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					55 lines
				
				1.4 KiB
			|   
											1 year ago
										 | <?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: */ | ||
|  | 
 | ||
|  | ?> |