function chmodDir($dir) { $current_dir = opendir($dir); while ($entryname = readdir($current_dir)) { if (is_dir("{$dir}/{$entryname}") and ($entryname != "." and $entryname != "..")) { // echo "${dir}/${entryname}#<br>"; chmod("{$dir}/{$entryname}", 0777); chmodDir("{$dir}/{$entryname}"); } elseif ($entryname != "." and $entryname != "..") { // echo "${dir}/${entryname}@<br>"; chmod("{$dir}/{$entryname}", 0777); } } chmod($dir, 0777); closedir($current_dir); }
/** * NEEDS A REWRITE, DOES NOT FUNCTION PROPERLY * Function tries to set the correct permissions on a directory * @param string Directory to change permissions on * @param int Warning number * @todo Rewrite this to function properly. Error trapping is different in class now */ function setDirPermsOnGallery($dir, &$warning_num) { global $ftpIsAvailable, $ftpUse; if (file_exists($dir)) { if (is_dir($dir)) { // check for correct permissions on the dir @chmod($dir, 0777); if ((fileperms($dir) & 0777) != 0777) { // can't change file perms, so see if // safemode patch installed and try it thru // ftp assist if (isset($ftpIsAvailable) && $ftpIsAvailable && $ftpUse && function_exists('chmodDir')) { chmodDir($dir, '777'); } } if (fileperms($dir) & 0777 != 0777) { // issue warning about not being able to change gallery dir perms to 777 // this may or may NOT be a problem. Let user decide. $warning_num = 2; return false; } else { return true; } } else { // existing gallery is a file rather than a directory // needs to be corrected by user first $warning_num = 1; return false; } } return true; }