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