- function chmod($file, $mode = false, $recursive = false) {
- if( ! $mode )
- $mode = $this->permission;
- if( ! $this->exists($file) )
- return false;
- if( ! $recursive )
- return @chmod($file,$mode);
- if( ! $this->is_dir($file) )
+
+ /**
+ * Changes filesystem permissions
+ *
+ * @param string $file Path to the file.
+ * @param int $mode (optional) The permissions as octal number, usually 0644 for files, 0755 for dirs.
+ * @param bool $recursive (optional) If set True changes file group recursively. Defaults to False.
+ * @return bool Returns true on success or false on failure.
+ */
+ public function chmod($file, $mode = false, $recursive = false) {
+ if ( ! $mode ) {
+ if ( $this->is_file($file) )
+ $mode = FS_CHMOD_FILE;
+ elseif ( $this->is_dir($file) )
+ $mode = FS_CHMOD_DIR;
+ else
+ return false;
+ }
+
+ if ( ! $recursive || ! $this->is_dir($file) )