/system/class_modul_votings_voting.php
Das zweite zum Modul gehörende Bean ist ein Voting. Da es vom Aufbau her quasi identisch zum Answer-Bean ist, sollen nur die Unterschiede betrachtet werden.
protected function updateStateToDb() {
$objStartDate = null;
$objEndDate = null;
if($this->getLongDateStart() != 0 && $this->getLongDateStart() != "")
$objStartDate = new class_date($this->getLongDateStart());
if($this->getLongDateEnd() != 0 && $this->getLongDateEnd() != "")
$objEndDate = new class_date($this->getLongDateEnd());
$this->updateDateRecord($this->getSystemid(), $objStartDate, $objEndDate, null);
$strQuery = "UPDATE ".$this->arrModule["table"]."
SET votings_voting_title ='".dbsafeString($this->getStrTitle())."'
WHERE votings_voting_id ='".dbsafeString($this->getSystemid())."'";
return $this->objDB->_query($strQuery);
}
Zusätzlich zur von der Answer bekannten Methode updateStateToDb() speichert das Voting-Bean noch das Start- und Ende-Datum in der Kajona-Date Tabelle.
Siehe hierzu auch http://apidocs.kajona.de/v3.3.0/modul_system/class_root.html#updateDateRecord.
protected function onInsertToDb() {
$objStartDate = null;
$objEndDate = null;
if($this->getLongDateStart() != 0 && $this->getLongDateStart() != "")
$objStartDate = new class_date($this->getLongDateStart());
if($this->getLongDateEnd() != 0 && $this->getLongDateEnd() != "")
$objEndDate = new class_date($this->getLongDateEnd());
return $this->createDateRecord($this->getSystemid(), $objStartDate, $objEndDate, null);
}
Neu hinzugekommen ist die Methode onInsertToDb(). Diese wird vom Framework immer dann aufgerufen, wenn bei einem Update des Beans erkannt wird, dass das Bean noch nie in der Datenbank persistiert wurde. Die Methode kann optional von Beans überschrieben werden, um Aktionen durchzuführen, die lediglich bei einem Insert notwendig sind.
In diesem Fall wäre es der Aufruf der Methode createDateRecord(), um initial die Datum-Werte anzulegen.
Siehe hierzu auch
- http://apidocs.kajona.de/v3.3.0/modul_system/class_model.html#updateObjectToDb
- http://apidocs.kajona.de/v3.3.0/modul_system/class_model.html#updateStateToDb
- http://apidocs.kajona.de/v3.3.0/modul_system/class_model.html#onInsertToDb
- http://apidocs.kajona.de/v3.3.0/modul_system/class_root.html#createDateRecord
Hinweis: Kajona bietet zwar die Verwaltung der Date-Werte an, jedoch muss diese explizit verwendet werden. Da viele Datensätze keine zugehörigen Date-Werte vorhalten, würde eine implizite Anlage der Werte zu einem unnötigen Speicherverbrauch führen.
Zusätzlich bietet das Voting-Bean noch die Methoden getVotings() sowie getAllAnswers(), wobei getVotings() als Fabrikmethode für Voting-Beans fungiert: die Methode liefert ein Array an verfügbaren Voting-Objekten zurück. Die Methode getAllAnswers() kann auf einer Instanz eines Voting-Beans aufgerufen werden und liefert eine Liste der dem Voting zugehörigen Answer-Objekte zurück.



