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.
		
		
		
		
		
			
		
			
				
					
					
						
							54 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							54 lines
						
					
					
						
							1.4 KiB
						
					
					
				
								<?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: */
							 | 
						|
								
							 | 
						|
								?>
							 | 
						|
								
							 |