Dsao_Scrollset Klassenreferenz

Klasse repraesentiert eine Sammlung von Schriftrollen. Mehr ...

Aufstellung aller Elemente

Öffentliche Methoden

 __construct (array $scrolls=array())
 Initiailisiert Objekt.
 appendScroll (Dsao_Scroll $scroll)
 Haengt eine Schriftrolle an das Scrollset an.
 appendArray (array $scrolls)
 Haengt mehrere Schriftrollen an das Scrollset an.
 delete ($idUser=0)
 Loescht alle enthaltenen Schriftrollen.
 fetchScrolls (array $sqlWhere=array(), $loadContents=true, $reset=true)
 Laedt Schriftrollen anhand der uebergebenen WHERE-Kondition aus der DB.
 getScroll ($idScroll)
 Gibt die Schriftrolle mit der uebergebenen ID zurueck.
 getThreads ($toArrayDecoded=false)
 Gibt einen nach Threads geordneten Array aller Schriftrollen zurueck.
 isRead ()
 Gibt zurück, ob alle Schriftrollen gelesen sind.
 markRead ($idUser=0, $read=true)
 Markiert alle enthaltenen Schriftrollen als gelesen.
 refresh ($reset=true)
 Laedt Schriftrollen neu aus der Datenbank.
 toArrayDecoded ()
 Gibt Schriftrollen dekodiert als Array zurueck.

Öffentliche, statische Methoden

static compareThreads ($thread1, $thread2)
 Vergleich von Threads.

Geschützte Attribute

 $_sqlSelect = null
 Zend_Db_Select, SQL-Select fuer das Laden der Schriftrollen.


Ausführliche Beschreibung

Klasse repraesentiert eine Sammlung von Schriftrollen.

Autor:
DSAo-Md

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

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

Definiert in Zeile 9 der Datei Scrollset.php.


Beschreibung der Konstruktoren und Destruktoren

Dsao_Scrollset::__construct ( array $  scrolls = array()  ) 

Initiailisiert Objekt.

Parameter:
$scrolls array, Array von Objekten der Klasse Dsao_Scroll
Rückgabe:
void

Definiert in Zeile 22 der Datei Scrollset.php.

Benutzt appendArray().

00023   {
00024     // Uebergebene Daten anhaengen
00025     $this->appendArray($scrolls);
00026   }


Dokumentation der Elementfunktionen

Dsao_Scrollset::appendArray ( array $  scrolls  ) 

Haengt mehrere Schriftrollen an das Scrollset an.

Parameter:
$scrolls array, Array mit Objekten des Typs Dsao_Scroll
Rückgabe:
Dsao_Scrollset, Fliessendes Interface

Definiert in Zeile 51 der Datei Scrollset.php.

Benutzt appendScroll().

Wird benutzt von __construct().

00052   {
00053     foreach ($scrolls as $scroll)
00054     {
00055       $this->appendScroll($scroll);
00056     }
00057 
00058     return $this;
00059   }

Dsao_Scrollset::appendScroll ( Dsao_Scroll scroll  ) 

Haengt eine Schriftrolle an das Scrollset an.

Parameter:
$scroll Dsao_Scroll, Schriftrolle
Rückgabe:
Dsao_Scrollset, Fliessendes Interface

Definiert in Zeile 34 der Datei Scrollset.php.

Wird benutzt von appendArray().

00035   {
00036     // Falls eine ID vorhanden
00037     if ($scroll->id)
00038     {
00039       $this->offsetSet($scroll->id, $scroll);
00040     }
00041 
00042     return $this;
00043   }

static Dsao_Scrollset::compareThreads ( thread1,
thread2 
) [static]

Vergleich von Threads.

Parameter:
$thread1 mixed
$thread2 mixed
Rückgabe:

Definiert in Zeile 68 der Datei Scrollset.php.

00069   {
00070     // array, Die letzten Schriftrollen der Threads
00071     $lastScroll1 = array_pop($thread1);
00072     $lastScroll2 = array_pop($thread2);
00073 
00074     // Erstellungszeit der letzten Schriftrollen vergleichen
00075     if ($lastScroll1['timestamp'] == $lastScroll2['timestamp'])
00076     {
00077       return 0;
00078     }
00079 
00080     return ($lastScroll1['timestamp'] > $lastScroll2['timestamp'] ? -1 : 1);
00081   }

Dsao_Scrollset::delete ( idUser = 0  ) 

Loescht alle enthaltenen Schriftrollen.

Parameter:
$idUser int
Rückgabe:
Dsao_Scrollset, Fliessendes Interface

Definiert in Zeile 89 der Datei Scrollset.php.

00090   {
00091     // Durchgehen und löschen
00092     foreach ($this->getIterator() as $scroll)
00093     {
00094       $scroll->delete($idUser);
00095     }
00096 
00097     return $this;
00098   }

Dsao_Scrollset::fetchScrolls ( array $  sqlWhere = array(),
loadContents = true,
reset = true 
)

Laedt Schriftrollen anhand der uebergebenen WHERE-Kondition aus der DB.

Parameter:
$sqlWhere array, Array mit dem Format ('xyz = ?' => 5)
$loadContents bool, Ob auch Inhalte der SR geladen werden sollen
$reset bool, Ob vorhandene Scrolls geloescht werden sollen
Rückgabe:
Dsao_Scrollset, Fliessendes Interface

Definiert in Zeile 108 der Datei Scrollset.php.

Benutzt Dsao_Registry::get().

Wird benutzt von refresh().

00109   {
00110     // Falls Select-Statement noch nicht vorbereitet wurde
00111     if (null === $this->_sqlSelect)
00112     {
00113       $this->_sqlSelect = Dsao_Registry::get('db')->select()
00114         ->from('scroll_header');
00115 
00116       if ($loadContents)
00117       {
00118         $this->_sqlSelect->joinUsing('scroll_content', 'id', 'content');
00119       }
00120     }
00121     // WHERE-Klausel zuruecksetzen, falls neue uebergeben wurde
00122     else if (!empty($sqlWhere))
00123     {
00124       $this->_sqlSelect->reset('WHERE');
00125     }
00126 
00127     // WHERE-Klausel erzeugen
00128     foreach ($sqlWhere as $condition => $value)
00129     {
00130       // Falls kein assoziativer Array
00131       if (is_int($condition))
00132       {
00133         $this->_sqlSelect->where($value);
00134       }
00135       else
00136       {
00137         $this->_sqlSelect->where($condition, $value);
00138       }
00139     }
00140 
00141     // Ggf. bisherige Schriftrollen loeschen
00142     if ($reset)
00143     {
00144       // Daten zuruecksetzen
00145       $this->exchangeArray(array());
00146     }
00147 
00148     // Zeilen laden
00149     $scrolls = Dsao_Registry::get('db')->fetchAll($this->_sqlSelect);
00150 
00151     // Objekte mit Daten fuellen
00152     foreach ($scrolls as $scroll)
00153     {
00154       $this->offsetSet($scroll['id'], new Dsao_Scroll($scroll, false, true));
00155     }
00156 
00157     return $this;
00158   }

Dsao_Scrollset::getScroll ( idScroll  ) 

Gibt die Schriftrolle mit der uebergebenen ID zurueck.

Parameter:
$idScroll int, ID der Schriftrolle
Rückgabe:
Dsao_Scroll, Schriftrolle, ggf. leer

Definiert in Zeile 166 der Datei Scrollset.php.

00167   {
00168     // Falls Schriftrolle vorhanden
00169     if ($this->offsetExists($idScroll))
00170     {
00171       return $this->offsetGet($idScroll);
00172     }
00173 
00174     // Leere Schriftrolle zurueckgeben
00175     return new Dsao_Scroll(array('id' => $idScroll));
00176   }

Dsao_Scrollset::getThreads ( toArrayDecoded = false  ) 

Gibt einen nach Threads geordneten Array aller Schriftrollen zurueck.

Parameter:
$toArrayDecoded bool, Ob SR dekodiert und als Array zurueck gegeben werden sollen
Rückgabe:
array, Threads

Definiert in Zeile 185 der Datei Scrollset.php.

00186   {
00187     // array, Die enthaltenen Schriftrollen, nach Threads sortiert
00188     $threads = array();
00189 
00190     foreach ($this->getIterator() as $idScroll => $scroll)
00191     {
00192       // Falls dekodierte Arrays zurueck gegeben werden sollen
00193       if ($toArrayDecoded)
00194       {
00195         $scrollReturn = $scroll->toArrayDecoded();
00196       }
00197       else
00198       {
00199         $scrollReturn = $scroll;
00200       }
00201 
00202       // Falls die Thread-ID = 0 ist, ist dies die erste SR eines Threads
00203       if (0 == $scroll->idThread)
00204       {
00205         $threads[$scroll->id][0] = $scrollReturn;
00206 
00207         continue;
00208       }
00209 
00210       // Ansonsten ist dies keine Start-SR und es sollte eigentlich schon eine
00211       // Start-SR vorhanden sein, dies aber sicherheitshalber pruefen
00212       if (!isset($threads[$scroll->idThread]))
00213       {
00214         // Einfach das erste Feld leer lassen fuer die Start-SR
00215         $threads[$scroll->idThread][1] = $scrollReturn;
00216       }
00217       else
00218       {
00219         // Sonst einfach anhaengen
00220         $threads[$scroll->idThread][] = $scrollReturn;
00221       }
00222     }
00223 
00224     // Sortieren
00225     uasort($threads, 'Dsao_Scrollset::compareThreads');
00226 
00227     // Threads zurueckgeben
00228     return $threads;
00229   }

Dsao_Scrollset::isRead (  ) 

Gibt zurück, ob alle Schriftrollen gelesen sind.

Rückgabe:
bool, ob alle Schriftrollen gelesen

Definiert in Zeile 236 der Datei Scrollset.php.

00237   {
00238     foreach ($this->getIterator() as $scroll)
00239     {
00240       // Falls Schriftrolle ungelesen
00241       if (!$scroll->isRead())
00242       {
00243         return false;
00244       }
00245     }
00246 
00247     return true;
00248   }

Dsao_Scrollset::markRead ( idUser = 0,
read = true 
)

Markiert alle enthaltenen Schriftrollen als gelesen.

Parameter:
$idUser int, Benutzer-ID
$read bool, Gelesen / Ungelesen
Rückgabe:
void

Definiert in Zeile 257 der Datei Scrollset.php.

00258   {
00259     foreach ($this->getIterator() as $scroll)
00260     {
00261       $scroll->markRead($idUser, $read);
00262     }
00263   }

Dsao_Scrollset::refresh ( reset = true  ) 

Laedt Schriftrollen neu aus der Datenbank.

Parameter:
$reset bool, Ob vorhandene Schriftrollen vorher geloescht werden sollen
Rückgabe:
Dsao_Scrollset Fliessendes Interface

Definiert in Zeile 272 der Datei Scrollset.php.

Benutzt fetchScrolls().

00273   {
00274     // Falls Schriftrollen vorher bereits ausgelesen wurden
00275     if (null != $this->_sqlSelect)
00276     {
00277       // Neu laden
00278       $this->fetchScrolls(array(), $reset);
00279     }
00280 
00281     return $this;
00282   }

Dsao_Scrollset::toArrayDecoded (  ) 

Gibt Schriftrollen dekodiert als Array zurueck.

Rückgabe:
array, Schriftrollen

Definiert in Zeile 289 der Datei Scrollset.php.

00290   {
00291     $scrollsArray = array();
00292 
00293     foreach ($this as $scroll)
00294     {
00295       $scrollsArray[] = $scroll->toArrayDecoded();
00296     }
00297 
00298     return $scrollsArray;
00299   }


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

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