Open Journal Systems  3.3.0
StaticPageGridHandler.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.GridHandler');
17 import('plugins.generic.staticPages.controllers.grid.StaticPageGridRow');
18 import('plugins.generic.staticPages.controllers.grid.StaticPageGridCellProvider');
19 
22  static $plugin;
23 
28  static function setPlugin($plugin) {
29  self::$plugin = $plugin;
30  }
31 
35  function __construct() {
36  parent::__construct();
37  $this->addRoleAssignment(
38  array(ROLE_ID_MANAGER),
39  array('index', 'fetchGrid', 'fetchRow', 'addStaticPage', 'editStaticPage', 'updateStaticPage', 'delete')
40  );
41  }
42 
43 
44  //
45  // Overridden template methods
46  //
50  function authorize($request, &$args, $roleAssignments) {
51  import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
52  $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
53  return parent::authorize($request, $args, $roleAssignments);
54  }
55 
59  function initialize($request, $args = null) {
60  parent::initialize($request, $args);
61  $context = $request->getContext();
62 
63  // Set the grid details.
64  $this->setTitle('plugins.generic.staticPages.staticPages');
65  $this->setEmptyRowText('plugins.generic.staticPages.noneCreated');
66 
67  // Get the pages and add the data to the grid
68  $staticPagesDao = DAORegistry::getDAO('StaticPagesDAO');
69  $this->setGridDataElements($staticPagesDao->getByContextId($context->getId()));
70 
71  // Add grid-level actions
72  $router = $request->getRouter();
73  import('lib.pkp.classes.linkAction.request.AjaxModal');
74  $this->addAction(
75  new LinkAction(
76  'addStaticPage',
77  new AjaxModal(
78  $router->url($request, null, null, 'addStaticPage'),
79  __('plugins.generic.staticPages.addStaticPage'),
80  'modal_add_item'
81  ),
82  __('plugins.generic.staticPages.addStaticPage'),
83  'add_item'
84  )
85  );
86 
87  // Columns
88  $cellProvider = new StaticPageGridCellProvider();
89  $this->addColumn(new GridColumn(
90  'title',
91  'plugins.generic.staticPages.pageTitle',
92  null,
93  'controllers/grid/gridCell.tpl', // Default null not supported in OMP 1.1
94  $cellProvider
95  ));
96  $this->addColumn(new GridColumn(
97  'path',
98  'plugins.generic.staticPages.path',
99  null,
100  'controllers/grid/gridCell.tpl', // Default null not supported in OMP 1.1
101  $cellProvider
102  ));
103  }
104 
105  //
106  // Overridden methods from GridHandler
107  //
111  function getRowInstance() {
112  return new StaticPageGridRow();
113  }
114 
115  //
116  // Public Grid Actions
117  //
123  function index($args, $request) {
124  $context = $request->getContext();
125  import('lib.pkp.classes.form.Form');
126  $form = new Form(self::$plugin->getTemplateResource('staticPages.tpl'));
127  return new JSONMessage(true, $form->fetch($request));
128  }
129 
135  function addStaticPage($args, $request) {
136  // Calling editStaticPage with an empty ID will add
137  // a new static page.
138  return $this->editStaticPage($args, $request);
139  }
140 
147  function editStaticPage($args, $request) {
148  $staticPageId = $request->getUserVar('staticPageId');
149  $context = $request->getContext();
150  $this->setupTemplate($request);
151 
152  // Create and present the edit form
153  import('plugins.generic.staticPages.controllers.grid.form.StaticPageForm');
154  $staticPagesPlugin = self::$plugin;
155  $staticPageForm = new StaticPageForm(self::$plugin, $context->getId(), $staticPageId);
156  $staticPageForm->initData();
157  return new JSONMessage(true, $staticPageForm->fetch($request));
158  }
159 
166  function updateStaticPage($args, $request) {
167  $staticPageId = $request->getUserVar('staticPageId');
168  $context = $request->getContext();
169  $this->setupTemplate($request);
170 
171  // Create and populate the form
172  import('plugins.generic.staticPages.controllers.grid.form.StaticPageForm');
173  $staticPagesPlugin = self::$plugin;
174  $staticPageForm = new StaticPageForm(self::$plugin, $context->getId(), $staticPageId);
175  $staticPageForm->readInputData();
176 
177  // Check the results
178  if ($staticPageForm->validate()) {
179  // Save the results
180  $staticPageForm->execute();
181  return DAO::getDataChangedEvent();
182  } else {
183  // Present any errors
184  return new JSONMessage(true, $staticPageForm->fetch($request));
185  }
186  }
187 
194  function delete($args, $request) {
195  $staticPageId = $request->getUserVar('staticPageId');
196  $context = $request->getContext();
197 
198  // Delete the static page
199  $staticPagesDao = DAORegistry::getDAO('StaticPagesDAO');
200  $staticPage = $staticPagesDao->getById($staticPageId, $context->getId());
201  $staticPagesDao->deleteObject($staticPage);
202 
203  return DAO::getDataChangedEvent();
204  }
205 }
206 
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
GridHandler\setEmptyRowText
setEmptyRowText($emptyRowText)
Definition: GridHandler.inc.php:231
GridColumn
The GridColumn class represents a column within a grid. It is used to format the data presented in a ...
Definition: GridColumn.inc.php:27
StaticPageGridHandler\addStaticPage
addStaticPage($args, $request)
Definition: StaticPageGridHandler.inc.php:138
ContextAccessPolicy
Class to control access to PKP applications' setup components.
Definition: ContextAccessPolicy.inc.php:17
StaticPageGridRow
Handle custom blocks grid row requests.
Definition: StaticPageGridRow.inc.php:18
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
StaticPageGridHandler\index
index($args, $request)
Definition: StaticPageGridHandler.inc.php:126
StaticPageGridHandler
Handle static pages grid requests.
Definition: StaticPageGridHandler.inc.php:20
StaticPageGridHandler\getRowInstance
getRowInstance()
Definition: StaticPageGridHandler.inc.php:114
StaticPageGridHandler\initialize
initialize($request, $args=null)
Definition: StaticPageGridHandler.inc.php:62
StaticPageGridCellProvider
Class for a cell provider to display information about static pages.
Definition: StaticPageGridCellProvider.inc.php:19
StaticPageGridHandler\__construct
__construct()
Definition: StaticPageGridHandler.inc.php:38
GridHandler\addAction
addAction($action, $position=GRID_ACTION_POSITION_ABOVE)
Definition: GridHandler.inc.php:266
GridHandler\addColumn
addColumn($column)
Definition: GridHandler.inc.php:335
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
GridHandler\setGridDataElements
setGridDataElements($data)
Definition: GridHandler.inc.php:379
StaticPageGridHandler\setPlugin
static setPlugin($plugin)
Definition: StaticPageGridHandler.inc.php:31
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
StaticPageGridHandler\$plugin
static $plugin
Definition: StaticPageGridHandler.inc.php:25
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
StaticPageForm
Definition: StaticPageForm.inc.php:19
StaticPageGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: StaticPageGridHandler.inc.php:53
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
GridHandler
This class defines basic operations for handling HTML grids. Grids are used to implement a standardiz...
Definition: GridHandler.inc.php:58
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
StaticPageGridHandler\updateStaticPage
updateStaticPage($args, $request)
Definition: StaticPageGridHandler.inc.php:169
StaticPageGridHandler\editStaticPage
editStaticPage($args, $request)
Definition: StaticPageGridHandler.inc.php:150