Ö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. | |
Definiert in Zeile 9 der Datei Scrollset.php.
| Dsao_Scrollset::__construct | ( | array $ | scrolls = array() |
) |
Initiailisiert Objekt.
| $scrolls | array, Array von Objekten der Klasse Dsao_Scroll |
Definiert in Zeile 22 der Datei Scrollset.php.
Benutzt appendArray().
00023 { 00024 // Uebergebene Daten anhaengen 00025 $this->appendArray($scrolls); 00026 }
| Dsao_Scrollset::appendArray | ( | array $ | scrolls | ) |
Haengt mehrere Schriftrollen an das Scrollset an.
| $scrolls | array, Array mit Objekten des Typs Dsao_Scroll |
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.
| $scroll | Dsao_Scroll, Schriftrolle |
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.
| $thread1 | mixed | |
| $thread2 | mixed |
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.
| $idUser | int |
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.
| $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 |
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.
| $idScroll | int, ID der Schriftrolle |
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.
| $toArrayDecoded | bool, Ob SR dekodiert und als Array zurueck gegeben werden sollen |
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.
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.
| $idUser | int, Benutzer-ID | |
| $read | bool, Gelesen / Ungelesen |
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.
| $reset | bool, Ob vorhandene Schriftrollen vorher geloescht werden sollen |
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.
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 }
1.5.7.1