Open Monograph Press  3.3.0
BrowseBlockPlugin.inc.php
1 <?php
2 
16 import('lib.pkp.classes.plugins.BlockPlugin');
17 
24  return $this->getPluginPath() . '/settings.xml';
25  }
26 
31  function getDisplayName() {
32  return __('plugins.block.browse.displayName');
33  }
34 
38  function getDescription() {
39  return __('plugins.block.browse.description');
40  }
41 
45  function getActions($request, $actionArgs) {
46  $router = $request->getRouter();
47  import('lib.pkp.classes.linkAction.request.AjaxModal');
48  return array_merge(
49  $this->getEnabled()?array(
50  new LinkAction(
51  'settings',
52  new AjaxModal(
53  $router->url($request, null, null, 'manage', null, array_merge($actionArgs, array('verb' => 'settings'))),
54  $this->getDisplayName()
55  ),
56  __('manager.plugins.settings'),
57  null
58  ),
59  ):array(),
60  parent::getActions($request, $actionArgs)
61  );
62  }
63 
67  function manage($args, $request) {
68  $press = $request->getPress();
69 
70  switch ($request->getUserVar('verb')) {
71  case 'settings':
72  $this->import('BrowseBlockSettingsForm');
73  $form = new BrowseBlockSettingsForm($this, $press->getId());
74  if ($request->getUserVar('save')) {
75  $form->readInputData();
76  if ($form->validate()) {
77  $form->execute();
78  return new JSONMessage(true);
79  }
80  } else {
81  $form->initData();
82  }
83  return new JSONMessage(true, $form->fetch($request));
84  }
85  return parent::manage($args, $request);
86  }
87 
93  function getContents($templateMgr, $request = null) {
94  $press = $request->getPress();
95 
96  $browseNewReleases = $this->getSetting($press->getId(), 'browseNewReleases');
97  $templateMgr->assign('browseNewReleases', $browseNewReleases);
98 
99  $seriesDisplay = $this->getSetting($press->getId(), 'browseSeries');
100  if ($seriesDisplay) {
101  // Provide a list of series to browse
102  $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
103  $series = $seriesDao->getByPressId($press->getId());
104  $templateMgr->assign('browseSeriesFactory', $series);
105  }
106 
107  $categoriesDisplay = $this->getSetting($press->getId(), 'browseCategories');
108  if ($categoriesDisplay) {
109  // Provide a list of categories to browse
110  $categoryDao = DAORegistry::getDAO('CategoryDAO'); /* @var $categoryDao CategoryDAO */
111  $categories = $categoryDao->getByContextId($press->getId());
112  $templateMgr->assign('browseCategoryFactory', $categories);
113  }
114 
115  // If we're currently viewing a series or catalog, detect it
116  // so that we can highlight the current selection in the
117  // dropdown.
118  $router = $request->getRouter();
119  switch ($router->getRequestedOp($request)) {
120  case 'category':
121  $args = $router->getRequestedArgs($request);
122  $templateMgr->assign('browseBlockSelectedCategory', reset($args));
123  break;
124  case 'series':
125  $args = $router->getRequestedArgs($request);
126  $templateMgr->assign('browseBlockSelectedSeries', reset($args));
127  break;
128  }
129 
130  return parent::getContents($templateMgr);
131  }
132 }
133 
134 
BrowseBlockPlugin\getContextSpecificPluginSettingsFile
getContextSpecificPluginSettingsFile()
Definition: BrowseBlockPlugin.inc.php:23
BrowseBlockPlugin\getDescription
getDescription()
Definition: BrowseBlockPlugin.inc.php:38
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
BrowseBlockPlugin\manage
manage($args, $request)
Definition: BrowseBlockPlugin.inc.php:67
BrowseBlockPlugin\getDisplayName
getDisplayName()
Definition: BrowseBlockPlugin.inc.php:31
Plugin\getEnabled
getEnabled()
Definition: Plugin.inc.php:868
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
Plugin\getSetting
getSetting($contextId, $name)
Definition: Plugin.inc.php:473
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
BrowseBlockPlugin\getContents
getContents($templateMgr, $request=null)
Definition: BrowseBlockPlugin.inc.php:93
BrowseBlockPlugin\getActions
getActions($request, $actionArgs)
Definition: BrowseBlockPlugin.inc.php:45
BlockPlugin
Abstract class for block plugins.
Definition: BlockPlugin.inc.php:18
BrowseBlockSettingsForm
Form for press managers to setup Browse block plugin.
Definition: BrowseBlockSettingsForm.inc.php:19
Plugin\getPluginPath
getPluginPath()
Definition: Plugin.inc.php:330
Plugin\$request
$request
Definition: Plugin.inc.php:68
BrowseBlockPlugin
Class for browse block plugin.
Definition: BrowseBlockPlugin.inc.php:18