Document Controller

Vorbereitung

In diesem Tutorial wird ein DocumentController erzeugt. Es setzt auf dem 5-minutes-starterguide von phpcube.opencube.org auf.

Einbinden des Documentcontrollers

Um das Template und den Controller zu verbinden, wird in die erste Zeile des Templates folgender Code eingebunden:


<?@ cube:documentcontroller namespace="org.sample" file="controllers/controller" class="controller" ?>

Beim Laden des Templates wird nun die Klasse "sample_controller" in der Datei "org/sample/controllers/controller" aufgerufen.

Erstellen des Controllers

Unter "org/sample/" wird nun ein neuer Ordner angelegt "controllers". In diesem Ordner erstellt man eine Datei "controller.php"


<?php
class sample_controller extends cube_document{
	function document_onload(){
		echo 'greetings from sample_controller!';
	}
}
?>

Beim Laden des Templates wird automatisch die "document_onload()" Methode des Controllers aufgerufen.

Kommunikation zwischen Controller und Template

Um im Controller auf das Template zugreifen zu können, kann man z.B. mit placeholdern arbeiten. Dazu fügt man im Template folgendes ein:


<cube:stylesheet>
<?@ cube:documentcontroller namespace="org.sample" file="controllers/controller" class="controller" ?>
	<html>
		<body>
			<html:placeHolder id="samplePlaceholder"/>
		</body>
	</html>
</cube:stylesheet>

Um den placeholder vom Controller aus anzusprechen, fügt man folgende Zeile in die "document_onload()" Methode des Controllers ein:

$this->all['samplePlaceholder']->setValue('some dummy text');