/** * 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; }