Exemple #1
0
 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');
     }
 }