public function reportRevisionsAction() { $system = new Zend_Session_Namespace('System'); $proxy = new SxCms_Page_Proxy(); $pages = $proxy->getAll($system->lng); $result = array(); foreach ($pages as $id => $page) { $revisions = $page->getRevisions(); $lastRev = array_shift($revisions); if ($lastRev && !$lastRev->isApproved()) { if ($this->_getParam('type') && $page->getType() != $this->_getParam('type')) { continue; } $result[$id] = $page; } } $this->view->siteTree = $result; $this->render('index'); }
public function getAll($lng = 'nl') { $proxy = new SxCms_Page_Proxy(); return $proxy->getAll($lng); }
public function editAction() { SxCms_Acl::requireAcl('pageform', 'pageform.edit'); $system = new Zend_Session_Namespace('System'); if ((int) $this->_getParam('id', 0) != 0) { $pageproxy = new SxCms_Page_Proxy(); $pages = $pageproxy->getAll(); $pagesWithFormProxy = new SxCms_Page_Pageform_Proxy(); $pageWithForm = array(); foreach ($pagesWithFormProxy->getAll(false) as $pwf) { $pageWithForm[] = $pwf->getPageid(); } $this->view->pageWithForm = $pageWithForm; $this->view->pages = $pages; $pageformProxy = new SxModule_Pageform_Proxy(); $item = $pageformProxy->getById((int) $this->_getParam('id'), $system->lng); $tsl = $item->getTsl(); $this->view->tsl = $tsl; $cache = Zend_Registry::get('cache'); $cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array('SxModule_Pageform_Id' . $item->getId())); if ($this->getRequest()->isPost()) { $oldPageform = $item; $fields = $this->preprocessFields(); $item = $this->mapFieldsToObjects($fields, (int) $this->_getParam('id')); //var_dump($item->getField());die(); # Opslaan nieuwe en oude data $validator = new SxModule_Pageform_Validator(); if ($validator->validate($item)) { $item->save(array('pf_name', 'pf_content', 'pf_mailoption', 'pf_mailto', 'pf_captcha')); $pageformtsl = $item->getTsl($system->lng); $pageformtsl->save(array('pageform_id', 'language', 'name', 'content', 'active', 'confirm', 'confirmto', 'confirmsubject', 'confirmcontent')); #verwijderen paginas van de form $pages = new SxCms_Page_Pageform(); $pages->deleteByPageformId($item->getId()); # opslaan nieuwe pagina's foreach ($item->getPages() as $page) { $pages->setPageid($page)->setPageformid($item->getId())->save(); } $f = 0; foreach ($item->getField() as $field) { $f++; $field->setPageformId($item->getId())->setPlace($f)->save(array('pff_pageform_id', 'pff_key', 'pff_field_type', 'pff_validation', 'pff_place')); $field->getTsl()->setFieldId($field->getId())->setPlace($f)->setLanguage($system->lng)->save(array('pfft_field_id', 'pfft_language', 'pfft_name', 'pfft_place')); $fm = 0; foreach ($field->getMeta() as $meta) { $fm++; $meta->setFieldId($field->getId())->setPlace($fm)->save(array('pffm_field_id', 'pffm_place')); $meta->getTsl()->setMetaId($meta->getId())->setLanguage($system->lng)->save(array('pffm_tsl_meta_id', 'pffm_tsl_language', 'pffm_tsl_name', 'pffm_tsl_value')); } } # VERWIJDER VERWIJDERDE VELDEN $removeFields = array(); $removeMeta = array(); $oldFields = $oldPageform->getField(); $newFields = $item->getField(); $i = 0; $j = 0; foreach ($oldFields as $oldField) { $i++; $removeFields[$i] = $oldField; foreach ($newFields as $newField) { if ($oldField->getId() == $newField->getId()) { unset($removeFields[$i]); foreach ($oldField->getMeta() as $oldMeta) { $j++; $removeMeta[$j] = $oldMeta; foreach ($newField->getMeta() as $newMeta) { if ($oldMeta->getId() == $newMeta->getId()) { unset($removeMeta[$j]); } } } } } } var_dump('--- REMOVE FIELDS ---'); var_dump($removeFields); var_dump('--- REMOVE META ---'); var_dump($removeMeta); foreach ($removeFields as $field) { $field->delete(); $field->getTsl()->delete(); foreach ($field->getMeta() as $meta) { $meta->delete(); $meta->getTsl()->delete(); } } foreach ($removeMeta as $meta) { $meta->delete(); $meta->getTsl()->delete(); } $cache = Zend_Registry::get('cache'); $cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array('SxModule_Pageform_Id' . $item->getId(), 'SxModule_Pageform_getAll', 'SxModule_Pageform_Field', 'SxModule_Pageform_Field_Tsl', 'SxModule_Pageform_Field_Meta', 'SxModule_Pageform_Field_Meta_Tsl', 'SxModule_Pageform_Status', 'SxModule_Pageform_Forward')); $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->addMessage($this->admin_tmx->_('itemedited')); $this->_helper->redirector->gotoSimple('index', 'pageform'); } } $this->view->item = $item; $this->view->messages = Sanmax_MessageStack::getInstance('SxModule_Pageform'); } else { $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->addMessage($this->admin_tmx->_('itemedited')); $this->_helper->redirector->gotoSimple('index', 'pageform'); } }