コード例 #1
0
ファイル: Mapper.php プロジェクト: sonvq/2015_freelance6
 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;
 }
コード例 #2
0
ファイル: Validator.php プロジェクト: sonvq/2015_freelance6
 public function validate(SxModule_Pageform_Field $object)
 {
     $this->validateUserId($object->getUserId());
     $this->validateType($object->getType());
     if (!$msgr->getNamespaceMessages()) {
         return true;
     }
     return false;
 }
コード例 #3
0
ファイル: Tsl.php プロジェクト: sonvq/2015_freelance6
 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;
 }
コード例 #4
0
 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');
 }