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

controllers/grid/settings/plugins/SettingsPluginGridHandler.inc.php

00001 <?php
00002 
00015 import('controllers.grid.plugins.PluginGridHandler');
00016 
00017 class SettingsPluginGridHandler extends PluginGridHandler {
00021    function SettingsPluginGridHandler() {
00022       $roles = array(ROLE_ID_SITE_ADMIN, ROLE_ID_PRESS_MANAGER);
00023 
00024       $this->addRoleAssignment($roles, array('plugin'));
00025 
00026       parent::PluginGridHandler($roles);
00027    }
00028 
00029 
00030    //
00031    // Extended methods from PluginGridHandler
00032    //
00036    function getCategoryData($categoryDataElement, $filter) {
00037       $plugins = parent::getCategoryData($categoryDataElement, $filter);
00038 
00039       $pressDao =& DAORegistry::getDAO('PressDAO');
00040       $presses =& $pressDao->getPresses();
00041       $singlePress = false;
00042       if ($presses->getCount() == 1) {
00043          $singlePress = true;
00044       }
00045 
00046       $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
00047 
00048       $showSitePlugins = false;
00049       if ($singlePress && in_array(ROLE_ID_SITE_ADMIN, $userRoles)) {
00050          $showSitePlugins = true;
00051       }
00052 
00053       if ($showSitePlugins) {
00054          return $plugins;
00055       } else {
00056          $pressLevelPlugins = array();
00057          foreach ($plugins as $plugin) {
00058             if (!$plugin->isSitePlugin()) {
00059                $pressLevelPlugins[$plugin->getName()] = $plugin;
00060             }
00061             unset($plugin);
00062          }
00063          return $pressLevelPlugins;
00064       }
00065    }
00066 
00067    //
00068    // Overriden template methods.
00069    //
00073    function getRowInstance() {
00074       return parent::getRowInstance(CONTEXT_PRESS);
00075    }
00076 }
00077 
00078 ?>

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