Exemplo n.º 1
0
 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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'));
 }