File indexing completed on 2025-05-04 05:29:12
0001 <?php 0002 /** 0003 * ocs-webserver 0004 * 0005 * Copyright 2016 by pling GmbH. 0006 * 0007 * This file is part of ocs-webserver. 0008 * 0009 * This program is free software: you can redistribute it and/or modify 0010 * it under the terms of the GNU Affero General Public License as 0011 * published by the Free Software Foundation, either version 3 of the 0012 * License, or (at your option) any later version. 0013 * 0014 * This program is distributed in the hope that it will be useful, 0015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 * GNU Affero General Public License for more details. 0018 * 0019 * You should have received a copy of the GNU Affero General Public License 0020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 * 0022 */ 0023 0024 class Default_Model_MemberSettingValue 0025 { 0026 0027 public function insert($itemid,$value,$memberid) 0028 { 0029 $tbl = new Default_Model_DbTable_MemberSettingValue(); 0030 $values = array( 0031 'member_setting_item_id' => $itemid 0032 ,'value' => $value 0033 ,'member_id' => $memberid 0034 ); 0035 $tbl->insert($values); 0036 } 0037 0038 public function update($itemid,$value,$memberid) 0039 { 0040 0041 $tbl = new Default_Model_DbTable_MemberSettingValue(); 0042 $tbl->update(array('value' => $value 0043 ,'changed_at'=> new Zend_Db_Expr('Now()') 0044 ,'is_active' => 1 0045 ) 0046 ,'member_setting_item_id='.$itemid.' and member_id = '.$memberid 0047 ); 0048 } 0049 0050 public function updateSingle($valueid,$value) 0051 { 0052 0053 $tbl = new Default_Model_DbTable_MemberSettingValue(); 0054 $tbl->_db->update($tbl->_name, array('value' => $value 0055 ,'changed_at'=> new Zend_Db_Expr('Now()') 0056 ,'is_active' => 1 0057 ) 0058 ,'member_setting_value_id='.$valueid 0059 ); 0060 } 0061 0062 public function fetchMemberSettingItem($member_id,$item_id) 0063 { 0064 $sql = " 0065 select 0066 v.member_setting_item_id 0067 ,v.value 0068 from member_setting_value v 0069 where v.member_id = :member_id and member_setting_item_id =:item_id 0070 "; 0071 $result = $this->getAdapter()->fetchRow($sql, array('member_id' => $member_id,'item_id' => $item_id)); 0072 return $result; 0073 } 0074 0075 public function findMemberSettings($memberid,$groupid) 0076 { 0077 $sql = " 0078 select 0079 0080 t.member_setting_item_id 0081 ,t.title 0082 ,v.value 0083 ,v.member_setting_value_id 0084 from 0085 member_setting_item t 0086 left join member_setting_value v on t.member_setting_item_id = v.member_setting_item_id and v.member_id =:memberid 0087 where t.member_setting_group_id = :groupid 0088 "; 0089 $result = $this->getAdapter()->fetchAll($sql, array('memberid' => $memberid,'groupid' => $groupid)); 0090 return $result; 0091 } 0092 0093 public function updateOrInsertSetting($member_id 0094 ,$member_setting_item_id 0095 ,$member_setting_value_id=null 0096 ,$value) 0097 { 0098 0099 if($member_setting_value_id){ 0100 $this->updateSingle($member_setting_value_id,$value); 0101 return; 0102 } 0103 0104 $sql = " 0105 select count(*) as cnt from member_setting_value where member_id = :member_id 0106 and member_setting_item_id = :member_setting_item_id 0107 "; 0108 $r = $this->getAdapter()->fetchRow($sql, array( 0109 'member_id' => $member_id 0110 ,'member_setting_item_id' => $member_setting_item_id 0111 )); 0112 if($r['cnt'] ==0){ 0113 //insert 0114 $this->insert($member_setting_item_id,$value,$member_id); 0115 }else 0116 { 0117 //update 0118 $this->update($member_setting_item_id,$value,$member_id); 0119 } 0120 } 0121 0122 0123 /** 0124 * @return Zend_Db_Adapter_Abstract 0125 */ 0126 private function getAdapter() 0127 { 0128 return Zend_Db_Table::getDefaultAdapter(); 0129 } 0130 0131 0132 0133 }