Hallo,
ich arbeite derzeit ein bisschen am CMS und habe ein Problem beim Anzeigen von Snippets. Ich unterteile in Module, ViewHelper(meist einfache Funktionen) und Snippets(SubController) die mir z.B. die Navigation generieren.
Der Blog Controller wird aufgerufen und lädt das Template Blog, innerhalb dieses Templates befindet sich der Aufruf zum laden der beiden Snippets. Die Funktion parseView() sendet dies dann an die Response Klasse.
Blog_Controller <= Modul
View.php
Die Template Datei "Blog.htm"
Beispiel aus dem Snippet Navigation
Das Problem ist nun, dass Zunächst die beiden Snippets ausgegeben werden und danach erst der eigentliche Inhalt des Blog Controllers.
Vielleicht habe ich auch einen Fehler in meiner Logik, wenn ja bitte weißt mich darauf zurecht. Vielleicht sollte ich es auch in einer anderen Ebene der MVC-Schicht implementieren.
Mfg
Frucht
ich arbeite derzeit ein bisschen am CMS und habe ein Problem beim Anzeigen von Snippets. Ich unterteile in Module, ViewHelper(meist einfache Funktionen) und Snippets(SubController) die mir z.B. die Navigation generieren.
Der Blog Controller wird aufgerufen und lädt das Template Blog, innerhalb dieses Templates befindet sich der Aufruf zum laden der beiden Snippets. Die Funktion parseView() sendet dies dann an die Response Klasse.
Blog_Controller <= Modul
PHP:
public function execute() {
$entries = $this->model->getPosts();
$this->view->setView("blog"); <= hier rufe ich die Blog.htm auf
$this->view->assign('entries', $entries);
$this->view->parseView();
}
PHP:
public function parseView()
{
$this->loadView();
$response = Registry::get("response");
$response->write($this->templateOutput);
}
....
public function loadSnippet($snippetPosition, $params = null)
{
$snippet = $this->snippet->execute($snippetPosition);
if($snippet) {
return $snippet->execute($params);
} else {
return 'Unknown Snippet:';
}
}
PHP:
<?php $this->loadSnippet('head'); ?>
<div id="content-left">
..............
</div>
<div id="content-right">
test
</div>
<?php $this->loadSnippet('foot'); ?>
PHP:
public function __construct()
{
$this->view = new View();
$this->model = new Model();
}
public function execute() {
$entries = $this->model->getMenu();
$this->view->setView('header');
$this->view->assign('entries', $entries);
$this->view->parseView();
}
Vielleicht habe ich auch einen Fehler in meiner Logik, wenn ja bitte weißt mich darauf zurecht. Vielleicht sollte ich es auch in einer anderen Ebene der MVC-Schicht implementieren.
Mfg
Frucht
Zuletzt bearbeitet: