Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/dialog/block/aliasing.php
Строк: 71
<?php
namespace ConcreteControllerDialogBlock;

use 
ConcreteControllerBackendUserInterfaceBlock as BackendInterfaceBlockController;
use 
ConcreteCorePageEditResponse;
use 
ConcreteCorePagePageList;
use 
ConcreteCorePageTemplate;
use 
ConcreteCorePageTypeType;

class 
Aliasing extends BackendInterfaceBlockController
{
    protected 
$viewPath '/dialogs/block/aliasing';

    public function 
view()
    {
        
$ct Type::getByDefaultsPage($this->page);
        
$template Template::getByID($this->page->getPageTemplateID());


        
$pl = new PageList();
        
$pl->filterByPageTypeID($ct->getPageTypeID());
        
$pl->filterByPageTemplate($template);
        
$pl->ignorePermissions();
        
$pages $pl->getResults();
        
$this->set('cList'$pages);
    }

    public function 
submit()
    {
        if (
$this->validateAction() && $this->canAccess()) {
            
$a Area::get($this->page$_GET['arHandle']);
            
$c $this->page;
            if (
is_object($a)) {
                
$b Block::getByID($_GET['bID'], $c$a);
                
$p = new Permissions($b);
                if (
$p->canAdminBlock() && $c->isMasterCollection()) {
                    if (
is_array($_POST['cIDs'])) {
                        foreach (
$_POST['cIDs'] as $cID) {
                            
$nc Page::getByID($cID);
                            if (!
$b->isAlias($nc)) {
                                
$bt $b->getBlockTypeObject();
                                if (
$bt->isCopiedWhenPropagated()) {
                                    
$b->duplicate($nctrue);
                                } else {
                                    
$b->alias($nc);
                                }
                            }
                        }
                    }
                    
// now remove any items that WERE checked and now aren't
                    
if (is_array($_POST['checkedCIDs'])) {
                        foreach (
$_POST['checkedCIDs'] as $cID) {
                            if (!(
is_array($_POST['cIDs'])) || (!in_array($cID$_POST['cIDs']))) {
                                
$nc Page::getByID($cID'RECENT');
                                
$nb Block::getByID($_GET['bID'], $nc$a);
                                if (
is_object($nb) && (!$nb->isError())) {
                                    
$nb->deleteBlock();
                                }
                                
$nc->rescanDisplayOrder($_REQUEST['arHandle']);
                            }

                        }
                    }
                    
$er = new EditResponse();
                    
$er->setPage($this->page);
                    
$er->setAdditionalDataAttribute('bID'$b->getBlockID());
                    
$er->setAdditionalDataAttribute('aID'$a->getAreaID());
                    
$er->setAdditionalDataAttribute('arHandle'$a->getAreaHandle());
                    
$er->setMessage(t('Defaults updated.'));
                    
$er->outputJSON();
                }
            }
        }
    }

    protected function 
canAccess()
    {
        return 
$this->permissions->canAdminBlock();
    }

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