Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/dialog/block/design.php
Строк: 131
<?php
namespace ConcreteControllerDialogBlock;
use 
ConcreteControllerBackendUserInterfaceBlock as BackendInterfaceBlockController;
use 
ConcreteCoreBlockCustomStyle;
use 
ConcreteCoreBlockViewBlockView;
use 
ConcreteCorePageEditResponse;
use 
ConcreteCorePageTypeComposerControlBlockControl;
use 
ConcreteCorePageTypeComposerFormLayoutSetControl;
use 
ConcreteCoreStyleCustomizerInlineStyleSet;

class 
Design extends BackendInterfaceBlockController {

    protected 
$viewPath '/dialogs/block/design';

    protected function 
canAccess()
    {
        return 
$this->permissions->canEditBlockDesign()
        || 
$this->permissions->canEditBlockCustomTemplate();
    }

    public function 
reset()
    {
        
$b $this->getBlockToEdit();
        
$b->resetCustomStyle();
        
$pr = new EditResponse();
        
$pr->setPage($this->page);
        
$pr->setAdditionalDataAttribute('aID'$this->area->getAreaID());
        
$pr->setAdditionalDataAttribute('arHandle'$this->area->getAreaHandle());
        
$pr->setAdditionalDataAttribute('originalBlockID'$this->block->getBlockID());
        
$pr->setAdditionalDataAttribute('bID'$b->getBlockID());
        
$pr->setMessage(t('Custom design reset.'));
        
$pr->outputJSON();
    }

    public function 
submit()
    {
        if (
$this->validateAction() && $this->canAccess()) {

            
$b $this->getBlockToEdit();
            
$oldStyle $b->getCustomStyle();
            if (
is_object($oldStyle)) {
                
$oldStyleSet $oldStyle->getStyleSet();
            }

            
$r $this->request->request->all();
            
$set StyleSet::populateFromRequest($this->request);
            if (
is_object($set)) {
                
$set->save();
                
$b->setCustomStyleSet($set);
            } else if (
$oldStyleSet) {
                
$b->resetCustomStyle();
            }

            if (isset(
$r['enableBlockContainer'])) {
                if (
$r['enableBlockContainer'] === '-1') {
                    
$b->resetBlockContainerSettings();
                }
                if (
$r['enableBlockContainer'] === '0' ||
                    
$r['enableBlockContainer'] === '1') {
                    
$b->setCustomContainerSettings($r['enableBlockContainer']);
                }
            }

            if (
$this->permissions->canEditBlockCustomTemplate()) {
                
$data = array();
                
$data['bFilename'] = $r['bFilename'];
                
$b->updateBlockInformation($data);
            }

            
$pr = new EditResponse();
            
$pr->setPage($this->page);
            
$pr->setAdditionalDataAttribute('aID'$this->area->getAreaID());
            
$pr->setAdditionalDataAttribute('arHandle'$this->area->getAreaHandle());
            
$pr->setAdditionalDataAttribute('originalBlockID'$this->block->getBlockID());

            if (
is_object($oldStyleSet)) {
                
$pr->setAdditionalDataAttribute('oldIssID'$oldStyleSet->getID());
            }

            if (
is_object($set)) {
                
$pr->setAdditionalDataAttribute('issID'$set->getID());
                
$style = new CustomStyle($set$b$this->page->getCollectionThemeObject());
                
$css $style->getCSS();
                if (
$css !== '') {
                    
$pr->setAdditionalDataAttribute('css'$style->getStyleWrapper($css));
                }
            }

            
$pr->setAdditionalDataAttribute('bID'$b->getBlockID());
            
$pr->setMessage(t('Design updated.'));
            
$pr->outputJSON();
        }
    }

    public function 
view() {
        
$btc $this->block->getInstance();
        
$btc->outputAutoHeaderItems();
        
$bv = new BlockView($this->block);
        
$bv->addScopeItems(array('c' => $this->page'a' => $this->area'dialogController' => $this));
        
$this->set('bv'$bv);

        
$canEditCustomTemplate false;
        if (
$this->permissions->canEditBlockCustomTemplate()) {
            
$canEditCustomTemplate true;
            switch(
$this->block->getBlockTypeHandle()) {
                case 
BLOCK_HANDLE_SCRAPBOOK_PROXY:
                    
$bi $this->block->getInstance();
                    
$bx Block::getByID($bi->getOriginalBlockID());
                    
$bt BlockType::getByID($bx->getBlockTypeID());
                    
$bFilename $bx->getBlockFilename();
                    break;
                case 
BLOCK_HANDLE_PAGE_TYPE_OUTPUT_PROXY:
                    
$bi $this->block->getInstance();
                    
$output $bi->getComposerOutputControlObject();
                    
$control FormLayoutSetControl::getByID($output->getPageTypeComposerFormLayoutSetControlID());
                    
$object $control->getPageTypeComposerControlObject();
                    if (
$object instanceof BlockControl) {
                        
$bt $object->getBlockTypeObject();
                    }
                    
$bFilename $this->block->getBlockFilename();
                    break;
                default:
                    
$bt BlockType::getByID($this->block->getBlockTypeID());
                    
$bFilename $this->block->getBlockFilename();
                    break;
            }
            
$templates = array();
            if (
is_object($bt)) {
                
$templates $bt->getBlockTypeCustomTemplates();
            }
            
$this->set('bFilename'$bFilename);
            
$this->set('templates'$templates);
        }
        
$this->set('canEditCustomTemplate'$canEditCustomTemplate);
    }

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