Hallo Patrick,
nachfolgendes ist etwas verwirrend:
Zusammenfassend: Die Templates für deine indexAction / addAction müssen hier liegen: \ MeinController \Views\frontend\mein_controller\ und dort dann jeweils index.tpl und add.tpl.
Soll *\MeinController* das Pluginverzeichnis sein?
Was habe ich nun anders gemacht?
Ich habe die Ordnerstrucktur geändert:
/Mein_Plugin/Bootstrap.php
/Mein_Plugin/Controllers/Frontend/MeinController.php
/Mein_Plugin/Views/frontend/mein_controller/index.tpl
/Mein_Plugin/Views/frontend/mein_controller/add.tpl
Hier noch einmal der Controller:
View()->addTemplateDir(dirname( __FILE__ ) . "/../../Views/");
}
public function indexAction()
{
$this->View()->loadTemplate("frontend/mein_controller/index.tpl");
}
public function addAction(Enlight_Controller_ActionEventArgs $args)
{
$request = $this->Request();
$view = $this->View();
$myNumber = (int)$request->getParam('myNumber', 0);
$result = $myNumber + 10;
$view->assign('result', $result);
}
}
Lasse ich die indexAction weg, geht gar nichts mehr - es wird nur die Startseite angezeigt.
index.tpl:
{extends file="frontend/index/index.tpl"}
{block name="frontend_index_content"}
{s name='SitemapHeader'} Rechenbeispiel{/s}
Bitte geben Sie eine Zahl ein
Rechnen
{/block}
und meine add.tpl:
{block name="frontend_index_content" append}
Ergebnis: {$result}
{/block}
Wenn ich mir nun den Aufruf des Controllers anschaue, dann habe ich jetzt einen Fehler:
GET http://localhost/sh530/meincontroller [HTTP/1.0 500 Internal Server Error 2949ms]
Es wird mir zwar das Rechenbeispiel angezeigt und ich kann auch ein Ergebnis anfordern, doch wenn ich das Ergebnis holen will, dann kommt:
Invalides Formular-Token!
Die Aktion konnte aufgrund eines invaliden Formular-Tokens nicht durchgeführt werden.
Ein neues Token wurde bereits generiert.Bitte gehen Sie in Ihrem Browser eine Seite zurück und starten die Aktion erneut.
Die Adresse im Browser:
http://localhost/sh530/meincontroller/add
Der Fehler in der Konsole wird auch noch angezeigt.
Was mich auch wundert:
Der Controller wird mit GET aufgerufen, doch die Daten (die Zahl) werden mit POST übermittelt - liegt da eventuell der Fehler?
Es tut mir Leid, dass ich anfange zu nerven - ich möchte doch nur das es funktioniert und ich endlich darauf aufbauen kann.