public function getActiveById($id, $lng = 'nl', $getFields = true, $getPages = true, $cache = false) { if ($cache == true) { $cacheId = 'SxModule_Pageform_getById_' . sha1($id . '_' . var_export($getFields, true) . '_' . var_export($getPages, true)); $cache = Zend_Registry::get('cache'); if (true == ($result = $cache->load($cacheId))) { return $result; } } $db = Zend_Registry::get('db'); $select = $db->select()->from(array('i' => $this->_tablename()), array('*'))->join(array('pft' => 'pageform_tsl'), 'pft.pageform_id = i.pf_id', array('*'))->where('i.' . $this->_primary_key() . ' = ?', (int) $id)->where('pft.language = ?', $lng)->where('pft.active = ?', 1); $result = $db->fetchRow($select); $data = $this->_mapper->toObject(is_array($result) ? $result : array()); if ($data->getId()) { if ($getFields === true) { $fieldsProxy = new SxModule_Pageform_Field_Proxy(); $fields = $fieldsProxy->getByPageformId((int) $id, $lng, false); $data->setField($fields); } if ($getPages === true) { $pagesProxy = new SxCms_Page_Pageform_Proxy(); $pages = $pagesProxy->getByPageformId((int) $id, false); $page = array(); foreach ($pages as $p) { $page[] = $p->getPageid(); } $data->setPages($page); } } if ($cache == true) { $cacheTags = array('SxModule_Pageform', 'SxModule_Pageform_Id' . $id); $cache->save($data, $cacheId, $cacheTags); } return $data; }
public function deleteAction() { if ($this->_getParam('id') != 1) { $system = new Zend_Session_Namespace('System'); SxCms_Acl::requireAcl('pageform', 'pageform.delete'); $this->_helper->viewRenderer->setNoRender(true); $this->_helper->layout->disableLayout(); $pageformProxy = new SxModule_Pageform_Proxy(); $config = Zend_Registry::get('config'); $i = 0; foreach ($config->system->language as $lng => $slng) { $i++; $pageform = $pageformProxy->getById((int) $this->_getParam('id'), $lng); foreach ($pageform->getTsl() as $tsl) { $tsl->delete(); } foreach ($pageform->getField() as $field) { $tsl = $field->getTsl(); $tsl->delete(); foreach ($field->getMeta() as $meta) { $meta->getTsl()->delete(); } } if ($i == count($config->system->language)) { foreach ($pageform->getField() as $field) { foreach ($field->getMeta() as $meta) { $meta->delete(); } $field->delete(); } } } $pagepageformproxy = new SxCms_Page_Pageform_Proxy(); $pagepageform = $pagepageformproxy->getByPageformId((int) $this->_getParam('id')); foreach ($pagepageform as $page) { $page->delete(); } $pageform->delete(); $cache = Zend_Registry::get('cache'); $cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array('SxModule_Pageform_Id' . $pageform->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->_('itemdeleted')); $this->_helper->redirector->gotoSimple('index', 'pageform'); } }