16 import(
'lib.pkp.controllers.grid.navigationMenus.form.PKPNavigationMenuItemsForm');
17 import(
'classes.core.Services');
24 public function fetch($request, $template =
null, $display =
false) {
25 $customTemplates =
\Services::get(
'navigationMenu')->getMenuItemCustomEditTemplates();
28 $context = $request->getContext();
29 $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
32 $series = $seriesDao->getByContextId($contextId);
33 $seriesTitlesArray = $series->toAssociativeArray();
35 $seriesTitles = array();
36 foreach ($seriesTitlesArray as $series) {
37 $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
41 $categories = $categoryDao->getByParentId(
null, $contextId);
42 $categoryTitlesArray = $categories->toAssociativeArray();
44 $categoryTitles = array();
45 foreach ($categoryTitlesArray as $category) {
46 $categoryTitles[$category->getId()] = $category->getLocalizedTitle();
50 $templateMgr->assign(
'customTemplates', $customTemplates);
51 $templateMgr->assign(
'navigationMenuItemSeriesTitles', $seriesTitles);
52 $templateMgr->assign(
'navigationMenuItemCategoryTitles', $categoryTitles);
54 return parent::fetch($request, $template, $display);
62 $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
64 if ($navigationMenuItem) {
67 'selectedRelatedObjectId' => $navigationMenuItem->getPath(),
70 $this->_data = array_merge($ompInitData, $this->_data);
84 parent::readInputData();
90 public function execute(...$functionArgs) {
91 parent::execute(...$functionArgs);
95 $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
96 if (!$navigationMenuItem) {
97 $navigationMenuItem = $navigationMenuItemDao->newDataObject();
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'));
107 $navigationMenuItemDao->updateObject($navigationMenuItem);
109 return $navigationMenuItem->getId();