PDA

Vollständige Version anzeigen : Zentrales View im ActionController?!


Nilson
10.08.2007, 14:07
Hi, nach einer langen Pause mit dem ZF wollte ich nun mal wieder etwas programmieren...

naja nun hapert es aber schon an meiner Erweiterung der Action-Klasse


abstract class Nilson_Controller_Action extends Zend_Controller_Action
{
protected $_template = 'index/index.phtml';
protected $_cacheTpl = false;
protected $_cacheId = false;
protected $_cacheTag = array();





public function init()
{
$this->initView(); // Get View
}

public function _destruct()
{
if (!$this->_cacheTpl)
{
$this->_cacheTpl = $this->view->render($this->_template);

if ($this->_cacheId)
{
Zend_Registry::get('templateCache')->save($this->_cacheTpl, $this->_cacheId, $this->_cacheTag);
}
}
echo $this->_cacheTpl; // Show Page
}
}


Naja Problem ist dass er gar nicht das Index-Template rendert sondern das Template was den Namen des Controllers hat.... :(

Hoffe ihr versteht was ich meine :)

MFG Nilson

Remi
11.08.2007, 01:07
Seit Release 1.0.0 wird der ViewRenderer automatisch aktiviert. Daher fällt der Aufruf von initView() nun weg, da dies der ViewRenderer bereits übernimmt. Weiterhin sorgt der ViewRenderer dafür, dass die standardmäßigen Views innerhalb der vom Zend Framework empfohlenen Verzeichnisstruktur aufgerufen werden.

Warum Du in Deinem Code im Destruktor versuchst, etwas zu rendern, verstehe ich nicht und das wird vermutlich auch das Problem sein (der ViewRenderer ermittelt im Vorfeld bereits den passenden View und rendert ihn - ob Dein Code im Destruktor dann überhaupt noch zum Browser gelangt, müßte überprüft werden).

Schau Dir am besten die aktuelle Doku an und entnehme daraus den Code für einen ActionController.

Remi

KingCrunch
11.08.2007, 01:18
Is scho bissel her, aber meines Erachtens wurde der Destruktor wirklich am Ende aufgerufen, wo keine Ausgabe mehr möglich war. Aber auch wenns geht, ist das schon etwas ... nunja ... hässlich ;) Nebenbei heißt es __destruct (zwei Unterstriche) ;)

Nilson
11.08.2007, 12:10
Oh meine Güte.....ich hasse es nach Pausen wieder mit etwas anzufangen....man handelt so verplant und umkständlich und macht dann noch totale denkfehler...habe mein Problem bereits gelöst und es auch ganz anders gemacht....nicht so unschön xD

Trotzdem danke.. :)

MFG Nilson