/**
  * Delete the profile picture of the user.
  *
  * @param int $userId
  * @param string $mediaFolder
  * @param League\Flysystem\Filesystem  $filesystem
  *
  * @throws Exception
  */
 public function removeImage($userId, $mediaFolder, $filesystem)
 {
     $row = $this->getTable();
     $row->load(array('user_id' => $userId));
     if ((int) $row->get('id') > 0) {
         // Delete the profile pictures.
         if ($row->get('image') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image'))) {
             $filesystem->delete($mediaFolder . '/' . $row->get('image'));
         }
         if ($row->get('image_small') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image_small'))) {
             $filesystem->delete($mediaFolder . '/' . $row->get('image_small'));
         }
         if ($row->get('image_square') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image_square'))) {
             $filesystem->delete($mediaFolder . '/' . $row->get('image_square'));
         }
         if ($row->get('image_icon') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image_icon'))) {
             $filesystem->delete($mediaFolder . '/' . $row->get('image_icon'));
         }
         $row->set('image', '');
         $row->set('image_small', '');
         $row->set('image_square', '');
         $row->set('image_icon', '');
         $row->store();
     }
 }
Esempio n. 2
0
 /**
  * due to Doctrine cache deleteAll() cannot really delete file/folder for FilesystemCache, it just left old cache file and create new cache folder.<br>
  * this method is for really delete all cache and all file (in specified sub folder if it was set).
  * 
  * @return boolean
  */
 public function deleteAllFile()
 {
     $result = $this->deleteAll();
     if (isset($this->cache_config['driver']) && $this->cache_config['driver'] == 'Filesystem' && isset($this->cache_config['cache_path'])) {
         $adapter = new \League\Flysystem\Adapter\Local($this->cache_config['cache_path']);
         $Filesystem = new \League\Flysystem\Filesystem($adapter);
         $Filesystem->addPlugin(new \League\Flysystem\Plugin\ListPaths());
         if ($this->cache_config['cache_path'] . $this->subFolder == STORAGE_PATH . DS . 'cms' . DS . 'cache') {
             // sub folder may not set and cache path is match main cache folder.
             $files = $Filesystem->listPaths($this->subFolder);
             if (is_array($files)) {
                 foreach ($files as $file) {
                     if ($file != '.gitignore' && is_dir($this->cache_config['cache_path'] . $this->subFolder . '/' . $file)) {
                         $Filesystem->deleteDir($file);
                     } elseif ($file != '.gitignore' && is_file($this->cache_config['cache_path'] . $this->subFolder . '/' . $file)) {
                         $Filesystem->delete($file);
                     }
                 }
                 unset($file);
             }
             unset($files);
         } else {
             // sub folder is set.
             $files = $Filesystem->listPaths('');
             if (is_array($files)) {
                 foreach ($files as $file) {
                     if (is_dir($this->cache_config['cache_path'] . '/' . $file)) {
                         $Filesystem->deleteDir($file);
                     } elseif (is_file($this->cache_config['cache_path'] . '/' . $file)) {
                         $Filesystem->delete($file);
                     }
                 }
                 unset($file);
             }
             unset($files);
         }
     }
     return $result;
 }
 /**
  * Delete the images.
  *
  * @param JTable $row
  * @param string $mediaFolder
  * @param League\Flysystem\Filesystem  $filesystem
  */
 protected function deleteImages($row, $mediaFolder, $filesystem)
 {
     // Delete the profile pictures.
     if ($row->get('image') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image'))) {
         $filesystem->delete($mediaFolder . '/' . $row->get('image'));
     }
     if ($row->get('image_small') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image_small'))) {
         $filesystem->delete($mediaFolder . '/' . $row->get('image_small'));
     }
     if ($row->get('image_square') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image_square'))) {
         $filesystem->delete($mediaFolder . '/' . $row->get('image_square'));
     }
     if ($row->get('image_icon') !== '' and $filesystem->has($mediaFolder . '/' . $row->get('image_icon'))) {
         $filesystem->delete($mediaFolder . '/' . $row->get('image_icon'));
     }
 }