Esempio n. 1
0
 public function getById($id, $cache = true)
 {
     if ($cache == true) {
         $cacheId = 'SxModule_Pageform_Subscription_getById_' . sha1($id);
         $cache = Zend_Registry::get('cache');
         if (true == ($result = $cache->load($cacheId))) {
             return $result;
         }
     }
     $db = Zend_Registry::get('db');
     $select = $db->select()->from(array('pfsu' => $this->_tablename()), array('*'))->join(array('pf' => 'pageform'), 'pfsu.pfsu_pageform_id = pf.pf_id')->where('pfsu.' . $this->_primary_key() . ' = ?', $id);
     $result = $db->fetchRow($select);
     $data = $this->_mapper->toObject(is_array($result) ? $result : array());
     $pageformMapper = new SxModule_Pageform_Mapper();
     $data->setPageform($pageformMapper->toObject(is_array($result) ? $result : array()));
     $select_meta = $db->select()->from(array('sum' => 'pageform_subscription_meta'), array('*'))->where('pfsum_subscription_id = ?', (int) $data->getId());
     $meta_results = $db->fetchAll($select_meta);
     $metaMapper = new SxModule_Pageform_Subscription_Meta_Mapper();
     foreach ($meta_results as $meta) {
         if ($data->getId() == $meta['pfsum_subscription_id']) {
             $mapped = $metaMapper->toObject($meta);
             $data->addMeta($mapped);
         }
     }
     if ($cache == true) {
         $cacheTags = array('SxModule_Pageform_Subscription_getById', 'SxModule_Pageform_Subscription', 'SxModule_Pageform_Subscription_Id' . $id);
         $cache->save($data, $cacheId, $cacheTags);
     }
     return $data;
 }
Esempio n. 2
0
 public function save($item_params = '*')
 {
     $db = Zend_Registry::get('db');
     $mapper = new SxModule_Pageform_Subscription_Meta_Mapper();
     if (is_array($this->getValue())) {
         $this->setValue(implode(",", $this->getValue()));
     }
     $item = $mapper->toArray($this);
     if (is_array($item_params)) {
         $item = $mapper->fromInput($item, $item_params);
     }
     if ($this->getId()) {
         $db->update($this->_tablename(), $item, $this->_primary_key() . ' = ' . (int) $this->getId());
     } else {
         $db->insert($this->_tablename(), $item);
         $this->setId($db->lastInsertId());
     }
     return $this;
 }