コード例 #1
0
 public function addsectionlink($parameters = array())
 {
     if (isset($parameters['sectionid'])) {
         $newlink = new myarticlesectionlinkObject();
         $newlink->setArticleid($parameters['articleid']);
         $newlink->setSectionid($parameters['sectionid']);
         $model = new myarticlesectionlinkModel();
         $newlink->setOrder($model->getmax('order', array('sectionid' => array('mode' => '=', 'value' => $parameters['sectionid']))) + 1);
         $flash = new popupController();
         $testcond = array('AND' => array(array('sectionid' => array('mode' => '=', 'value' => $parameters['sectionid'])), array('articleid' => array('mode' => '=', 'value' => $parameters['articleid']))));
         if (count($model->get($testcond)) > 0) {
             $flash->createflash(array('name' => 'warning', 'type' => 'warning', 'content' => 'Deze sectie was reeds gelinked'));
             return false;
         }
         try {
             $model->save($newlink);
         } catch (Exception $e) {
             $flash->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De aanpassing werd niet doorgevoerd! Contacteer de informaticadienst.'));
             return false;
         }
         $flash->createflash(array('name' => 'error', 'type' => 'success', 'content' => 'De aanpassing werd goed doorgevoerd.'));
         $gridcontr = new mygridController();
         $gridcontr->reloadgrid($parameters['oldgrid']);
         return true;
     } else {
         $view = new ui($this);
         $grid = new mygrid('sections');
         $grid->setModel(new myarticlesectionModel());
         $grid->registerRequest('name', 'myarticle', 'addsectionlink', array('sectionid' => '{id}', 'articleid' => $parameters['articleid'], 'oldgrid' => $parameters['-gridid-'], 'myacl' => array('target' => '{this}', 'right' => 'manage_articlelinks', 'default' => false)));
         $view->assign('grid', $grid);
         return $view->fetch('myarticle_addsectionlink.tpl');
     }
 }
コード例 #2
0
 public function setObjectorder($parameters = array())
 {
     $id = $parameters['id'];
     $gridid = $parameters['gridid'];
     $popup = new popupController();
     $grid = new mygrid($gridid);
     $model = $grid->getModel();
     $linkmodel = $grid->getModel();
     $object = $model->getfromId($id);
     if (count($object) == 1) {
         $object = $object[0];
         $view = new ui($this);
         $form = new form($parameters);
         $form->addField(new hiddenField('gridid', $gridid));
         $form->addField(new hiddenField('id', $id));
         $form->addField(new textField('order', 'Order', $object->_get($grid->getOrderfield()), array('required', 'numeric', 'range:1<->' . $model->getMax($grid->getOrderfield(), $grid->getConditions()))));
         if ($form->validate()) {
             $curlink = $object;
             if ($object->_get($grid->getOrderfield()) > $form->getFieldvalue('order')) {
                 $cond = array($grid->getOrderfield() => array('mode' => 'BETWEEN', 'value' => $form->getFieldvalue('order'), 'topvalue' => $object->_get($grid->getOrderfield())));
                 $links = $linkmodel->get(array('AND' => array($cond, $grid->getConditions())));
                 try {
                     foreach ($links as $link) {
                         $link->setOrder($link->getOrder() + 1);
                         $linkmodel->save($link);
                     }
                     $curlink->setOrder($form->getFieldvalue('order'));
                     $linkmodel->save($curlink);
                 } catch (Exception $e) {
                     $popup->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De wijziging is niet doorgevoerd! Raadpleeg de informaticadienst.'));
                     return false;
                 }
             } elseif ($object->_get($grid->getOrderfield()) < $form->getFieldvalue('order')) {
                 $cond = array($grid->getOrderfield() => array('mode' => 'BETWEEN', 'value' => $object->_get($grid->getOrderfield()), 'topvalue' => $form->getFieldvalue('order')));
                 $links = $linkmodel->get(array('AND' => array($cond, $grid->getConditions())));
                 try {
                     foreach ($links as $link) {
                         $link->setOrder($link->getOrder() - 1);
                         $linkmodel->save($link);
                     }
                     $curlink->setOrder($form->getFieldvalue('order'));
                     $linkmodel->save($curlink);
                 } catch (Exception $e) {
                     $popup->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De wijziging is niet doorgevoerd! Raadpleeg de informaticadienst.'));
                     return false;
                 }
             } else {
                 $popup->createflash(array('name' => 'warning', 'type' => 'warning', 'content' => 'De nieuwe plaats was dezelfde als de oude plaats. Er is dus niets gewijzigd.'));
                 $this->response->assign('gridextra_' . $gridid, 'innerHTML', '');
                 return false;
             }
             $popup->createflash(array('name' => 'success', 'type' => 'success', 'content' => 'De wijziging is goed doorgevoerd.'));
             $gridcontr = new mygridController();
             $gridcontr->reloadgrid($gridid);
             $this->response->assign('gridextra_' . $gridid, 'innerHTML', '');
         } elseif (!$form->isSent()) {
             $view->assign('form', $form);
             $view->assign('closeextra', new ajaxrequest('mygrid', 'closeextra', array('id' => 'gridextra_' . $gridid)));
             $this->response->assign('gridextra_' . $gridid, 'innerHTML', $view->fetch($parameters['viewprefix'] . 'mygrid_setobjectorder.tpl'));
         }
     }
 }
コード例 #3
0
 public function addmodulepagelink($parameters = array())
 {
     if (!isset($parameters['moduleid'])) {
         $view = new ui($this);
         $grid = new mygrid('addmodules');
         $grid->setModel(new processedmoduleModel());
         $grid->registerRequest('title', 'mypageadmin', 'addmodulepagelink', array('title' => $parameters['title'], 'areaid' => $parameters['areaid'], 'pageid' => $parameters['pageid'], 'moduleid' => '{id}', 'oldgrid' => $parameters['-gridid-']));
         $view->assign('grid', $grid);
         return $view->fetch('mypageadmin_addmodulepagelink.tpl');
     } else {
         $linkmodel = new modulepageModel();
         $link = new modulepageObject();
         $link->setPageid($parameters['pageid']);
         $link->setAreaid($parameters['areaid']);
         $link->setModuleid($parameters['moduleid']);
         $link->setOrder($linkmodel->getmax('order', array('AND' => array(array('areaid' => array('mode' => '=', 'value' => $parameters['areaid'])), array('pageid' => array('mode' => '=', 'value' => $parameters['pageid']))))) + 1);
         $flash = new popupController();
         try {
             $linkmodel->save($link);
         } catch (Exception $e) {
             $flash->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De aanpassing werd niet doorgevoerd! Contacteer de informaticadienst.'));
             return false;
         }
         $flash->createflash(array('name' => 'error', 'type' => 'success', 'content' => 'De aanpassing werd goed doorgevoerd.'));
         $gridcontr = new mygridController();
         $gridcontr->reloadgrid($parameters['oldgrid']);
     }
 }
コード例 #4
0
 public function editpromotext($parameters = array())
 {
     $view = new ui($this);
     $articlemodel = new myarticleModel();
     $versionmodel = new myarticleversionModel();
     $article = $articlemodel->getfromId($parameters['id']);
     if (count($article) == 1) {
         $article = $article[0];
         $view->assign('article', $article);
         $aliasform = new mygridform($parameters, $parameters['-gridid-'], 'edit');
         $aliasform->addField(new textField('alias', 'Werktitel', $article->getAlias(), array('required')));
         $aliasform->addField(new hiddenField('id', $parameters['id']));
         $aliasform->addField(new hiddenField('title', $parameters['title']));
         if ($aliasform->validate()) {
             $article->setAlias($aliasform->getFieldvalue('alias'));
             $flash = new popupController();
             try {
                 $articlemodel->save($article);
             } catch (Exception $e) {
                 $flash->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De aanpassing werd niet doorgevoerd! Contacteer de informaticadienst.'));
                 return false;
             }
             $flash->createflash(array('name' => 'error', 'type' => 'success', 'content' => 'De aanpassing werd goed doorgevoerd.'));
             $gridcontroller = new mygridController();
             unset($parameters['hidden_form_id']);
             $parameters['alias'] = '';
             $gridcontroller->editrequest($parameters);
             return true;
         } elseif (!$aliasform->isSent()) {
             $view->assign('aliasform', $aliasform);
         } else {
             return false;
         }
         $versionsids = $article->getVersion();
         $grid = new mygrid('articleversions-' . $article->getId());
         $grid->setModel(new myarticleversionModel());
         $idcond = array('articleid' => array('mode' => '=', 'value' => $parameters['id']));
         $grid->setDefaultconditions($idcond);
         $grid->setDefaultorder(array('fields' => array('state', 'creationdate'), 'type' => 'DESC'));
         $grid->registerEditrequest('mycafetaria', 'editpromotextversion', array('id' => '{id}', 'articleid' => $parameters['id'], 'title' => 'Versie aanpassen'));
         $view->assign('grid', $grid);
         return $view->fetch('myarticle_editarticle.tpl');
     } else {
         return false;
     }
 }