File indexing completed on 2024-05-12 05:58:46

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 }