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 }