
Öffentliche Methoden | |
| deleteEmptyRows () | |
| Löschen leerer Tabellenzeilen. | |
| deleteText ($idUser, $idText) | |
| Löscht Text mit uebergebener ID. | |
| editText (Dsao_User $user, $idText, $content= '') | |
| Bearbeitung eines Textes. | |
| fetchGroupTexts ($idGroup, $since, $deleted=false) | |
| Lädt Texte einer bestimmten Gruppe. | |
| findTexts (array $ids) | |
| Laedt Texte anhand der IDs aus der Datenbank. | |
| hasChangePermission ($idUser, $idText) | |
| Prüft Berechtigung des Benutzers. | |
| insertText ($idGroup, $author, $content) | |
| Einfügen eines neuen Texts. | |
Geschützte Methoden | |
| _init () | |
| Setzt Standardtabelle. | |
Definiert in Zeile 9 der Datei Desk.php.
| Dsao_Model_Game_Desk::_init | ( | ) | [protected] |
Setzt Standardtabelle.
Erneute Implementation von Dsao_Model_Abstract.
Definiert in Zeile 16 der Datei Desk.php.
Benutzt Dsao_Model_Abstract::_setDefaultTable().
00017 { 00018 // Standardtabelle 00019 $this->_setDefaultTable('game_text'); 00020 }
| Dsao_Model_Game_Desk::deleteEmptyRows | ( | ) |
Löschen leerer Tabellenzeilen.
Loescht alle leeren (heisst inhaltslosen) Zeilen, die ein bestimmtes Alter haben, mit einer konfigurierbaren Wahrscheinlichkeit bei jedem Aufruf der Seite.
Definiert in Zeile 31 der Datei Desk.php.
Benutzt Dsao_Model_Abstract::_getTable() und Dsao_Registry::get().
00032 { 00033 // int, Konfigurationsvariable, die angibt, ab welchem Alter leere Zeilen 00034 // gelöscht werden sollen 00035 $since = time()-Dsao_Registry::get('config') 00036 ->modules->game->desk->deleteEmpty->since; 00037 00038 // WHERE-Klausel 00039 $sqlWhere = array 00040 ( 00041 'content IS NULL', 00042 Dsao_Registry::get('db') 00043 ->quoteInto('timeLastEdited <= FROM_UNIXTIME(?)', $since), 00044 ); 00045 00046 // Loeschen 00047 $this->_getTable()->delete($sqlWhere); 00048 00049 return true; 00050 }
| Dsao_Model_Game_Desk::deleteText | ( | $ | idUser, | |
| $ | idText | |||
| ) |
Löscht Text mit uebergebener ID.
Löscht den Text mit der übergebenen ID, sofern der Benutzer mit übergebener ID dazu berechtigt ist.
| $idUser | int, Benutzer-ID | |
| $idText | int, Text-ID |
Definiert in Zeile 62 der Datei Desk.php.
Benutzt hasChangePermission().
Wird benutzt von editText().
00063 { 00064 // Falls Löschen erlaubt 00065 if ($row = $this->hasChangePermission($idUser, $idText)) 00066 { 00067 $row->delete(); 00068 00069 return true; 00070 } 00071 00072 return false; 00073 }
| Dsao_Model_Game_Desk::editText | ( | Dsao_User $ | user, | |
| $ | idText, | |||
| $ | content = '' | |||
| ) |
Bearbeitung eines Textes.
Bearbeitet den Text mit übergebener ID und setzt einen neuen Inhalt.
| $user | Dsao_User, Benutzer | |
| $idText | int, Text-ID | |
| $content | string, Inhalt |
Definiert in Zeile 85 der Datei Desk.php.
Benutzt deleteText() und hasChangePermission().
00086 { 00087 // Falls Bearbeitung erlaubt 00088 if ($row = $this->hasChangePermission($user->id, $idText)) 00089 { 00090 // Falls kein Inhalt uebergeben wurde, Text loeschen 00091 if ('' === $content) 00092 { 00093 return $this->deleteText($user->id, $idText); 00094 } 00095 00096 // Inhalt setzen und speichern 00097 $row->content = $content; 00098 $row->save($user); 00099 00100 return true; 00101 } 00102 00103 return false; 00104 }
| Dsao_Model_Game_Desk::fetchGroupTexts | ( | $ | idGroup, | |
| $ | since, | |||
| $ | deleted = false | |||
| ) |
Lädt Texte einer bestimmten Gruppe.
Laedt die seit $since in die Datenbank eingetragenen Texte der Gruppe mit der ID $idGroup
| $idGroup | int, ID der Gruppe | |
| $since | int, ab welchem Zeitpunkt die Texte geladen werden sollen | |
| $deleted | bool, ob auch gelöschte Einträge ausgelesen werden sollen |
Definiert in Zeile 117 der Datei Desk.php.
Benutzt Dsao_Model_Abstract::_getTable().
00118 { 00119 // Query erstellen 00120 $sqlSelect = $this->_getTable()->select() 00121 ->order('id DESC') 00122 ->where('idGroup = ?', $idGroup) 00123 ->where('timeCreated > FROM_UNIXTIME(?) OR timeLastEdited > FROM_UNIXTIME(?)', $since); 00124 00125 // Falls gelöschte nicht ausgelesen werden sollen 00126 if (!$deleted) 00127 { 00128 $sqlSelect->where('content IS NOT NULL'); 00129 } 00130 00131 // Texte laden 00132 $rowsetTexts = $this->_getTable()->fetchAll($sqlSelect); 00133 00134 return $rowsetTexts; 00135 }
| Dsao_Model_Game_Desk::findTexts | ( | array $ | ids | ) |
Laedt Texte anhand der IDs aus der Datenbank.
| $ids | array, IDs der Texte |
Definiert in Zeile 143 der Datei Desk.php.
Benutzt Dsao_Model_Abstract::_getTable().
00144 { 00145 return $this->_getTable()->find($ids); 00146 }
| Dsao_Model_Game_Desk::hasChangePermission | ( | $ | idUser, | |
| $ | idText | |||
| ) |
Prüft Berechtigung des Benutzers.
Prueft, ob Benutzer das Recht hat, den Abenteuertext mit der uebergebenen ID zu bearbeiten / loeschen.
| $idUser | int, Benutzer-ID | |
| $idText | int, Text-ID |
Definiert in Zeile 158 der Datei Desk.php.
Benutzt Dsao_Model_Abstract::_getTable().
Wird benutzt von deleteText() und editText().
00159 { 00160 // Falls ID nicht uebergeben oder nicht numerisch, abbrechen 00161 if (!$idText || !is_numeric($idText)) 00162 { 00163 return false; 00164 } 00165 00166 // Zunaechst nur pruefen, ob Text ueberhaupt existiert 00170 if ($row = $this->_getTable()->select()->where('id = ?', $idText) 00171 ->fetchRow()) 00172 { 00173 return $row; 00174 } 00175 00176 return false; 00177 }
| Dsao_Model_Game_Desk::insertText | ( | $ | idGroup, | |
| $ | author, | |||
| $ | content | |||
| ) |
Einfügen eines neuen Texts.
Fügt einen neuen Datensatz in die Tabelle 'game_texts' ein.
| $idGroup | int, Gruppen-ID | |
| $author | string, Autor | |
| $content | string, Inhalt |
Definiert in Zeile 189 der Datei Desk.php.
Benutzt Dsao_Model_Abstract::_getTable().
00190 { 00191 // Falls kein Autor oder Inhalt angegeben wurde 00192 if (!$author || !$content) 00193 { 00194 return false; 00195 } 00196 00197 // Neuer Datenbankeintrag 00198 $dataNewText = array 00199 ( 00200 'idGroup'=> $idGroup, 00201 'author' => $author, 00202 'content' => $content, 00203 ); 00204 00205 // Neue Zeile einfuegen 00206 return $this->_getTable()->insert($dataNewText); 00207 }
1.5.7.1