File indexing completed on 2025-02-09 07:14:34
0001 <?php 0002 0003 /** 0004 * ocs-webserver 0005 * 0006 * Copyright 2016 by pling GmbH. 0007 * 0008 * This file is part of ocs-webserver. 0009 * 0010 * This program is free software: you can redistribute it and/or modify 0011 * it under the terms of the GNU Affero General Public License as 0012 * published by the Free Software Foundation, either version 3 of the 0013 * License, or (at your option) any later version. 0014 * 0015 * This program is distributed in the hope that it will be useful, 0016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0018 * GNU Affero General Public License for more details. 0019 * 0020 * You should have received a copy of the GNU Affero General Public License 0021 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0022 **/ 0023 class Default_Model_DbTable_ProjectClone extends Local_Model_Table 0024 { 0025 0026 protected $_name = "project_clone"; 0027 0028 protected $_keyColumnsForRow = array('project_clone_id'); 0029 0030 protected $_key = 'project_clone_id'; 0031 0032 protected $_defaultValues = array( 0033 'project_clone_id' => null, 0034 'project_id' => null, 0035 'project_id_parent' => null, 0036 'external_link' => null, 0037 'member_id' => null, 0038 'text' => null, 0039 'is_deleted' => null, 0040 'is_valid' => null, 0041 'project_clone_type' => null, 0042 'created_at' => null, 0043 'changed_at' => null, 0044 'deleted_at' => null 0045 ); 0046 0047 public function setDelete($project_clone_id) 0048 { 0049 $updateValues = array( 0050 'is_deleted' => 1, 0051 ); 0052 0053 $this->update($updateValues, 'project_clone_id=' . $project_clone_id); 0054 } 0055 0056 public function setValid($project_clone_id) 0057 { 0058 $updateValues = array( 0059 'is_valid' => 1, 0060 ); 0061 0062 $this->update($updateValues, 'project_clone_id=' . $project_clone_id); 0063 } 0064 0065 /** 0066 * @param array $data 0067 * 0068 * @return Zend_Db_Table_Rowset_Abstract 0069 */ 0070 protected function generateRowSet($data) 0071 { 0072 $classRowSet = $this->getRowsetClass(); 0073 0074 return new $classRowSet(array( 0075 'table' => $this, 0076 'rowClass' => $this->getRowClass(), 0077 'stored' => true, 0078 'data' => $data 0079 )); 0080 } 0081 0082 public function delete($where) 0083 { 0084 $where = parent::_whereExpr($where); 0085 0086 /** 0087 * Build the DELETE statement 0088 */ 0089 $sql = "UPDATE " . parent::getAdapter()->quoteIdentifier($this->_name, true) . " SET `is_deleted` = 1 " . (($where) ? " WHERE $where" : ''); 0090 0091 /** 0092 * Execute the statement and return the number of affected rows 0093 */ 0094 $stmt = parent::getAdapter()->query($sql); 0095 $result = $stmt->rowCount(); 0096 0097 return $result; 0098 } 0099 0100 public function listAll($startIndex, $pageSize, $sorting) 0101 { 0102 $select = $this->select()->order($sorting)->limit($pageSize, $startIndex); 0103 $rows = $this->fetchAll($select)->toArray(); 0104 $select = $this->select()->where('is_deleted = 0'); 0105 $count = $this->fetchAll($select)->count(); 0106 0107 if (empty($rows)) { 0108 return array('rows' => array(), 'totalCount' => 0); 0109 } 0110 0111 return array('rows' => $rows, 'totalCount' => $count); 0112 } 0113 0114 }