private function recursivegetpages($parent, $depth) { $output = array(); $pageModel = new pageModel(); $target = new securitytarget(); $target->setId('menu'); $pages = $pageModel->get(array('parentid' => array('mode' => '=', 'value' => $parent)), array('fields' => array('order'), 'type' => 'ASC')); foreach ($pages as $page) { $tmp = array(); if (myacl::isAllowed(myauth::getCurrentuser(), $page, 'view') && myacl::isAllowed($page, $target, 'show', true)) { $tmp['page'] = $page; if ($depth < $this->maxdepth || $this->maxdepth == -1) { $tmp['subpages'] = $this->recursivegetpages($page->getId(), $depth + 1); } if (count($tmp['subpages']) == 0) { unset($tmp['subpages']); $tmp['status_subpages'] = 'nosubpages'; } else { $tmp['status_subpages'] = "subpages"; } if ($page->getId() == myauth::getCurrentpageid()) { $tmp['status'] = 'active'; } elseif (isset($this->tree_id[$page->getId()])) { $tmp['status'] = 'subpage_active'; } else { $tmp['status'] = 'inactive'; } $output[] = $tmp; } } return $output; }
public function deletemodule($parameters = array()) { $view = new ui($this); $flash = new popupController(); $model = new processedmoduleModel(); $modules = $model->getfromId($parameters['moduleid']); if (count($modules) == 1) { $module = $modules[0]; $linkmodel = new modulepageModel(); $links = $linkmodel->getfromModuleid($parameters['moduleid']); $pages = array(); if (count($links) > 0) { $all = false; foreach ($links as $link) { $pageids[] = $link->getPageid(); if ($link->getPageid() == -1) { $all = true; } } $pagemodel = new pageModel(); $pages = $pagemodel->get(array('id' => array('mode' => 'IN', 'value' => $pageids))); if ($all) { $newpage = new pageObject(); $newpage->setId(-1); $newpage->setTitle('Alle pagina\'s'); array_unshift($pages, $newpage); } } if ($parameters['sure'] == 'sure') { try { $linkmodel->deletebyModuleid($parameters['moduleid']); $model->delete($module); } catch (Exception $e) { $flash->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De module werd niet goed verwijderd!')); return false; } $flash->createflash(array('name' => 'success', 'type' => 'success', 'content' => 'De module werd goed verwijderd.')); $this->response->assign('gridextra_' . $parameters['-gridid-'], 'innerHTML', ''); return true; } else { $view->assign('module', $module); $view->assign('pages', $pages); return $view->fetch('mymoduleadmin_deletemodule.tpl'); } } else { $flash->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De module werd niet gevonden!')); return false; } }