Beispiel #1
2
 public function __construct(Application $app, $config, Block $b, Page $c, Area $a)
 {
     parent::__construct();
     $p = new \Permissions($b);
     $this->permissions = $p;
     $this->block = $b;
     $this->page = $c;
     $this->area = $a;
     $this->setAttribute('data-block-menu', 'block-menu-b' . $b->getBlockID());
     $this->setAttribute('class', 'ccm-edit-mode-block-menu');
     $btw = $b->getBlockTypeObject();
     $btOriginal = $btw;
     $bID = $b->getBlockID();
     $aID = $a->getAreaID();
     $heightPlus = 20;
     $btHandle = $btw->getBlockTypeHandle();
     $editInline = false;
     if ($btw->supportsInlineEdit()) {
         $editInline = true;
     }
     if ($btw->getBlockTypeHandle() == BLOCK_HANDLE_SCRAPBOOK_PROXY) {
         $_bi = $b->getInstance();
         $_bo = Block::getByID($_bi->getOriginalBlockID());
         $btOriginal = BlockType::getByHandle($_bo->getBlockTypeHandle());
         $btHandle = $btOriginal->getBlockTypeHandle();
         $heightPlus = 80;
         if ($btOriginal->supportsInlineEdit()) {
             $editInline = true;
         }
     }
     $canDesign = $p->canEditBlockDesign() && $config->get('concrete.design.enable_custom') == true;
     $canModifyGroups = $p->canEditBlockPermissions() && $config->get('concrete.permissions.model') != 'simple' && !$a->isGlobalArea();
     $canEditName = $p->canEditBlockName();
     $canEditCacheSettings = $p->canEditBlockCacheSettings();
     $canEditCustomTemplate = $p->canEditBlockCustomTemplate();
     $canScheduleGuestAccess = $config->get('concrete.permissions.model') != 'simple' && $p->canGuestsViewThisBlock() && $p->canScheduleGuestAccess() && !$a->isGlobalArea();
     $canAliasBlockOut = $c->isMasterCollection() && !$a->isGlobalArea();
     if ($canAliasBlockOut) {
         $ct = Type::getByID($c->getPageTypeID());
     }
     $isAlias = $b->isAlias();
     $u = new \User();
     $numChildren = !$isAlias ? $b->getNumChildren() : 0;
     if ($isAlias) {
         $deleteMessage = t('Do you want to delete this block?');
     } elseif ($numChildren) {
         $deleteMessage = t('Do you want to delete this block? This item is an original. If you delete it, you will delete all blocks aliased to it');
     } else {
         $deleteMessage = t('Do you want to delete this block?');
     }
     if ($btOriginal->getBlockTypeHandle() == BLOCK_HANDLE_STACK_PROXY) {
         if (is_object($_bo)) {
             $bi = $_bo->getInstance();
         } else {
             $bi = $b->getInstance();
         }
         $stack = \Stack::getByID($bi->stID);
         if (is_object($stack)) {
             $sp = new \Permissions($stack);
             if ($sp->canWrite()) {
                 $this->addItem(new LinkItem(\URL::to('/dashboard/blocks/stacks', 'view_details', $stack->getCollectionID()), t('Manage Stack Contents')));
             }
         }
     } else {
         if ($p->canEditBlock() && $b->isEditable()) {
             if ($editInline) {
                 if ($b->getBlockTypeHandle() == BLOCK_HANDLE_LAYOUT_PROXY) {
                     $this->addItem(new LinkItem('javascript:void(0)', t('Edit Layout'), ['data-menu-action' => 'edit_inline', 'data-area-enable-grid-container' => $a->isGridContainerEnabled(), 'data-area-grid-maximum-columns' => $a->getAreaGridMaximumColumns()]));
                 } else {
                     $this->addItem(new LinkItem('javascript:void(0)', t('Edit Block'), ['data-menu-action' => 'edit_inline', 'data-area-enable-grid-container' => $a->isGridContainerEnabled(), 'data-area-grid-maximum-columns' => $a->getAreaGridMaximumColumns()]));
                 }
             } else {
                 $this->addItem(new LinkItem('javascript:void(0)', t('Edit Block'), ['data-menu-action' => 'block_dialog', 'data-menu-href' => \URL::to('/ccm/system/dialogs/block/edit'), 'dialog-title' => t('Edit %s', t($btOriginal->getBlockTypeName())), 'dialog-width' => $btOriginal->getBlockTypeInterfaceWidth(), 'dialog-height' => $btOriginal->getBlockTypeInterfaceHeight() + $heightPlus]));
             }
         }
     }
     if ($b->getBlockTypeHandle() != BLOCK_HANDLE_LAYOUT_PROXY && $b->getBlockTypeHandle() != BLOCK_HANDLE_PAGE_TYPE_OUTPUT_PROXY) {
         $this->addItem(new LinkItem('javascript:void(0)', t('Copy to Clipboard'), ['data-menu-action' => 'block_scrapbook', 'data-token' => $app->make('token')->generate('tools/clipboard/to')]));
     }
     if ($p->canDeleteBlock()) {
         $this->addItem(new LinkItem('javascript:void(0)', t('Delete'), ['data-menu-action' => 'delete_block', 'data-menu-delete-message' => $deleteMessage]));
     }
     if ($b->getBlockTypeHandle() != BLOCK_HANDLE_LAYOUT_PROXY) {
         if ($canDesign || $canEditCustomTemplate || $canEditName || $canEditCacheSettings) {
             $this->addItem(new DividerItem());
             if ($canDesign || $canEditCustomTemplate) {
                 $this->addItem(new LinkItem('#', t('Design & Custom Template'), ['data-menu-action' => 'block_design']));
             }
             if ($b->getBlockTypeHandle() != BLOCK_HANDLE_PAGE_TYPE_OUTPUT_PROXY && ($canEditName || $canEditCacheSettings)) {
                 $this->addItem(new LinkItem('#', t('Advanced'), ['dialog-title' => t('Advanced Block Settings'), 'data-menu-action' => 'block_dialog', 'data-menu-href' => \URL::to('/ccm/system/dialogs/block/cache'), 'dialog-width' => 500, 'dialog-height' => 320]));
             }
         }
     }
     if ($b->getBlockTypeHandle() != BLOCK_HANDLE_PAGE_TYPE_OUTPUT_PROXY && ($canModifyGroups || $canScheduleGuestAccess || $canAliasBlockOut)) {
         $this->addItem(new DividerItem());
         if ($canModifyGroups) {
             $this->addItem(new LinkItem('#', t('Permissions'), ['dialog-title' => t('Block Permissions'), 'data-menu-action' => 'block_dialog', 'data-menu-href' => \URL::to('/ccm/system/dialogs/block/permissions/list'), 'dialog-width' => 350, 'dialog-height' => 450]));
         }
         if ($canScheduleGuestAccess) {
             $this->addItem(new LinkItem('#', t('Schedule Guest Access'), ['dialog-title' => t('Schedule Guest Access'), 'data-menu-action' => 'block_dialog', 'data-menu-href' => \URL::to('/ccm/system/dialogs/block/permissions/guest_access'), 'dialog-width' => 500, 'dialog-height' => 320]));
         }
         if ($canAliasBlockOut) {
             $this->addItem(new LinkItem('#', t('Setup on Child Pages'), ['dialog-title' => t('Setup on Child Pages'), 'data-menu-action' => 'block_dialog', 'data-menu-href' => \URL::to('/ccm/system/dialogs/block/aliasing'), 'dialog-width' => 500, 'dialog-height' => 'auto']));
         }
     }
 }
Beispiel #2
0
                ?>
 , <?php 
                echo $bt->getBlockTypeInterfaceHeight();
                ?>
 )" ><?php 
                echo t('Edit');
                ?>
</a> 
							&nbsp;|&nbsp; 
							
							<?php 
            }
            ?>
							
							<?php 
            if (PERMISSIONS_MODEL != 'simple' && $bp->canEditBlockPermissions()) {
                ?>
								<a href="javascript:void(0)" onclick="GlobalScrapbook.editBlockPermissions(<?php 
                echo $b->getBlockID();
                ?>
)" ><?php 
                echo t('Permissions');
                ?>
</a> 
								<?php 
                if ($bp->canDeleteBlock()) {
                    ?>
									&nbsp;|&nbsp;
								<?php 
                }
                ?>
 $bID = $b->getBlockID();
 $aID = $a->getAreaID();
 $heightPlus = 20;
 $btHandle = $btw->getBlockTypeHandle();
 if ($btw->getBlockTypeHandle() == BLOCK_HANDLE_SCRAPBOOK_PROXY) {
     $_bi = $b->getInstance();
     $_bo = Block::getByID($_bi->getOriginalBlockID());
     $btOriginal = BlockType::getByHandle($_bo->getBlockTypeHandle());
     $btHandle = $btOriginal->getBlockTypeHandle();
     $heightPlus = 80;
     if ($btOriginal->supportsInlineEdit()) {
         $editInline = true;
     }
 }
 $canDesign = $p->canEditBlockDesign() && Config::get('concrete.design.enable_custom') == true;
 $canModifyGroups = $p->canEditBlockPermissions() && Config::get('concrete.permissions.model') != 'simple' && !$a->isGlobalArea();
 $canEditName = $p->canEditBlockName();
 $canEditCacheSettings = $p->canEditBlockCacheSettings();
 $canEditCustomTemplate = $p->canEditBlockCustomTemplate();
 $canScheduleGuestAccess = Config::get('concrete.permissions.model') != 'simple' && $p->canGuestsViewThisBlock() && $p->canScheduleGuestAccess() && !$a->isGlobalArea();
 $canAliasBlockOut = $c->isMasterCollection() && !$a->isGlobalArea();
 if ($canAliasBlockOut) {
     $ct = PageType::getByID($c->getPageTypeID());
 }
 $isAlias = $b->isAlias();
 $u = new User();
 $numChildren = !$isAlias ? $b->getNumChildren() : 0;
 if ($isAlias) {
     $deleteMessage = t('Do you want to delete this block?');
 } else {
     if ($numChildren) {
Beispiel #4
0
<?
defined('C5_EXECUTE') or die("Access Denied.");
$c = Page::getByID($_REQUEST['cID']);
$a = Area::get($c, $_REQUEST['arHandle']);
if (is_object($a)) {
	$ax = $a;
	$cx = $c;
	if ($a->isGlobalArea()) {
		$ax = STACKS_AREA_NAME;
		$cx = Stack::getByName($_REQUEST['arHandle']);
	}

	$b = Block::getByID($_REQUEST['bID'], $cx, $ax); 
	$p = new Permissions($b);
	// we're updating the groups for a particular block
	if ($p->canEditBlockPermissions()) {
		$nvc = $cx->getVersionToModify();
		if ($a->isGlobalArea()) {
			$xvc = $c->getVersionToModify(); // we need to create a new version of THIS page as well.
			$xvc->relateVersionEdits($nvc);
		}
		$b->loadNewCollection($nvc);

		if ($_REQUEST['task'] == 'add_access_entity' && Loader::helper("validation/token")->validate('add_access_entity')) {
			$pk = BlockPermissionKey::getByID($_REQUEST['pkID']);
			$pk->setPermissionObject($b);
			$pa = PermissionAccess::getByID($_REQUEST['paID'], $pk);
			$pe = PermissionAccessEntity::getByID($_REQUEST['peID']);
			$pd = PermissionDuration::getByID($_REQUEST['pdID']);
			$pa->addListItem($pe, $pd, $_REQUEST['accessType']);
		}
 public function rename_block()
 {
     $valt = Loader::helper('validation/token');
     if (!$valt->validate('rename_scrapbook_block')) {
         $this->set('error', array($valt->getErrorMessage()));
         $this->view();
         return;
     }
     $bID = intval($_REQUEST['bID']);
     $globalScrapbookC = $this->getCollectionObject();
     $scrapbookName = $_REQUEST['scrapbookName'];
     $globalScrapbookArea = Area::getOrCreate($globalScrapbookC, $scrapbookName);
     $block = Block::getById($bID, $globalScrapbookC, $globalScrapbookArea);
     if ($block && strlen($_POST['bName'])) {
         //&& $block->getAreaHandle()=='Global Scrapbook'
         //this is needed so the cache clears correctly
         $bp = new Permissions($block);
         if ($bp->canEditBlockPermissions()) {
             $block->setBlockAreaObject($globalScrapbookArea);
             $block->updateBlockName($_POST['bName'], 1);
         }
     }
     header('Location: ' . View::url('/dashboard/scrapbook', 'view') . '?scrapbookName=' . $scrapbookName);
     exit;
 }