• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/listbuilder/settings/BlockPluginsListbuilderHandler.inc.php

00001 <?php
00002 
00015 import('lib.pkp.classes.controllers.listbuilder.MultipleListsListbuilderHandler');
00016 
00017 class BlockPluginsListbuilderHandler extends MultipleListsListbuilderHandler {
00021    function BlockPluginsListbuilderHandler() {
00022       parent::MultipleListsListbuilderHandler();
00023       $this->addRoleAssignment(
00024          ROLE_ID_PRESS_MANAGER,
00025          array('fetch')
00026       );
00027    }
00028 
00032    function authorize(&$request, $args, $roleAssignments) {
00033       import('classes.security.authorization.OmpPressAccessPolicy');
00034       $this->addPolicy(new OmpPressAccessPolicy($request, $roleAssignments));
00035       return parent::authorize($request, $args, $roleAssignments);
00036    }
00037 
00041    function initialize(&$request) {
00042       parent::initialize($request);
00043       AppLocale::requireComponents(LOCALE_COMPONENT_PKP_MANAGER);
00044 
00045       // Basic configuration
00046       $this->setTitle('manager.setup.layout.blockManagement');
00047       $this->setSaveFieldName('blocks');
00048 
00049       // Name column
00050       $nameColumn = new ListbuilderGridColumn($this, 'name', 'common.name');
00051 
00052       // Add lists.
00053       $this->addList(new ListbuilderList('leftContext', 'manager.setup.layout.leftSidebar'));
00054       $this->addList(new ListbuilderList('unselected', 'manager.setup.layout.unselected'));
00055       $this->addList(new ListbuilderList('rightContext', 'manager.setup.layout.rightSidebar'));
00056 
00057       import('controllers.listbuilder.settings.BlockPluginsListbuilderGridCellProvider');
00058       $nameColumn->setCellProvider(new BlockPluginsListbuilderGridCellProvider());
00059       $this->addColumn($nameColumn);
00060    }
00061 
00062 
00063    //
00064    // Overridden template methods
00065    //
00069    function setListsData($request, $filter) {
00070       $leftBlockPlugins = $disabledBlockPlugins = $rightBlockPlugins = array();
00071       $plugins =& PluginRegistry::loadCategory('blocks');
00072       foreach ($plugins as $key => $junk) {
00073          if (!$plugins[$key]->getEnabled() || $plugins[$key]->getBlockContext() == '') {
00074             if (count(array_intersect($plugins[$key]->getSupportedContexts(), array(BLOCK_CONTEXT_LEFT_SIDEBAR, BLOCK_CONTEXT_RIGHT_SIDEBAR))) > 0) $disabledBlockPlugins[$key] =& $plugins[$key];
00075          } else switch ($plugins[$key]->getBlockContext()) {
00076             case BLOCK_CONTEXT_LEFT_SIDEBAR:
00077                $leftBlockPlugins[$key] =& $plugins[$key];
00078                break;
00079             case BLOCK_CONTEXT_RIGHT_SIDEBAR:
00080                $rightBlockPlugins[$key] =& $plugins[$key];
00081                break;
00082          }
00083       }
00084 
00085       $lists =& $this->getLists();
00086       $lists['leftContext']->setData($leftBlockPlugins);
00087       $lists['rightContext']->setData($rightBlockPlugins);
00088       $lists['unselected']->setData($disabledBlockPlugins);
00089    }
00090 }
00091 
00092 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1