Example #1
0
 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;
 }
Example #2
0
 public function save($item_params = '*')
 {
     $db = Zend_Registry::get('db');
     $mapper = new SxModule_Pageform_Mapper();
     $pageform = new SxModule_Pageform();
     $pageform->setTsl($this);
     $item = $mapper->toArray($pageform, 'tsl');
     if (is_array($item_params)) {
         $item = $mapper->fromInput($item, $item_params);
     }
     if ($this->getId()) {
         $item['pf_tsl_date_updated'] = new Zend_Db_Expr('NOW()');
         $db->update($this->_tablename(), $item, $this->_primary_key() . ' = ' . (int) $this->getId());
     } else {
         $item['pf_tsl_date_created'] = new Zend_Db_Expr('NOW()');
         $item['pf_tsl_date_updated'] = '0000-00-00 00:00:00';
         $config = Zend_Registry::get('config');
         foreach ($config->system->language as $lng => $slng) {
             $item['language'] = $lng;
             if ($lng != $_SESSION['System']['lng']) {
                 $item['active'] = 0;
                 $item['confirm'] = 0;
                 $item['confirmto'] = '';
             }
             $db->insert($this->_tablename(), $item);
         }
     }
     return $this;
 }
Example #3
0
 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);
     }
 }
Example #4
0
 public function validate(SxModule_Pageform_Subscription $object, SxModule_Pageform $pageform)
 {
     $this->validatePageformId($object->getPageformId());
     $msgr = Sanmax_MessageStack::getInstance($this->_namespace);
     foreach ($pageform->getField() as $field) {
         foreach ($object->getMeta() as $meta) {
             if ($field->getId() == $meta->getFieldId()) {
                 if ($field->getFieldType() == 'text' && $field->getValidation() == 'numeric') {
                     $this->validateNumeric($meta->getValue(), $field->getTsl()->getName(), 'common');
                 } elseif ($field->getFieldType() == 'text' && $field->getValidation() == 'numeric-required') {
                     $this->validateNumeric($meta->getValue(), $field->getTsl()->getName(), 'common');
                 } elseif ($field->getFieldType() == 'text' && $field->getValidation() == 'date') {
                     $this->validateDate($meta->getValue(), $field->getTsl()->getName(), 'common');
                 } elseif ($field->getFieldType() == 'text' && $field->getValidation() == 'date-required') {
                     $this->validateDate($meta->getValue(), $field->getTsl()->getName(), 'common');
                 } elseif ($field->getFieldType() == 'select' && $field->getValidation() == 'boolean') {
                     $this->validateBoolean($meta->getValue(), $field->getTsl()->getName(), 'common');
                 } elseif ($field->getFieldType() == 'radio' && $field->getValidation() == 'required') {
                     $options = array();
                     foreach ($field->getMeta() as $option) {
                         $options[] = $option->getTsl()->getValue();
                     }
                     $this->validateInArray($meta->getValue(), $field->getTsl()->getName(), $options, 'common', array(Zend_Validate_InArray::NOT_IN_ARRAY => sprintf($this->getTmx()->_('error.option.required'), $field->getTsl()->getName())));
                 } elseif ($field->getFieldType() == 'checkbox' && $field->getValidation() == 'required') {
                     $val = null;
                     if ($meta->getValue() && is_array($meta->getValue())) {
                         $val = reset($meta->getValue());
                     }
                     $options = array();
                     foreach ($field->getMeta() as $option) {
                         $options[] = $option->getTsl()->getValue();
                     }
                     $this->validateInArray($val, $field->getTsl()->getName(), $options, 'common', array(Zend_Validate_InArray::NOT_IN_ARRAY => sprintf($this->getTmx()->_('error.option.required'), $field->getTsl()->getName())));
                 } elseif ($field->getValidation() == 'text') {
                     $this->validateText($meta->getValue(), $field->getTsl()->getName(), 'common', array(Zend_Validate_StringLength::INVALID => sprintf($this->getTmx()->_('error.required'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_LONG => sprintf($this->getTmx()->_('error.required.long'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_SHORT => sprintf($this->getTmx()->_('error.required.short'), $field->getTsl()->getName())));
                 } elseif ($field->getValidation() == 'text-required') {
                     $this->validateTextRequired($meta->getValue(), $field->getTsl()->getName(), 'common', array(Zend_Validate_StringLength::INVALID => sprintf($this->getTmx()->_('error.required'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_LONG => sprintf($this->getTmx()->_('error.required.long'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_SHORT => sprintf($this->getTmx()->_('error.required.short'), $field->getTsl()->getName())));
                 } elseif ($field->getValidation() == 'file-required') {
                     $this->validateTextRequired($meta->getValue(), $field->getTsl()->getName(), 'common', array(Zend_Validate_StringLength::INVALID => sprintf($this->getTmx()->_('error.required'), $field->getTsl()->getName())));
                 } elseif ($field->getValidation() == 'textarea-required') {
                     $this->validateTextareaRequired($meta->getValue(), $field->getTsl()->getName(), 'common', array(Zend_Validate_StringLength::INVALID => sprintf($this->getTmx()->_('error.required'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_LONG => sprintf($this->getTmx()->_('error.required.long'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_SHORT => sprintf($this->getTmx()->_('error.required.short'), $field->getTsl()->getName())));
                 } elseif ($field->getValidation() == 'email') {
                     if ($meta->getValue() != "") {
                         $this->validateEmail($meta->getValue(), $field->getTsl()->getName(), 'common');
                     }
                 } elseif ($field->getValidation() == 'email-required') {
                     if ($meta->getValue() == '') {
                         $this->validateTextRequired($meta->getValue(), $field->getTsl()->getName(), 'common', array(Zend_Validate_StringLength::INVALID => sprintf($this->getTmx()->_('error.required'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_LONG => sprintf($this->getTmx()->_('error.required.long'), $field->getTsl()->getName()), Zend_Validate_StringLength::TOO_SHORT => sprintf($this->getTmx()->_('error.required.short'), $field->getTsl()->getName())));
                     } else {
                         $this->validateEmail($meta->getValue(), $field->getTsl()->getName(), 'common');
                     }
                 } elseif ($field->getValidation() == 'select-option') {
                     $possible_answers = array();
                     foreach ($field->getMeta() as $field_meta) {
                         $possible_answers[] = $field_meta->getTsl()->getValue();
                     }
                     $this->validateInArray($meta->getValue(), $field->getTsl()->getName(), $possible_answers, 'common', array(Zend_Validate_InArray::NOT_IN_ARRAY => sprintf($this->getTmx()->_('error.option.required'), $field->getTsl()->getName())));
                 } else {
                     #die('No validation!'); // TODO: validatie checken!
                 }
             }
         }
     }
     if (!$msgr->getNamespaceMessages()) {
         return true;
     }
     return false;
 }
 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');
 }