public function index($parameters) { $pageModel = new pageModel(); $view = new ui($this); $view->assign('pages', $allowedPages); $startlevel = isset($parameters['startlevel']) ? $parameters['startlevel'] : 1; $id = myauth::getCurrentpageid(); $page = $pageModel->getfromId($id); $page = $page[0]; $tree[] = $page; while ($page->getParentid() != 0) { $page = $pageModel->getfromId($page->getParentid()); $page = $page[0]; $tree[] = $page; $this->tree_id[$page->getId()] = $page->getId(); } $this->tree = array_reverse($tree); if ($startlevel != 1) { $startbelow = $this->tree[$startlevel - 2]->getId(); } else { $startbelow = 0; } $this->maxdepth = isset($parameters['maxdepth']) ? $parameters['maxdepth'] : -1; $depth = 1; $pages = $this->recursivegetpages($startbelow, $depth); $view->assign('menu', $pages); $this->response->assign($this->self, 'innerHTML', $view->fetch($parameters['viewprefix'] . 'menu_index.tpl')); }
protected function fillObject($data) { $object = parent::fillObject($data); $areamodel = new areaModel(); $areas = $areamodel->getfromId($object->getAreaid()); if (count($areas) == 1) { $object->setAreaname($areas[0]->getName()); } $pagemodel = new pageModel(); $pages = $pagemodel->getfromId($object->getPageid()); if (count($pages) == 1) { $object->setPagename($pages[0]->getTitle()); } $modulemodel = new moduleModel(); $modules = $modulemodel->getfromId($object->getModuleid()); if (count($modules) == 1) { $module = $modules[0]; $object->setModuletitle($module->getTitle()); $object->setModulename($module->getName()); $object->setModuleaction($module->getAction()); $args = $module->getArguments(); $contr = new mymoduleadminController(); $options = $contr->getOptions($module->getName(), $module->getAction()); foreach ($args as $key => $value) { if (isset($options[$key][$value])) { $value = $options[$key][$value]; } $arguments .= '<strong>' . $key . ': </strong> ' . $value . '<br />'; } $object->setModuleargs($arguments); } return $object; }
private function resolvePage($pageid, $auth = true) { require FRAMEWORK . DS . 'conf' . DS . 'dispatcher.php'; require FRAMEWORK . DS . 'conf' . DS . 'auth.php'; $currentuser = myauth::getCurrentuser(); $groups = $currentuser->getGroupid(); $groupfound = false; foreach ($groups as $groupname => $groupid) { if (isset($defaultPageids[$groupname])) { $groupfound = true; $defaultPageid = $defaultPageids[$groupname]; } } if (!$groupfound) { $defaultPageid = $defaultPageids['default']; } $pageModel = new pageModel(); try { $page = $pageModel->getfromId($pageid); if (count($page) == 1) { $page = $page[0]; } elseif ($pageid != $defaultPageid) { try { $thepage = $this->resolvePage($defaultPageid); $pageid = $page->getId(); } catch (Exception $e) { //error throw $e; } } else { throw $e; } } catch (Exception $e) { if ($pageid != $defaultPageid) { $pageid = $defaultPageid; // Try the default page try { $page = $this->resolvePage($pageid); $pageid = $page->getId(); } catch (Exception $e) { //error throw $e; } } else { throw $e; } } if ($auth && !myacl::isAllowed(myauth::getCurrentuser(), $page, 'view')) { if (myauth::getCurrentuser()->getId != $defaultUserid && $pageid != $defaultAnonPageid && $pageid != $loginPageid) { $page = $this->resolvePage($defaultAnonPageid); $pageid = $page->getId(); } else { $_SESSION['wantedpage'] = isset($_GET['pageid']) ? $_GET['pageid'] : $defaultPageid; $pageid = $loginPageid; try { $page = $this->resolvePage($pageid, false); } catch (Exception $e) { throw $e; } } } else { if ($page->getRedirectid() != '') { $page = $this->resolvePage($page->getRedirectid()); $pageid = $page->getId(); } } myauth::setCurrentpageid($page->getId()); return $page; }
public function managepages($parameters = array()) { $view = new ui($this); if (!isset($parameters['parentid'])) { $parentid = 0; } else { $parentid = $parameters['parentid']; } $pagemodel = new pageModel(); if ($parentid != 0) { $currentpage = $pagemodel->getfromId($parentid); if (count($currentpage) == 1) { $currentpage = $currentpage[0]; if (!$parameters['history']) { $this->response->addWaypoint('mypageadmin', 'managepages', 'pageadmin', $parameters); } } } $grid = new mygrid('pagelist_' . $parentid); $grid->setModel($pagemodel); $grid->setDefaultconditions(array('parentid' => array('mode' => '=', 'value' => $parentid))); $grid->setDefaultorder(array('fields' => array('order'), 'type' => 'ASC')); $grid->setOrderfield('order'); $grid->registerRequest('title', 'mypageadmin', 'managepages', array('parentid' => '{id}')); if ($currentpage instanceof pageObject) { $add = myacl::isAllowed(myauth::getCurrentuser(), $currentpage, 'addpage'); } else { $add = myacl::isAllowed(myauth::getCurrentuser(), new securitytarget('pagemanagement'), 'addrootpage'); } if ($add) { $grid->registerAddrequest('mypageadmin', 'addpage', array('title' => 'Pagina toevoegen', 'parentid' => $parentid)); } $view->assign('grid', $grid); $pageid = $currentpage instanceof pageObject ? $currentpage->getId() : -1; $areamodel = new areaModel(); $areas = $areamodel->get(); $modules = array(); $idcond = array('pageid' => array('mode' => '=', 'value' => $pageid)); foreach ($areas as $area) { $areacond = array('areaid' => array('mode' => '=', 'value' => $area->getId())); $grid = new mygrid('modules_page_' . $pageid . '_area_' . $area->getId()); $grid->setModel(new processedmodulepageModel()); $grid->setDefaultconditions(array('AND' => array($idcond, $areacond))); $grid->setDefaultorder(array('fields' => array('order'), 'type' => 'ASC')); $grid->setOrderfield('order'); $grid->registerAddrequest('mypageadmin', 'addmodulepagelink', array('title' => 'Module aan pagina toevoegen', 'areaid' => $area->getId(), 'pageid' => $pageid)); $modules[$area->getName()] = $grid; } $view->assign('modules', $modules); if ($currentpage instanceof pageObject) { $aclcontroller = new myaclController(); $acl = $aclcontroller->listacl(array('targetoutput' => '_return_', 'objecttype' => 'pageObject', 'objectid' => $currentpage->getId())); $view->assign('acl', $acl); $titleform = new form($parameters); $titleform->addField(new textField('title', 'Titel', $currentpage->getTitle(), array('required'))); $titleform->addField(new hiddenField('parentid', $currentpage->getId())); if ($titleform->validate()) { $flash = new popupController(); if ($titleform->getFieldvalue('title') != $currentpage->getTitle()) { $currentpage->setTitle($titleform->getFieldvalue('title')); try { $pagemodel->save($currentpage); } catch (Exception $e) { $flash->createflash(array('name' => 'err', 'type' => 'error', 'content' => 'De gegevens zijn niet goed bewaard! Raadpleeg de informaticadienst.')); return false; } $flash->createflash(array('name' => 'success', 'type' => 'success', 'content' => 'De gegevens zijn goed bewaard.')); } else { $flash->createflash(array('name' => 'warning', 'type' => 'warning', 'content' => 'De nieuwe titel is gelijk aan de vorige titel.')); } $view->assign('titleform', $titleform); } elseif (!$titleform->isSent()) { $view->assign('titleform', $titleform); } else { return false; } } $theparentid = $parentid; $path = array(); while ($theparentid != 0) { $parent = $pagemodel->getfromId($theparentid); if (count($parent) == 1) { $parent = $parent[0]; $tmp = array(); $tmp['page'] = $parent; $tmp['request'] = new ajaxrequest('mypageadmin', 'managepages', array('parentid' => $theparentid)); $path[] = $tmp; $theparentid = $parent->getParentid(); } else { $theparentid = 0; } } $rootpage = new pageObject(); $rootpage->setTitle('Root'); $root['page'] = $rootpage; $root['request'] = new ajaxrequest('mypageadmin', 'managepages', array('parentid' => 0)); $path[] = $root; $view->assign('path', array_reverse($path)); $view->assign('currentpage', $currentpage); $this->response->assign($this->self, 'innerHTML', $view->fetch('mypageadmin_managepages.tpl')); }