Open Monograph Press  3.3.0
NavigationMenuItemsForm.inc.php
1 <?php
2 
16 import('lib.pkp.controllers.grid.navigationMenus.form.PKPNavigationMenuItemsForm');
17 import('classes.core.Services');
18 
20 
24  public function fetch($request, $template = null, $display = false) {
25  $customTemplates = \Services::get('navigationMenu')->getMenuItemCustomEditTemplates();
26 
27  $request = \Application::get()->getRequest();
28  $context = $request->getContext();
29  $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
30 
31  $seriesDao = \DAORegistry::getDAO('SeriesDAO');
32  $series = $seriesDao->getByContextId($contextId);
33  $seriesTitlesArray = $series->toAssociativeArray();
34 
35  $seriesTitles = array();
36  foreach ($seriesTitlesArray as $series) {
37  $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
38  }
39 
40  $categoryDao = \DAORegistry::getDAO('CategoryDAO');
41  $categories = $categoryDao->getByParentId(null, $contextId);
42  $categoryTitlesArray = $categories->toAssociativeArray();
43 
44  $categoryTitles = array();
45  foreach ($categoryTitlesArray as $category) {
46  $categoryTitles[$category->getId()] = $category->getLocalizedTitle();
47  }
48 
49  $templateMgr = TemplateManager::getManager($request);
50  $templateMgr->assign('customTemplates', $customTemplates);
51  $templateMgr->assign('navigationMenuItemSeriesTitles', $seriesTitles);
52  $templateMgr->assign('navigationMenuItemCategoryTitles', $categoryTitles);
53 
54  return parent::fetch($request, $template, $display);
55  }
56 
60  public function initData() {
61  $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
62  $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
63 
64  if ($navigationMenuItem) {
65  parent::initData();
66  $ompInitData = array(
67  'selectedRelatedObjectId' => $navigationMenuItem->getPath(),
68  );
69 
70  $this->_data = array_merge($ompInitData, $this->_data);
71  } else {
72  parent::initData();
73  }
74  }
75 
79  public function readInputData() {
80  $this->readUserVars(array(
81  'relatedSeriesId',
82  'relatedCategoryId',
83  ));
84  parent::readInputData();
85  }
86 
90  public function execute(...$functionArgs) {
91  parent::execute(...$functionArgs);
92 
93  $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
94 
95  $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
96  if (!$navigationMenuItem) {
97  $navigationMenuItem = $navigationMenuItemDao->newDataObject();
98  }
99 
100  if ($this->getData('menuItemType') == NMI_TYPE_SERIES) {
101  $navigationMenuItem->setPath($this->getData('relatedSeriesId'));
102  } else if ($this->getData('menuItemType') == NMI_TYPE_CATEGORY) {
103  $navigationMenuItem->setPath($this->getData('relatedCategoryId'));
104  }
105 
106  // Update navigation menu item
107  $navigationMenuItemDao->updateObject($navigationMenuItem);
108 
109  return $navigationMenuItem->getId();
110  }
111 }
NavigationMenuItemsForm\execute
execute(... $functionArgs)
Definition: NavigationMenuItemsForm.inc.php:90
NavigationMenuItemsForm\fetch
fetch($request, $template=null, $display=false)
Definition: NavigationMenuItemsForm.inc.php:24
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
NavigationMenuItemsForm
Form for managers to create/edit navigationMenuItems.
Definition: NavigationMenuItemsForm.inc.php:19
NavigationMenuItemsForm\initData
initData()
Definition: NavigationMenuItemsForm.inc.php:60
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
NavigationMenuItemsForm\readInputData
readInputData()
Definition: NavigationMenuItemsForm.inc.php:79
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PKPNavigationMenuItemsForm
Form for managers to create/edit navigationMenuItems.
Definition: PKPNavigationMenuItemsForm.inc.php:19
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49