public function toObject(array $import, $type = 'both') { $fields = array('pff_id' => 0, 'pff_pageform_id' => 0, 'pff_key' => '', 'pff_field_type' => '', 'pff_validation' => '', 'pff_date_created' => '', 'pff_date_updated' => '', 'pff_place' => 0); $tslFields = array('pfft_id' => 0, 'pfft_field_id' => 0, 'pfft_name' => '', 'pfft_language' => '', 'pfft_date_created' => '', 'pfft_date_updated' => '', 'pfft_place' => 0); foreach ($import as $key => $value) { if (array_key_exists($key, $fields)) { $fields[$key] = $value; } } foreach ($import as $key => $value) { if (array_key_exists($key, $tslFields)) { $tslFields[$key] = $value; } } if ($type == 'both' || $type == 'item') { $item = new SxModule_Pageform_Field(); $item->setId((int) $fields['pff_id'])->setpageformId((int) $fields['pff_pageform_id'])->setKey($fields['pff_key'])->setFieldType($fields['pff_field_type'])->setValidation($fields['pff_validation'])->setDateCreated($fields['pff_date_created'])->setDateUpdated($fields['pff_date_updated'])->setPlace($fields['pff_place']); } if ($type == 'both' || $type == 'tsl') { $tsl = new SxModule_Pageform_Field_Tsl(); $tsl->setId((int) $tslFields['pfft_id'])->setFieldId((int) $tslFields['pfft_field_id'])->setName($tslFields['pfft_name'])->setLanguage($tslFields['pfft_language'])->setDateCreated($tslFields['pfft_date_created'])->setDateUpdated($tslFields['pfft_date_updated'])->setPlace($tslFields['pfft_place']); if ($type == 'both') { $item->setTsl($tsl); } else { $item = $tsl; } } return $item; }
public function save($item_params = '*') { $db = Zend_Registry::get('db'); $mapper = new SxModule_Pageform_Field_Mapper(); $field = new SxModule_Pageform_Field(); $field->setTsl($this); $item = $mapper->toArray($field, 'tsl'); if (is_array($item_params)) { $item = $mapper->fromInput($item, $item_params); } if ($this->getId()) { $item['pfft_date_updated'] = new Zend_Db_Expr('NOW()'); $db->update($this->_tablename(), $item, $this->_primary_key() . ' = ' . (int) $this->getId()); } else { $item['pfft_date_created'] = new Zend_Db_Expr('NOW()'); $item['pfft_date_updated'] = '0000-00-00 00:00:00'; $config = Zend_Registry::get('config'); foreach ($config->system->language as $lng => $slng) { $item['pfft_language'] = $lng; $db->insert($this->_tablename(), $item); } } return $this; }
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'); }