Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/system/files/storage.php
Строк: 115
<?php
namespace ConcreteControllerSinglePageDashboardSystemFiles;
use 
ConcreteCorePageControllerDashboardPageController;
use 
Config;
use 
Loader;
use 
ConcreteCoreFileStorageLocationStorageLocation as FileStorageLocation;
use 
ConcreteCoreFileStorageLocationTypeType;

class 
Storage extends DashboardPageController {

    var 
$helpers = array('form','concrete/ui','validation/token''concrete/file');
    
    public function 
view($updated=false) {
        
$this->set('locations'FileStorageLocation::getList());
        
$types = array();
        
$storageLocationTypes Type::getList();
        foreach(
$storageLocationTypes as $type) {
            if (
$type->getHandle() == 'default') {
                continue;
            }
            
$types[$type->getID()] = $type->getName();
        }
        
$this->set('types'$types);
    }

    public function 
select_type() {
        
$fslTypeID $this->request('fslTypeID');
        
$type Type::getByID($fslTypeID);
        
$this->set('type'$type);
    }

    public function 
storage_location_added() {
        
$this->set('message't('File storage location added.'));
        
$this->view();
    }

    public function 
storage_location_deleted() {
        
$this->set('message't('File storage location removed.'));
        
$this->view();
    }

    public function 
storage_location_updated() {
        
$this->set('message't('File storage location saved.'));
        
$this->view();
    }

    public function 
edit($fslID false)
    {
        
$location FileStorageLocation::getByID($fslID);
        if (
is_object($location)) {
            
$this->set('location'$location);
            
$this->set('type'$location->getTypeObject());
        } else {
            
$this->redirect('/dashboard/system/files/storage');
        }
    }

    protected function 
validateStorageRequest()
    {
        
$request Request::getInstance();
        
$val Loader::helper('validation/strings');
        
$type Type::getByID($request->get('fslTypeID'));

        if (!
is_object($type)) {
            
$this->error->add(t('Invalid type object.'));
        } else {
            
$e $type->getConfigurationObject()->validateRequest($request);
            if (
is_object($e)) {
                
$this->error->add($e);
            }
        }

        if (!
$val->notempty($request->request->get('fslName'))) {
            
$this->error->add(t('Your file storage location must have a name.'));
        }

        return array(
$request$type);
    }

    public function 
update()
    {
        list(
$request$type) = $this->validateStorageRequest();

        
$fsl FileStorageLocation::getByID($request->request->get('fslID'));
        if (!
Loader::helper('validation/token')->validate('update')) {
            
$this->error->add(Loader::helper('validation/token')->getErrorMessage());
        }
        if (!
is_object($fsl)) {
            
$this->error->add(t('Invalid file storage location object.'));
        }
        if (!
$this->error->has()) {
            
$configuration $type->getConfigurationObject();
            
$configuration->loadFromRequest($request);
            
$fsl->setName($request->request->get('fslName'));
            if (!
$fsl->isDefault()) {
                
$fsl->setIsDefault($request->request->get('fslIsDefault'));
            }
            
$fsl->setConfigurationObject($configuration);
            
$fsl->save();
            
$this->redirect('/dashboard/system/files/storage''storage_location_updated');
        }

        
$this->edit($request->request->get('fslID'));
    }

    public function 
delete()
    {
        
$request Request::getInstance();

        if (!
Loader::helper('validation/token')->validate('delete')) {
            
$this->error->add(Loader::helper('validation/token')->getErrorMessage());
        }
        
$fsl FileStorageLocation::getByID($request->request->get('fslID'));
        if (!
is_object($fsl)) {
            
$this->error->add(t('Invalid file storage location object.'));
        }
        if (
$fsl->isDefault()) {
            
$this->error->add(t('You may not delete the default file storage location.'));
        }

        if (!
$this->error->has()) {
            
$fsl->delete();
            
$this->redirect('/dashboard/system/files/storage''storage_location_deleted');
        }
        
$this->edit($request->request->get('fslID'));

    }

    public function 
add()
    {
        list(
$request$type) = $this->validateStorageRequest();
        if (!
Loader::helper('validation/token')->validate('add')) {
            
$this->error->add(Loader::helper('validation/token')->getErrorMessage());
        }
        if (!
$this->error->has()) {
            
$configuration $type->getConfigurationObject();
            
$configuration->loadFromRequest($request);
            
$fsl FileStorageLocation::add($configuration,
                
$request->request->get('fslName'),
                
$request->request->get('fslIsDefault')
            );

            
$this->redirect('/dashboard/system/files/storage''storage_location_added');
        }

        
$this->set('type'$type);
    }

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