
Öffentliche Methoden | |
| insertScroll (Dsao_Scroll $scroll) | |
| Einfügen einer neuen Schriftrolle. | |
Geschützte Methoden | |
| _checkScrollData (Dsao_Scroll $scroll) | |
| Prueft uebergebene Daten und gibt ein Array der Ergebnisse zurueck. | |
| _sendScrollNotificationMail (Dsao_User $user, Dsao_Scroll $scroll) | |
| Schickt einem Benutzer eine Benachrichtigung ueber eine erhaltene Schriftrolle. | |
Definiert in Zeile 9 der Datei Scroll.php.
| Dsao_Model_Scroll_Scroll::_checkScrollData | ( | Dsao_Scroll $ | scroll | ) | [protected] |
Prueft uebergebene Daten und gibt ein Array der Ergebnisse zurueck.
| $scroll | Dsao_Scroll, Schriftrolle |
Definiert in Zeile 17 der Datei Scroll.php.
Benutzt Dsao_Model_Abstract::_getObject(), Dsao_Model_Abstract::_getTable(), Dsao_Registry::get(), Dsao_Scroll::getOtherUser(), Dsao_Model_Scroll_Abstract::isParticipated() und Dsao_DataHandler_Abstract::setValid().
Wird benutzt von insertScroll().
00018 { 00019 $filter = $this->_getObject('Dsao_Filter_Texts'); 00020 00021 // Ob Fehler aufgetreten sind 00022 $flagError = false; 00023 00024 // Betreff 00025 $scroll->subject = $filter->filterInput($scroll->subject, 50); 00026 00027 // Falls kein Betreff uebergeben 00028 if (!$scroll->subject) 00029 { 00030 $scroll->subject = false; 00031 00032 $flagError = true; 00033 } 00034 00035 // Inhalt 00036 $scroll->content = $filter->filterInput 00037 ($scroll->content, 00038 Dsao_Registry::get('config')->modules->scroll->contentLength, false); 00039 00040 // Falls Inhalt zu gross oder zu klein 00041 if (!$scroll->content) 00042 { 00043 $scroll->content = false; 00044 00045 $flagError = true; 00046 } 00047 00048 00049 // Thread 00050 $idUser = Dsao_Registry::get('user')->getId(); 00051 $username = Dsao_Registry::get('user')->username; 00052 00053 // Falls Thread-ID ungleich 0 uebergeben wurde 00054 if ($scroll->idThread) 00055 { 00056 // Falls Zeile des Threads nicht gefunden wurde oder Benutzer nicht an 00057 // Thread beteiligt, abbrechen 00058 if ( !( $scrollThread = $this->isParticipated($idUser, $scroll->idThread)) ) 00059 { 00060 $scroll->idThread = false; 00061 00062 return $scroll; 00063 } 00064 00065 // ID und Namen des Autors setzen 00066 $scroll->idAuthor = $idUser; 00067 $scroll->nameAuthor = $username; 00068 00069 // ID und Namen des Empfaengers 00070 $scroll->idRecipient = $scrollThread->getOtherUser($idUser)->getId(); 00071 $scroll->nameRecipient = $scrollThread->getOtherUser($idUser)->username; 00072 00073 $scroll->idThread = $scrollThread->id; 00074 00075 // Falls kein Betreff uebergeben wurde, den des Thread setzen 00076 if (!$scroll->subject) 00077 { 00078 $scroll->subject = $scrollThread->subject; 00079 } 00080 00081 // SR als fuer Einfuegen in Datenbank vorbereitet markieren 00082 $scroll->setValid(); 00083 00084 // Falls Thread von einem der Benutzer geloescht wurde, dies rueckgaengig 00085 // machen 00086 if ($scrollThread->deleted != 0) 00087 { 00088 $scrollThread->delete(0, false); 00089 } 00090 00091 return $scroll; 00092 } 00093 00094 // Empfaenger 00095 00096 // Falls Name zu lang 00097 if (strlen($scroll->nameRecipient) > 20) 00098 { 00099 $scroll->idRecipient = false; 00100 00101 $flagError = true; 00102 } 00103 00104 // Pruefen, ob Empfaenger in der Datenbank vorhanden ist 00105 $rowRecipient = $this->_getTable('user_data')->select() 00106 ->where('username = ?', $scroll->nameRecipient)->fetchRow(); 00107 00108 // Falls Benutzer nicht vorhanden oder der Benutzer sich selbst eine SR 00109 // schicken will 00110 if ( !$rowRecipient || $rowRecipient->id == $idUser) 00111 { 00112 $scroll->idRecipient = false; 00113 00114 $flagError = true; 00115 } 00116 else 00117 { 00118 // ID und Name des Empfaengers 00119 $scroll->idRecipient = $rowRecipient->id; 00120 $scroll->nameRecipient = $rowRecipient->username; 00121 00122 // ID und Name des Autors 00123 $scroll->idAuthor = $idUser; 00124 $scroll->nameAuthor = $username; 00125 } 00126 00127 // Falls keine Fehler aufgetreten sind, Schriftrolle als geprueft markieren 00128 if (!$flagError) 00129 { 00130 $scroll->setValid(); 00131 } 00132 00133 return $scroll; 00134 }
| Dsao_Model_Scroll_Scroll::_sendScrollNotificationMail | ( | Dsao_User $ | user, | |
| Dsao_Scroll $ | scroll | |||
| ) | [protected] |
Schickt einem Benutzer eine Benachrichtigung ueber eine erhaltene Schriftrolle.
| $user | Dsao_User, Benutzer | |
| $scroll | Dsao_Scroll, Schriftrolle |
Definiert in Zeile 144 der Datei Scroll.php.
Benutzt Dsao_View_Smarty::sprintf().
Wird benutzt von insertScroll().
00145 { 00146 // int, ID des Threads 00147 $idThread = ($scroll->idThread == 0 ? $scroll->id : $scroll->idThread); 00148 00149 // Inhalt der Benachrichtigungsmail 00150 $content = Dsao_View_Smarty::sprintf('scroll_scroll_send_mail_content', 00151 array 00152 ( 00153 'nameAuthor'=> $scroll->nameAuthor, 00154 'subject' => $scroll->subject 00155 )); 00156 00157 // string, Betreff der Benachrichtigungsmail 00158 $subject = Dsao_View_Smarty::sprintf('scroll_scroll_send_mail_subject', 00159 array('nameAuthor' => $scroll->nameAuthor)); 00160 00161 // Mail erstellen und verschicken 00162 $mail = new Dsao_Mail($user, $subject, $content); 00163 $mail->send(); 00164 }
| Dsao_Model_Scroll_Scroll::insertScroll | ( | Dsao_Scroll $ | scroll | ) |
Einfügen einer neuen Schriftrolle.
Fuegt eine Schriftrolle in die DB ein. Achtung: Keine Integritaetspruefung und Filterung!
| $scroll | Dsao_Scroll, Schriftrolle |
Definiert in Zeile 175 der Datei Scroll.php.
Benutzt _checkScrollData(), _sendScrollNotificationMail(), Dsao_Scroll::insert() und Dsao_DataHandler_Abstract::isValid().
00176 { 00177 $this->_checkScrollData($scroll); 00178 00179 // Falls keine Fehler aufgetreten sind, Schriftrolle einfuegen 00180 if ($scroll->isValid()) 00181 { 00182 $scroll->insert()->setReadOnly(); 00183 00184 // Ggf. Empfaenger eine Mailbenachrichtigung schicken 00185 $recipient = new Dsao_User(array('id' => $scroll->idRecipient)); 00186 $recipient->refresh(); 00187 00188 if ($recipient->scrollMailNotification) 00189 { 00190 $this->_sendScrollNotificationMail($recipient, $scroll); 00191 } 00192 } 00193 00194 return $scroll; 00195 }
1.5.7.1