Name.class.php (4331B)
1 <?php 2 3 4 namespace cms\model { 5 6 /** 7 * Darstellung von Name und Beschreibung eines Objektes. 8 * 9 * @author Jan Dankert 10 * @package openrat.objects 11 */ 12 class Name extends ModelBase 13 { 14 /** eindeutige ID dieses Objektes 15 * @type Integer 16 */ 17 public $nameid; 18 19 public $objectid; 20 21 /** Sprach-ID 22 * @see Language 23 * @type Integer 24 */ 25 public $languageid; 26 27 28 /** Logischer (sprachabhaengiger) Name des Objektes 29 * (wird in Tabelle <code>name</code> abgelegt) 30 * @type String 31 */ 32 public $name = ''; 33 34 /** Logische (sprachabhaengige) Beschreibung des Objektes 35 * (wird in Tabelle <code>name</code> abgelegt) 36 * @type String 37 */ 38 public $description; 39 /** <strong>Konstruktor</strong> 40 * 41 * @param Integer Objekt-ID 42 */ 43 function __construct($nameid=0 ) 44 { 45 $this->nameid = $nameid; 46 } 47 48 49 /** 50 * Lesen der Eigenschaften aus der Datenbank 51 * Es werden 52 * - die sprachabh?ngigen Daten wie Name und Beschreibung geladen 53 * @throws \ObjectNotFoundException 54 */ 55 public function load() 56 { 57 $db = db_connection(); 58 59 $stmt = $db->sql( <<<SQL 60 SELECT id,objectid,name,descr,languageid 61 FROM {{name}} 62 WHERE languageid = {languageid} 63 AND objectid = {objectid} 64 SQL 65 ); 66 67 $stmt->setInt('languageid', $this->languageid); 68 $stmt->setInt('objectid' , $this->objectid ); 69 70 $row = $stmt->getRow(); 71 72 if (count($row) > 0) 73 $this->setDatabaseRow( $row ); 74 } 75 76 77 78 79 /** 80 * Setzt die Eigenschaften des Objektes mit einer Datenbank-Ergebniszeile 81 * 82 * @param array Ergebniszeile aus Datenbanktabelle 83 */ 84 private function setDatabaseRow( $row ) 85 { 86 $this->nameid = $row['id' ]; 87 $this->objectid = $row['objectid' ]; 88 $this->languageid = $row['languageid']; 89 $this->name = $row['name' ]; 90 $this->description = $row['descr']; 91 } 92 93 94 95 /** 96 * Logischen Namen und Beschreibung des Objektes in Datenbank speichern 97 * 98 */ 99 public function save() 100 { 101 $db = db_connection(); 102 103 if ( intval($this->nameid) > 0) 104 { 105 $sql = $db->sql( <<<SQL 106 UPDATE {{name}} SET 107 name = {name}, 108 descr = {desc} 109 WHERE objectid ={objectid} 110 AND languageid={languageid} 111 SQL 112 ); 113 $sql->setString('name', $this->name); 114 $sql->setString('desc', $this->description); 115 $sql->setInt( 'objectid' , $this->objectid ); 116 $sql->setInt( 'languageid', $this->languageid ); 117 $sql->query(); 118 } 119 else 120 { 121 $sql = $db->sql('SELECT MAX(id) FROM {{name}}'); 122 $this->nameid = intval($sql->getOne())+1; 123 124 $sql = $db->sql('INSERT INTO {{name}}'.' (id,objectid,languageid,name,descr)'.' VALUES( {nameid},{objectid},{languageid},{name},{desc} )'); 125 $sql->setInt ('nameid' , $this->nameid ); 126 $sql->setInt ('objectid' , $this->objectid ); 127 $sql->setInt ('languageid', $this->languageid ); 128 $sql->setString('name' , $this->name); 129 $sql->setString('desc' , $this->description); 130 $sql->query(); 131 } 132 } 133 134 135 136 public function delete() 137 { 138 // not necessary, because names are deleted by BaseObject::delete() 139 140 } 141 142 143 144 /** 145 */ 146 public function objectDelete() 147 { 148 // not necessary, because names are deleted by BaseObject::delete() 149 } 150 151 152 /** 153 * Eigenschaften des Objektes. 154 * @return array 155 */ 156 public function getProperties() 157 { 158 return get_object_vars( $this ); 159 160 } 161 162 public function getName() 163 { 164 return $this->name; 165 } 166 167 } 168 169 170 171 172 }?>