16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
17 import(
'plugins.generic.customBlockManager.controllers.grid.CustomBlockGridRow');
27 parent::__construct();
29 array(ROLE_ID_MANAGER, ROLE_ID_SITE_ADMIN),
30 array(
'fetchGrid',
'fetchRow',
'addCustomBlock',
'editCustomBlock',
'updateCustomBlock',
'deleteCustomBlock')
42 function authorize($request, &$args, $roleAssignments) {
43 if ($request->getContext()) {
44 import(
'lib.pkp.classes.security.authorization.ContextAccessPolicy');
47 import(
'lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
50 return parent::authorize($request, $args, $roleAssignments);
57 parent::initialize($request, $args);
58 $context = $request->getContext();
59 $contextId = $context ? $context->getId() : 0;
62 $this->
setTitle(
'plugins.generic.customBlockManager.customBlocks');
64 $this->
setEmptyRowText(
'plugins.generic.customBlockManager.noneCreated');
68 $blocks = $customBlockManagerPlugin->getSetting($contextId,
'blocks');
70 if (is_array($blocks))
foreach ($blocks as $block) {
71 $gridData[$block] = array(
78 $router = $request->getRouter();
79 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
84 $router->url($request,
null,
null,
'addCustomBlock'),
85 __(
'plugins.generic.customBlockManager.addBlock'),
88 __(
'plugins.generic.customBlockManager.addBlock'),
97 'plugins.generic.customBlockManager.blockName',
99 'controllers/grid/gridCell.tpl'
135 $blockName = $request->getUserVar(
'blockName');
136 $context = $request->getContext();
137 $contextId = $context ? $context->getId() : 0;
140 $customBlockPlugin =
null;
144 import(
'plugins.generic.customBlockManager.CustomBlockPlugin');
145 $customBlockPlugin =
new CustomBlockPlugin($blockName, CUSTOMBLOCKMANAGER_PLUGIN_NAME);
149 import(
'plugins.generic.customBlockManager.controllers.grid.form.CustomBlockForm');
151 $template = $customBlockManagerPlugin->getTemplateResource(
'editCustomBlockForm.tpl');
152 $customBlockForm =
new CustomBlockForm($template, $contextId, $customBlockPlugin);
153 $customBlockForm->initData();
154 return new JSONMessage(
true, $customBlockForm->fetch($request));
164 $pluginName = $request->getUserVar(
'existingBlockName');
165 $context = $request->getContext();
166 $contextId = $context ? $context->getId() : 0;
169 $customBlockPlugin =
null;
173 import(
'plugins.generic.customBlockManager.CustomBlockPlugin');
174 $customBlockPlugin =
new CustomBlockPlugin($pluginName, CUSTOMBLOCKMANAGER_PLUGIN_NAME);
178 import(
'plugins.generic.customBlockManager.controllers.grid.form.CustomBlockForm');
180 $template = $customBlockManagerPlugin->getTemplateResource(
'editCustomBlockForm.tpl');
181 $customBlockForm =
new CustomBlockForm($template, $contextId, $customBlockPlugin);
182 $customBlockForm->readInputData();
185 if ($customBlockForm->validate()) {
187 $customBlockForm->execute();
191 return new JSONMessage(
true, $customBlockForm->fetch($request));
202 $blockName = $request->getUserVar(
'blockName');
203 $context = $request->getContext();
204 $contextId = $context ? $context->getId() : 0;
208 $pluginSettingsDao->deleteSetting($contextId, $blockName,
'enabled');
209 $pluginSettingsDao->deleteSetting($contextId, $blockName,
'context');
210 $pluginSettingsDao->deleteSetting($contextId, $blockName,
'seq');
211 $pluginSettingsDao->deleteSetting($contextId, $blockName,
'blockContent');
215 $blocks = $customBlockManagerPlugin->getSetting($contextId,
'blocks');
216 $newBlocks = array_diff($blocks, array($blockName));
218 $customBlockManagerPlugin->updateSetting($contextId,
'blocks', $newBlocks);