コード例 #1
0
 public function save(Default_Model_VOMS $value)
 {
     global $application;
     $data = array();
     if (!isnull($value->getVoID())) {
         $data['void'] = $value->getVoID();
     }
     if (!isnull($value->getHostname())) {
         $data['hostname'] = $value->getHostname();
     }
     if (!isnull($value->getHttpsPort())) {
         $data['https_port'] = $value->getHttpsPort();
     }
     if (!isnull($value->getVomsesPort())) {
         $data['vomses_port'] = $value->getVomsesPort();
     }
     if (!isnull($value->getIsAdmin())) {
         $data['is_admin'] = $this->pgBool($value->getIsAdmin());
     }
     if (!isnull($value->getMemberListUrl())) {
         $data['member_list_url'] = $value->getMemberListUrl();
     }
     $q1 = array('void = ?', 'hostname = ?');
     $q2 = array($value->void, $value->hostname);
     $select = $this->getDbTable()->select();
     for ($i = 0; $i < count($q1); $i++) {
         $select->where($q1[$i], $q2[$i]);
     }
     $new_entry = count($this->getDbTable()->fetchAll($select)) == 0;
     if ($new_entry) {
         $this->getDbTable()->insert($data);
     } else {
         $s = array();
         for ($i = 0; $i < count($q1); $i++) {
             $s[] = $this->getDbTable()->getAdapter()->quoteInto($q1[$i], $q2[$i]);
         }
         $this->getDbTable()->update($data, $s);
     }
 }