public function validate(SxModule_Pageform $object) { $this->validateTextRequired($object->getName(), 'pf_name', 'title-tab', 'test foutmelding'); $this->validateTextareaRequired($object->getContent(), 'pf_content', 'title-tab'); if ($object->getMailoption() == 1) { $this->validateEmail($object->getMailto(), 'pf_mailto', 'options-tab'); } if ($object->getTsl()->getConfirm() == 1) { $this->validateTextRequired($object->getTsl()->getConfirmSubject(), "pf_confirmsubject", "options-tab"); $this->validateTextareaRequired($object->getTsl()->getConfirmSubject(), "pf_confirmcontent", "options-tab"); } $i = 0; foreach ($object->getField() as $field) { $i++; $this->validateTextRequired($field->getKey(), "field" . $i, 'fields-tab'); } $msgr = Sanmax_MessageStack::getInstance($this->_namespace); if (!$msgr->getNamespaceMessages()) { return true; } return false; }
public function toArray(SxModule_Pageform $item, $type = 'both') { if ($type == 'both' || $type == 'item') { $fields = array('pf_id' => (int) $item->getId(), 'pf_name' => $item->getName(), 'pf_content' => $item->getContent(), 'pf_date_created' => $item->getDateCreated(), 'pf_date_updated' => $item->getDateUpdated(), 'pf_mailoption' => $item->getMailoption(), 'pf_mailto' => $item->getMailto(), 'pf_captcha' => $item->getCaptcha()); } if ($type == 'both' || $type == 'tsl') { $tslfields = array('pf_tsl_id' => (int) $item->getTsl()->getId(), 'pageform_id' => (int) $item->getTsl()->getPageformId(), 'language' => $item->getTsl()->getLanguage(), 'name' => $item->getTsl()->getName(), 'content' => $item->getTsl()->getContent(), 'active' => $item->getTsl()->getActive(), 'confirm' => $item->getTsl()->getConfirm(), 'confirmto' => $item->getTsl()->getConfirmto(), 'confirmsubject' => $item->getTsl()->getConfirmsubject(), 'confirmcontent' => $item->getTsl()->getConfirmcontent(), 'pf_tsl_date_created' => $item->getTsl()->getDateCreated(), 'pf_tsl_date_updated' => $item->getTsl()->getDateUpdated()); } if ($type == 'item') { return $fields; } elseif ($type == 'tsl') { return $tslfields; } else { return array_merge($fields, $tslfields); } }
public function addAction() { SxCms_Acl::requireAcl('pageform', 'pageform.add'); $system = new Zend_Session_Namespace('System'); $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; $pageform = new SxModule_Pageform(); $pageform->setTsl(new SxModule_Pageform_Tsl()); $tsl = $pageform->getTsl(); $field = new SxModule_Pageform_Field(); $field->setTsl(new SxModule_Pageform_Field_Tsl()); $meta = new SxModule_Pageform_Field_Meta(); $pageform->addField($field); if ($this->getRequest()->isPost()) { $fields = $this->preprocessFields(); $pageform = $this->mapFieldsToObjects($fields); $tsl = $pageform->getTsl(); $validator = new SxModule_Pageform_Validator(); if ($validator->validate($pageform)) { $pageform->save(); $tsl->setPageformId($pageform->getId())->setLanguage($system->lng)->save(); foreach ($pageform->getPages() as $page) { $pages = new SxCms_Page_Pageform(); $pages->setPageid($page)->setPageformid($pageform->getId())->save(); } $f = 0; foreach ($pageform->getField() as $field) { $f++; $field->setPageformId($pageform->getId())->setPlace($f)->save(); $field->getTsl()->setFieldId($field->getId())->setPlace($f)->setLanguage($system->lng)->save(); $fm = 0; foreach ($field->getMeta() as $meta) { $fm++; $meta->setFieldId($field->getId())->setPlace($fm)->save(); $meta->getTsl()->setMetaId($meta->getId())->setLanguage($system->lng)->save(); } } $cache = Zend_Registry::get('cache'); $cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array('SxModule_Pageform_getAll', 'SxModule_Pageform_Field', 'SxModule_Pageform_Field_Tsl', 'SxModule_Pageform_Field_Meta', 'SxModule_Pageform_Field_Meta_Tsl', 'SxModule_Pageform_Status')); $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->addMessage($this->admin_tmx->_('itemcreated')); $this->_helper->redirector->gotoSimple('index', 'pageform'); } } $this->view->activePageformStatus = array(); $this->view->tsl = $tsl; $this->view->item = $pageform; $this->view->pages = $pages; $this->view->messages = Sanmax_MessageStack::getInstance('SxModule_Pageform'); }