function setAccess($directory, $mode, $setself = true) { if (substr($directory, -1) == '/') { $directory = substr($directory, 0, -1); } // if the path is not valid or is not a directory ... if (!file_exists($directory) || !is_dir($directory)) { // ... we return false and exit the function return FALSE; // ... if the path is not readable } elseif (!is_readable($directory)) { // ... we return false and exit the function return FALSE; // ... else if the path is readable } else { // we open the directory $handle = opendir($directory); // and scan through the items inside while (FALSE !== ($item = readdir($handle))) { // if the filepointer is not the current directory // or the parent directory if ($item != '.' && $item != '..') { // we build the new path to delete $path = $directory . '/' . $item; // if the new path is a directory if (is_dir($path)) { chmod($path, $mode); // we call this function with the new path HandleAdAgencyPlugins::setAccess($path, $mode); // if the new path is a file } else { // we remove the file chmod($path, $mode); } } } // close the directory closedir($handle); // if the option to empty is not set to true if ($setself == TRUE) { // try to delete the now empty directory if (!chmod($directory, $mode)) { // return false if not possible return FALSE; } } // return success return TRUE; } }