Dsao_Model_Scroll_Scroll Klassenreferenz

Modell des Schriftrollen-Controllers. Mehr ...

Klassendiagramm für Dsao_Model_Scroll_Scroll:

Dsao_Model_Scroll_Abstract Dsao_Model_Abstract

Aufstellung aller Elemente

Ö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.


Ausführliche Beschreibung

Modell des Schriftrollen-Controllers.

Autor:
DSAo-Md

http://www.gnu.org/licenses/gpl-3.0.html GNU Public License

Version:
SVN: $Id: Scroll.php 512 2009-06-19 08:11:48Z saviola777 $

Definiert in Zeile 9 der Datei Scroll.php.


Dokumentation der Elementfunktionen

Dsao_Model_Scroll_Scroll::_checkScrollData ( Dsao_Scroll scroll  )  [protected]

Prueft uebergebene Daten und gibt ein Array der Ergebnisse zurueck.

Parameter:
$scroll Dsao_Scroll, Schriftrolle
Rückgabe:
array, Ergebnisse der Pruefung

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.

Parameter:
$user Dsao_User, Benutzer
$scroll Dsao_Scroll, Schriftrolle
Rückgabe:
void

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!

Parameter:
$scroll Dsao_Scroll, Schriftrolle
Rückgabe:
Dsao_Scroll, die einzufuegende 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   }


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

Erzeugt am Fri Sep 18 19:04:12 2009 für DSA online - Morgendaemmerung von  doxygen 1.5.7.1