
Öffentliche Methoden | |
| delete ($idUser=0, $delete=true) | |
| Schriftrollen als geloescht markieren und ggf. | |
| getOtherUser ($idUser) | |
| Rueckgabe von ID, Namen des anderen beteiligten Benutzers. | |
| insert () | |
| Fügt Daten des Objekts in Datenbank ein. | |
| isAuthor ($idUser) | |
| Prüft, ob der Benutzer mit übergebener ID Autor der SR ist. | |
| isDeleted ($idUser=null) | |
| Gibt zurück, ob die Schriftrollen von einem der Benutzer gelöscht wurde. | |
| isParticipated ($idUser) | |
| Prüft, ob der übergebene Benutzer an Schriftrolle beteiligt ist. | |
| isRead () | |
| Rueckgabe, ob SR vom Empfaenger als gelesen markiert wurde. | |
| isRecipient ($idUser) | |
| Prüft, ob der Benutzer mit übergebener ID Empfänger der SR ist. | |
| markRead ($idUser=0, $read=true) | |
| Schriftrolle als vom Empfaenger gelesen / ungelesen markieren. | |
| refresh ($content=true) | |
| SR aktualisieren / Daten laden. | |
| toArrayDecoded () | |
| Gibt Daten dekodiert als Array zurueck. | |
Geschützte Methoden | |
| _checkValidity () | |
| Prüft Gültigkeit, indemie Identifizierer kontrolliert werden. | |
| _delete () | |
| Loescht Schriftrolle aus der Datenbank. | |
Geschützte Attribute | |
| $_identifiers = array('id') | |
| Array mit Eigenschaften, die eine klare Identifizierung eines Datenbanksatzes zulassen. | |
| $_propertiesProtected = array('id') | |
| array, Geschützte Eigenschaften, können nicht über setData() gesetzt werden | |
| $_table = 'scroll_header' | |
| string, zunächst Name und später Objekt der (Haupt-)-Tabelle | |
Definiert in Zeile 9 der Datei Scroll.php.
| Dsao_Scroll::_checkValidity | ( | ) | [protected] |
Prüft Gültigkeit, indemie Identifizierer kontrolliert werden.
Erneute Implementation von Dsao_Db_Table_DataHandler_Abstract.
Definiert in Zeile 17 der Datei Scroll.php.
| Dsao_Scroll::_delete | ( | ) | [protected] |
Loescht Schriftrolle aus der Datenbank.
Definiert in Zeile 27 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get() und Dsao_Db_Table_DataHandler_Abstract::getTable().
Wird benutzt von delete().
00028 { 00029 // Header-Zeile loeschen (Inhalt wird autmatisch geloescht) 00030 $this->getTable()->delete 00031 (array('id = '. (int) $this->__get('id'))); 00032 }
| Dsao_Scroll::delete | ( | $ | idUser = 0, |
|
| $ | delete = true | |||
| ) |
Schriftrollen als geloescht markieren und ggf.
loeschen.
Markiert die Schriftrolle als vom Benutzer mit der ID $idUser geloescht, und loescht sie ggf. komplett.
| $idUser | int, Benutzer-ID | |
| $delete | bool, Ob geloescht oder loeschen rueckgaengig gemacht werden soll |
Definiert in Zeile 45 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get(), Dsao_DataHandler_Abstract::__set(), _delete(), Dsao_Db_Table_DataHandler_Abstract::delete() und Dsao_Db_Table_DataHandler_Abstract::getTable().
00046 { 00047 parent::delete(); 00048 00049 // Falls loeschen rueckgaengig gemacht werden soll 00050 if (!$delete) 00051 { 00052 $this->__set('deleted', 0); 00053 00054 // Zeile aktualisieren 00055 $this->getTable()->update 00056 (array('deleted' => 0), 'id = '.(int) $this->__get('id')); 00057 00058 return $this; 00059 } 00060 00061 // Falls keine Benutzer-ID uebergeben wurde, direkt loeschen 00062 if (0 === $idUser && $delete) 00063 { 00064 $this->_delete(); 00065 00066 return $this; 00067 } 00068 00069 // int, Zahl, die das Feld 'deleted' haben muss, wenn der andere Benutzer 00070 // die SR geloescht hat 00071 $intOther = 0; 00072 00073 // int, Zahl, die das Feld 'deleted' haben muss, wenn der angemeldete 00074 // Benutzer die SR geloescht hat 00075 $intSelf = 0; 00076 00077 00078 // Falls Benutzer Autor 00079 if ($this->__get('idAuthor') == $idUser) 00080 { 00081 $intSelf = 1; 00082 } 00083 // Falls Benutzer Empfaenger 00084 else if ($this->__get('idRecipient') == $idUser) 00085 { 00086 $intSelf = 2; 00087 } 00088 // Benutzer hat nichts mit der SR am Hut, also abbrechen 00089 else 00090 { 00091 return $this; 00092 } 00093 00094 // Zahl des anderen Benutzers in Abhängigkeit bestimmen 00095 $intOther = ($intSelf == 1 ? 2 : 1); 00096 00097 // Falls anderer Spieler Nachricht bereits geloescht hat 00098 if ($intOther == $this->__get('deleted')) 00099 { 00100 $this->_delete(); 00101 } 00102 else 00103 { 00104 $this->__set('deleted', $intSelf); 00105 00106 // Zeile aktualisieren 00107 Dsao_Registry::getTable('scroll_header')->update 00108 (array('deleted' => $intSelf), 'id = '.(int) $this->__get('id')); 00109 } 00110 00111 return $this; 00112 }
| Dsao_Scroll::getOtherUser | ( | $ | idUser | ) |
Rueckgabe von ID, Namen des anderen beteiligten Benutzers.
| $idUser | int, Benutzer-ID |
Definiert in Zeile 120 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get() und isParticipated().
Wird benutzt von Dsao_Model_Scroll_Scroll::_checkScrollData().
00121 { 00122 $idUser = (int) $idUser; 00123 00124 // Anderer Benutzer 00125 $userOther = new Dsao_User(); 00126 00127 // Falls übergebener Benutzer an Schriftrolle beteiligt 00128 if ($this->isParticipated($idUser)) 00129 { 00130 // Falls Benutzer Autor 00131 if ($this->__get('idAuthor') == $idUser) 00132 { 00133 $idUserOther = $this->__get('idRecipient'); 00134 $usernameOther = $this->__get('nameRecipient'); 00135 } 00136 else 00137 { 00138 $idUserOther = $this->__get('idAuthor'); 00139 $usernameOther = $this->__get('nameAuthor'); 00140 } 00141 00142 $userOther->setId($idUserOther); 00143 $userOther->username = $usernameOther; 00144 $userOther->setValid(true); 00145 } 00146 00147 return $userOther; 00148 }
| Dsao_Scroll::insert | ( | ) |
Fügt Daten des Objekts in Datenbank ein.
Erneute Implementation von Dsao_Db_Table_DataHandler_Abstract.
Definiert in Zeile 150 der Datei Scroll.php.
Benutzt Dsao_Db_Table_DataHandler_Abstract::getTable(), Dsao_DataHandler_Abstract::setFromArray() und Dsao_Db_Table_DataHandler_Abstract::setSynchronous().
Wird benutzt von Dsao_Model_Scroll_Scroll::insertScroll().
00151 { 00152 // Tabellenzeilen erstellen 00153 $rowHeader = $this->getTable() 00154 ->createRow($this->_data); 00155 $rowContent = $this->getTable('scroll_content') 00156 ->createRow($this->_data); 00157 00158 // Transaktion starten 00159 $this->getTable()->getAdapter()->beginTransaction(); 00160 00161 // Header einfuegen und ID der Inhaltstabelle zuweisen 00162 $rowContent->id = $rowHeader->save(); 00163 00164 // Inhalt einfuegen 00165 $rowContent->save(); 00166 00167 // Transaktion beenden 00168 $this->getTable()->getAdapter()->commit(); 00169 00170 // Daten neu setzen 00171 return $this->setFromArray($rowHeader->toArray() + $rowContent->toArray()) 00172 ->setSynchronous(); 00173 }
| Dsao_Scroll::isAuthor | ( | $ | idUser | ) |
Prüft, ob der Benutzer mit übergebener ID Autor der SR ist.
| $idUser | Benutzer-ID, descParam |
Definiert in Zeile 181 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get().
Wird benutzt von isDeleted().
00182 { 00183 return ($idUser == $this->__get('idAuthor')); 00184 }
| Dsao_Scroll::isDeleted | ( | $ | idUser = null |
) |
Gibt zurück, ob die Schriftrollen von einem der Benutzer gelöscht wurde.
| $idUser | int, Benutzer-ID |
Definiert in Zeile 192 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get(), Dsao_DataHandler_Abstract::__isset(), isAuthor() und isParticipated().
00193 { 00194 // Falls Eigenschaft nicht gesetzt, null zurück geben 00195 if (!$this->__isset('deleted')) 00196 { 00197 return null; 00198 } 00199 00200 // Falls keine ID übergeben wurde, nur schauen, ob Schriftrollen von einem 00201 // der Beteiligten gelöscht wurde 00202 if (null === $idUser) 00203 { 00204 return ($this->__get('deleted') > 0); 00205 } 00206 00207 // Falls Benutzer nicht an Schriftrolle beteiligt 00208 if (!$this->isParticipated($idUser)) 00209 { 00210 return false; 00211 } 00212 00213 return ($this->isAuthor($idUser) ? 00214 // Falls der Autor die Schriftrolle gelöscht hat 00215 ($this->__get('deleted') == 1) : 00216 // Falls der Empfänger die Schriftrolle gelöscht hat 00217 ($this->__get('deleted') == 2)); 00218 }
| Dsao_Scroll::isParticipated | ( | $ | idUser | ) |
Prüft, ob der übergebene Benutzer an Schriftrolle beteiligt ist.
| $idUser | int, Benutzer-ID |
Definiert in Zeile 226 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get().
Wird benutzt von getOtherUser() und isDeleted().
00227 { 00228 $idUser = (int) $idUser; 00229 00230 return ($this->__get('idAuthor') == $idUser 00231 || $this->__get('idRecipient') == $idUser); 00232 }
| Dsao_Scroll::isRead | ( | ) |
Rueckgabe, ob SR vom Empfaenger als gelesen markiert wurde.
Definiert in Zeile 239 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get() und Dsao_DataHandler_Abstract::__isset().
| Dsao_Scroll::isRecipient | ( | $ | idUser | ) |
Prüft, ob der Benutzer mit übergebener ID Empfänger der SR ist.
| $idUser | Benutzer-ID, descParam |
Definiert in Zeile 250 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get().
00251 { 00252 return ($idUser == $this->__get('idRecipient')); 00253 }
| Dsao_Scroll::markRead | ( | $ | idUser = 0, |
|
| $ | read = true | |||
| ) |
Schriftrolle als vom Empfaenger gelesen / ungelesen markieren.
| $idUser | int | |
| $read | bool, Ob die SR als gelesen oder ungelesen markiert werden soll |
Definiert in Zeile 262 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get(), Dsao_DataHandler_Abstract::__set(), Dsao_Db_Table_DataHandler_Abstract::getTable(), Dsao_DataHandler_Abstract::isReadOnly(), Dsao_Db_Table_DataHandler_Abstract::isSynchronous() und Dsao_DataHandler_Abstract::isValid().
00263 { 00264 // Schreibschutz, Gültigkeit und Synchronität prüfen / sicherstellen 00265 $this->isReadOnly(true); 00266 $this->isValid(true); 00267 $this->isSynchronous(true); 00268 00269 // Erst nach boolean und dann nach int umwandeln, um sicher zu stellen, 00270 // dass nur 0 oder 1 als Wert heraus kommt 00271 $read = (int) (bool) $read; 00272 00273 // Falls Wert sich geaendert hat und der Benutzer daran beteiligt ist 00274 if (($read != $this->__get('read')) 00275 && (!$idUser || $idUser == $this->__get('idRecipient'))) 00276 { 00277 $sqlWhere = 'id = '. (int) $this->__get('id'); 00278 00279 $this->getTable()->update(array('read' => $read), $sqlWhere); 00280 00281 $this->__set('read', $read); 00282 } 00283 00284 return $this; 00285 }
| Dsao_Scroll::refresh | ( | $ | content = true |
) |
SR aktualisieren / Daten laden.
| $content | bool, Ob auch der Inhalt geladen werden soll |
Definiert in Zeile 293 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get(), Dsao_Db_Table_DataHandler_Abstract::_parseResult(), Dsao_Db_Table_DataHandler_Abstract::getTable(), Dsao_Db_Table_DataHandler_Abstract::refresh() und Dsao_DataHandler_Abstract::setValid().
00294 { 00295 parent::refresh(); 00296 00297 $userData = null; 00298 00299 // Falls Inhalt geladen werden soll 00300 if ($content) 00301 { 00302 // Tabellenzeilen laden 00303 $select = $this->getTable()->getAdapter()->select() 00304 ->from('scroll_header') 00305 ->joinUsing('scroll_content', 'id') 00306 ->where('`user_data`.id = ?', $this->__get('id')); 00307 00308 $data = $this->getTable()->getAdapter()->fetchAll($select); 00309 00310 $this->_parseResult(array_pop($data)); 00311 } 00312 else 00313 { 00314 // Tabellenzeilen laden 00315 $row = $this->getTable()->select() 00316 ->where('id = ?', $this->__get('id'))->fetchRow(); 00317 00318 $this->_parseResult($row, false); 00319 00320 $this->setValid(); 00321 } 00322 00323 return $this; 00324 }
| Dsao_Scroll::toArrayDecoded | ( | ) |
Gibt Daten dekodiert als Array zurueck.
Definiert in Zeile 331 der Datei Scroll.php.
Benutzt Dsao_DataHandler_Abstract::__get() und Dsao_DataHandler_Abstract::__isset().
00332 { 00333 // Daten kopieren 00334 $data = $this->_data; 00335 00336 // Falls Inhalt vorhanden 00337 if ($this->__isset('content')) 00338 { 00339 $filter = new Dsao_Filter_Texts(); 00340 00341 // Inhalt dekodieren 00342 $data['content'] = $filter->filter($this->__get('content')); 00343 } 00344 00345 // Falls Zeit vorhanden 00346 if ($this->__isset('date')) 00347 { 00348 $date = new Dsao_Time($this->__get('date')); 00349 00350 // Timestamp 00351 $data['timestamp'] = strtotime($data['date'], 0); 00352 00353 // Zeit formatieren 00354 $data['date'] = $date->format(); 00355 } 00356 00357 return $data; 00358 }
Dsao_Scroll::$_identifiers = array('id') [protected] |
Array mit Eigenschaften, die eine klare Identifizierung eines Datenbanksatzes zulassen.
Der Primary-Key muss hier nicht festgehalten werden, nur weitere Unique-Spalten oder Kombinationen. Über Unterarrays können Spaltenkombinationen festgehalten werden.
Erneute Implementation von Dsao_Db_Table_DataHandler_Abstract.
Definiert in Zeile 11 der Datei Scroll.php.
1.5.7.1