Sample Code
Die UniversesummaryView Klasse
-
<?php
-
class UniverseSummaryView extends View {
-
// Unser Template sit das
-
protected $_template = ‘universesummary.tpl’;
-
// Wir wollen nur universe Objecte
-
protected $_objectName = ‘universe’;
-
-
// Ausgabe mit Daten füllen
-
// Felder die wir Bearbeiten wollen
-
public function ViewAssignElements () {
-
// Das Feld wollen wir verändern
-
$this->setElementEdit (‘name’);
-
// Alle Sonnen besorgen
-
$sunList =$this->getObject ()->getSunList();
-
// Durchgehen und diese View hinzufügen
-
while ($sun = $sunList->next ())
-
$this->appendElementsFromView (‘sun’, new SunSummaryView ($sun));
-
// Den Text des Submitt Knopf´s festlegen
-
$this->setFormButton(‘Speichern’);
-
}
-
// Object Speichern beim Submit
-
public function ViewParseRequest() {
-
// Da in assignElements ein Pointer übergeben wird
-
// und das Element schon in parent::parseRequest () geändert wird….
-
// könnnen wir uns das hier, ha!
-
$this->getObject ()->save ();
-
}
-
}
-
?>
Das Template der UniverseSummary
Universum-Id: {$elements.id} Universumname: {$elements.name} Nicht Aktiv: {$elements.fl_disabled}{foreach item=sun from=$elements.sun} Sonnen-Id: {$sun.id} Sonnenname: {$sun.name} Nicht Aktiv: {$sun.fl_disabled} {/foreach}
Eine Liste aller Sonnen erstellen und druchgehen, dabei den Namen jeder Sonne ausgeben:
-
$myList = new FRList (new Sun);
-
while ($mySun = $myList->next ()) {
-
}
Eine zufällige Persion in ein Zufälliges Land setzen:
-
$myList = new FRList (new People);
-
if ($myObj = $myList->addOrderByRand ()->setLimit (1)->next ()) {
-
if ($cntry = $myList->setObject (new Country)->addOrderByRand ()->setLimit (1)->next ()) {
-
$myObj->setCountry ($cntry);
-
‘;
-
}
-
}
Die View “SunView” mit einer zufälligen Sonne anzeigen:
-
$myList = new FRList (new Sun);
-
if ($mySun = $myList->addOrderByRand ()->setLimit (1)->next ()) {
-
}
Und in kurz:
-
echo factory::get (‘SunView’, factory::get (‘FRList’, ‘Sun’)->addOrderByRand ()->setLimit (1)->next ());
Das gleiche macht:
-
echo factory::get (new SunView, factory::get (new FRList, new Sun)->addOrderByRand ()->setLimit (1)->next ());
Anzahl der sichtbaren Menschen ausgeben:
-
$myList = new FRList (‘People’);
Alle Objekte die irgendwie mit dem Universum Objekt verknüpft sind ausgeben:
-
function printDepent($list) {
-
while ($obj = $list->next ()) {
-
echo $obj;
-
printDepent ($obj->getDependingList());
-
}
-
}
-
$xtemp = new FRList (new Universe);
-
printDepent($xtemp);
Die “userLoginView” als Prototyp
-
<?php
-
class userloginview extends View {
-
-
protected $_template = ‘userlogin.tpl’;
-
-
// Ausgabe mit Daten füllen
-
// FormularFelder
-
public function ViewAssignElements () {
-
$thi–>addElement (‘pass’, factory::get (new FRElement, array (‘name’ => ‘pass’, ‘type’ => ‘xsd:string’, ‘showEdit’ => true)));
-
$this->addElement (‘login’, factory::get (new FRElement, array (‘name’ => ‘login’, ‘type’ => ‘xsd:string’, ‘showEdit’ => true, ‘value’ => $_COOKIE[‘oldlogin’])));
-
if (registry::isUserLogedin())
-
$this->setFormButton(‘Abmelden’);
-
else
-
$this->setFormButton(‘Anmelden’);
-
}
-
// Weitere Variablen
-
public function ViewParse () {
-
$this->assign(‘name’,registry::getUser()->name);
-
$this->assign(‘isLogedIn’,registry::isUserLogedin());
-
$this->assign(‘wrongLogin’,self::$wrongLogin);
-
self::$wrongLogin = false;
-
}
-
-
// Das wird aufgerufen wenn wir ein Post/Get geschickt haben
-
public function ViewParseRequest() {
-
// logoff
-
if (registry::isUserLogedin()) {
-
// Wieder auf den Anonymen setzen
-
User::doLogout ();
-
// login
-
} else {
-
// Hats geklappt?
-
if (!User::doLogin ($this->getElementValue(‘login’), $this->getElementValue(‘pass’)))
-
self::$wrongLogin = true;
-
}
-
}
-
}
-
?>
