/**
  * Chmod wrapper
  *
  * @param   string  $filename  File name.
  * @param   mixed   $mode      Mode to use.
  *
  * @return  boolean
  *
  * @since   11.1
  */
 public function chmod($filename = '', $mode = 0)
 {
     if (!$filename) {
         if (!isset($this->filename) || !$this->filename) {
             $this->setError(JText::_('JLIB_FILESYSTEM_ERROR_STREAMS_FILENAME'));
             return false;
         }
         $filename = $this->filename;
     }
     // If no mode is set use the default
     if (!$mode) {
         $mode = $this->filemode;
     }
     $retval = false;
     // Capture PHP errors
     $php_errormsg = '';
     $track_errors = ini_get('track_errors');
     ini_set('track_errors', true);
     $sch = parse_url($filename, PHP_URL_SCHEME);
     // Scheme specific options; ftp's chmod support is fun.
     switch ($sch) {
         case 'ftp':
         case 'ftps':
             $res = JFilesystemHelper::ftpChmod($filename, $mode);
             break;
         default:
             $res = chmod($filename, $mode);
             break;
     }
     // Seek, interestingly, returns 0 on success or -1 on failure
     if (!$res) {
         $this->setError($php_errormsg);
     } else {
         $retval = true;
     }
     // Restore error tracking to what it was before.
     ini_set('track_errors', $track_errors);
     // Return the result
     return $retval;
 }
Example #2
0
 /**
  * chmod wrapper
  * @param mixed Mode to use
  */
 function chmod($filename = '', $mode = 0)
 {
     if (!$filename) {
         if (!isset($this->filename) || !$this->filename) {
             $this->setError(JText::_('Filename not set'));
             return false;
         }
         $filename = $this->filename;
     }
     // if no mode is set use the default
     if (!$mode) {
         $mode = $this->filemode;
     }
     $retval = false;
     // Capture PHP errors
     $php_errormsg = '';
     $track_errors = ini_get('track_errors');
     ini_set('track_errors', true);
     $sch = parse_url($filename, PHP_URL_SCHEME);
     // scheme specific options; ftp's chmod support is fun
     switch ($sch) {
         case 'ftp':
         case 'ftps':
             $res = JFilesystemHelper::ftpChmod($filename, $mode);
             break;
         default:
             //echo '<p>Chmodding '. $filename . ' with ' . decoct($mode) .'</p>';
             $res = chmod($filename, $mode);
             break;
     }
     // seek, interestingly returns 0 on success or -1 on failure
     if (!$res) {
         $this->setError($php_errormsg);
     } else {
         $retval = true;
     }
     // restore error tracking to what it was before
     ini_set('track_errors', $track_errors);
     // return the result
     return $retval;
 }