/**
  * A filter to change the WP core upload path for files.
  *
  * @access private
  * @static
  * @since  8.1
  * @param  array $file The WP core upload path values.
  *
  * @return array
  */
 public function subDirectory($file)
 {
     // If this is a multi site AND Connections is in multi site mode then the the paths passed by WP can be used.
     if (is_multisite() && CN_MULTISITE_ENABLED) {
         $file['subdir'] = empty($this->subDirectory) ? cnURL::preslashit($file['subdir']) : cnURL::preslashit($this->subDirectory);
         $file['path'] = untrailingslashit($file['basedir']) . $file['subdir'];
         $file['url'] = untrailingslashit($file['baseurl']) . $file['subdir'];
         // If Connections is on single site or in single site mode on a multi site setup use cnUpload::info() to get the path info.
     } else {
         // NOTE: Important! cnUpload::info() can not be used within this class when `if ( is_multisite() && CN_MULTISITE_ENABLED )`
         // because it will cause a infinite loop due to the filter added in $this->file() which add this method as a callback
         // to the `upload_dir` hook.
         $info = cnUpload::info();
         $file['subdir'] = empty($this->subDirectory) ? cnURL::preslashit($file['subdir']) : cnURL::preslashit($this->subDirectory);
         $file['path'] = untrailingslashit($info['base_path']) . $file['subdir'];
         $file['url'] = untrailingslashit($info['base_url']) . $file['subdir'];
     }
     return $file;
 }