<?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: */ 
 
?> 
 
 |