Open Journal Systems  3.3.0
CustomBlockManagerPlugin.inc.php
1 <?php
2 
17 import('lib.pkp.classes.plugins.GenericPlugin');
18 
23  function getDisplayName() {
24  return __('plugins.generic.customBlockManager.displayName');
25  }
26 
30  function getDescription() {
31  return __('plugins.generic.customBlockManager.description');
32  }
33 
37  function register($category, $path, $mainContextId = null) {
38  if (parent::register($category, $path, $mainContextId)) {
39  // If the system isn't installed, or is performing an upgrade, don't
40  // register hooks. This will prevent DB access attempts before the
41  // schema is installed.
42  if (!Config::getVar('general', 'installed') || defined('RUNNING_UPGRADE')) return true;
43 
44  if ($this->getEnabled($mainContextId)) {
45  $this->import('CustomBlockPlugin');
46 
47  // Ensure that there is a context (journal or press)
48  if ($request = Application::get()->getRequest()) {
49  if ($mainContextId) {
50  $contextId = $mainContextId;
51  } else {
52  $context = $request->getContext();
53  $contextId = $context ? $context->getId() : CONTEXT_SITE;
54  }
55 
56  // Load the custom blocks we have created
57  $blocks = $this->getSetting($contextId, 'blocks');
58  if (!is_array($blocks)) $blocks = array();
59 
60  // Loop through each custom block and register it
61  $i=0;
62  foreach ($blocks as $block) {
64  'blocks',
65  new CustomBlockPlugin($block, $this),
66  $this->getPluginPath()
67  );
68  }
69  }
70 
71  // This hook is used to register the components this plugin implements to
72  // permit administration of custom block plugins.
73  HookRegistry::register('LoadComponentHandler', array($this, 'setupGridHandler'));
74  }
75  return true;
76  }
77  return false;
78  }
79 
85  function setupGridHandler($hookName, $params) {
86  $component =& $params[0];
87  if ($component == 'plugins.generic.customBlockManager.controllers.grid.CustomBlockGridHandler') {
88  define('CUSTOMBLOCKMANAGER_PLUGIN_NAME', $this->getName());
89  return true;
90  }
91  return false;
92  }
93 
97  function getActions($request, $actionArgs) {
98  import('lib.pkp.classes.linkAction.request.AjaxModal');
99  $router = $request->getRouter();
100  return array_merge(
101  $this->getEnabled()?array(
102  new LinkAction(
103  'settings',
104  new AjaxModal(
105  $router->url(
106  $request, null, null, 'manage', null, array(
107  'plugin' => $this->getName(),
108  'category' => $this->getCategory(),
109  'action' => 'index'
110  )
111  ),
112  $this->getDisplayName()
113  ),
114  __('plugins.generic.customBlockManager.manage'),
115  null
116  )
117  ):array(),
118  parent::getActions($request, $actionArgs)
119  );
120  }
121 
125  function manage($args, $request) {
126  $templateMgr = TemplateManager::getManager($request);
127  $dispatcher = $request->getDispatcher();
128  return $templateMgr->fetchAjax(
129  'customBlockGridUrlGridContainer',
130  $dispatcher->url(
131  $request, ROUTE_COMPONENT, null,
132  'plugins.generic.customBlockManager.controllers.grid.CustomBlockGridHandler', 'fetchGrid'
133  )
134  );
135  }
136 
146  function isSitePlugin() {
147  return !Application::get()->getRequest()->getContext();
148  }
149 }
Plugin\getCategory
getCategory()
Definition: Plugin.inc.php:322
CustomBlockManagerPlugin
Definition: CustomBlockManagerPlugin.inc.php:19
CustomBlockManagerPlugin\setupGridHandler
setupGridHandler($hookName, $params)
Definition: CustomBlockManagerPlugin.inc.php:85
CustomBlockManagerPlugin\getDisplayName
getDisplayName()
Definition: CustomBlockManagerPlugin.inc.php:23
CustomBlockManagerPlugin\isSitePlugin
isSitePlugin()
Definition: CustomBlockManagerPlugin.inc.php:146
Plugin\getEnabled
getEnabled()
Definition: Plugin.inc.php:868
Plugin\getSetting
getSetting($contextId, $name)
Definition: Plugin.inc.php:473
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
CustomBlockPlugin
Definition: CustomBlockPlugin.inc.php:19
LazyLoadPlugin\getName
getName()
Definition: LazyLoadPlugin.inc.php:40
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
CustomBlockManagerPlugin\getActions
getActions($request, $actionArgs)
Definition: CustomBlockManagerPlugin.inc.php:97
Plugin\getPluginPath
getPluginPath()
Definition: Plugin.inc.php:330
CustomBlockManagerPlugin\manage
manage($args, $request)
Definition: CustomBlockManagerPlugin.inc.php:125
Plugin\$request
$request
Definition: Plugin.inc.php:68
HookRegistry\register
static register($hookName, $callback, $hookSequence=HOOK_SEQUENCE_NORMAL)
Definition: HookRegistry.inc.php:70
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PluginRegistry\register
static register($category, $plugin, $path, $mainContextId=null)
Definition: PluginRegistry.inc.php:64
GenericPlugin
Abstract class for generic plugins.
Definition: GenericPlugin.inc.php:18
CustomBlockManagerPlugin\getDescription
getDescription()
Definition: CustomBlockManagerPlugin.inc.php:30