File indexing completed on 2025-02-09 07:14:34
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 class Default_Model_DbTable_ProjectWidget extends Local_Model_Table 0024 { 0025 protected $_key = 'widget_id'; 0026 0027 protected $_keyColumnsForRow = array('uuid'); 0028 0029 protected $_name = 'project_widget'; 0030 0031 protected $_primary = 'widget_id'; 0032 0033 public function insert(array $data) 0034 { 0035 if (empty($data['uuid'])) { 0036 $data['uuid'] = md5($data['config']); 0037 } 0038 0039 return parent::insert($data); 0040 } 0041 0042 public function save($data) 0043 { 0044 $tempUuid = $this->generateConfigUuid($data); 0045 0046 $data = $this->testConfigChanged($data, $tempUuid); 0047 0048 return parent::save($data); 0049 } 0050 0051 /** 0052 * @param $data 0053 * @return string 0054 */ 0055 protected function generateConfigUuid($data) 0056 { 0057 $tempUuid = md5($data['config']); 0058 return $tempUuid; 0059 } 0060 0061 /** 0062 * @param $data 0063 * @param $tempUuid 0064 * @return mixed 0065 */ 0066 protected function testConfigChanged($data, $tempUuid) 0067 { 0068 if ($tempUuid != $data['uuid']) { 0069 $data['uuid'] = $tempUuid; 0070 return $data; 0071 } 0072 return $data; 0073 } 0074 0075 }