You are here

function webfm_delete_dir_recur in Web File Manager 5

Same name and namespace in other branches
  1. 5.2 webfm_file.inc \webfm_delete_dir_recur()

webfm_delete_dir_recur - called from the ajax action - switch case 'delete':

@ret bool -true if the directory or file is deleted and all file records updated

Parameters

string $source - the source directory path:

bool $ret - return value seed:

string &$err_arr - ref to error array for client feedback:

1 call to webfm_delete_dir_recur()
webfm_ajax in ./webfm.module
Ajax post requests

File

./webfm_file.inc, line 156

Code

function webfm_delete_dir_recur($source, $ret, &$err_arr) {
  if ($handle = opendir($source)) {
    while (($file = readdir($handle)) !== FALSE) {
      if ($file != '.' && $file != '..') {
        $source_item = $source . '/' . $file;
        if (is_file($source_item)) {
          if (!webfm_delete_file($source_item, $error)) {
            $err_arr[] = $error;
            $ret = FALSE;
          }
        }
        elseif (is_dir($source_item)) {
          webfm_delete_dir_recur($source_item, $ret, $err_arr);
        }
      }
    }
    closedir($handle);
  }
  else {
    $err_arr[] = t('Unable to opendir ') . $source;
    return FALSE;
  }
  if (($retn = rmdir($source)) == FALSE) {
    $err_arr[] = t('Unable to rmdir ') . $source;
  }
  return $retn == TRUE && $ret == TRUE;
}