Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/dialog/file/bulk/delete.php
Строк: 72
<?php
namespace ConcreteControllerDialogFileBulk;
use 
ConcreteControllerBackendUserInterface as BackendInterfaceController;
use 
ConcreteCoreValidationCSRFToken;
use 
FilePermissions;
use 
ConcreteCoreHttpResponseAssetGroup;
use 
ConcreteCoreFileEditResponse as FileEditResponse;
use 
FileAttributeKey;
use 
Permissions;
use 
Loader;
use 
File;

class 
Delete extends BackendInterfaceController {

    protected 
$viewPath '/dialogs/file/bulk/delete';
    protected 
$files = array();
    protected 
$canEdit false;

    protected function 
canAccess() {
        
$this->populateFiles();
        return 
$this->canEdit;
    }

    protected function 
populateFiles() {
        if (
is_array($_REQUEST['fID'])) {
            foreach(
$_REQUEST['fID'] as $fID) {
                
$f File::getByID($fID);
                if (
is_object($f)) {
                    
$this->files[] = $f;
                }
            }
        }

        if (
count($this->files) > 0) {
            
$this->canEdit true;
            foreach(
$this->files as $f) {
                
$fp = new Permissions($f);
                if (!
$fp->canDeleteFile()) {
                    
$this->canEdit false;
                }
            }
        } else {
            
$this->canEdit false;
        }

        return 
$this->canEdit;
    }

    public function 
view() {

        
$this->populateFiles();
        
$files = array();
        
$fcnt 0;
        if (
is_array($_REQUEST['fID'])) {
            foreach(
$_REQUEST['fID'] as $fID) {
                
$files[] = File::getByID($fID);
            }
        } else {
            
$files[] = File::getByID($_REQUEST['fID']);
        }

        
$fcnt 0;
        foreach(
$files as $f) {
            
$fp = new Permissions($f);
            if (
$fp->canDeleteFile()) {
                
$fcnt++;
            }
        }
        
$this->set('fcnt'$fcnt);
        
$this->set('form'Loader::helper('form'));
        
$this->set('files'$files);
        
$this->set('dh'Core::make('helper/date'));
    }

    public function 
deleteFiles() {
        
/** @var Token $token */
        
$token $this->app->make('token');

        if (!
$token->validate('files/bulk_delete')) {
            throw new 
Exception($token->getErrorMessage());
        }

        
$fr = new FileEditResponse();
        
$files = array();
        if (
is_array($_POST['fID'])) {
            foreach(
$_POST['fID'] as $fID) {
                
$f File::getByID($fID);
                
$fp = new Permissions($f);
                if (
$fp->canDeleteFile()) {
                    
$files[] = $f;
                    
$f->delete();
                } else {
                    throw new 
Exception(t('Unable to delete one or more files.'));
                }
            }
        }

        
$fr->setMessage(t2('%s file deleted successfully.''%s files deleted successfully.'count($files)));
        
$fr->outputJSON();
    }

}
Онлайн: 3
Реклама