erst einmal vielen lieben Dank für Deine Antwort, über die ich mich SEHR gefreut habe.
Ich habe Deinen Codeschnipsel in den Controller eingefügt, aber leider funktioniert es nicht.
Hier mein gesamter Code:
Bootstrap.php
<?php class Shopware\_Plugins\_Frontend\_swagMeincontroller\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap
{
public function getVersion()
{
return '1.0.0';
}
public function getLabel()
{
return 'Meincontroller';
}
public function getDescription()
{
return 'Meincontroller';
}
public function getInfo()
{
return array(
'version' =\> $this-\>getVersion(),
'label' =\> $this-\>getLabel(),
'description' =\> $this-\>getDescription());
}
public function getCapabilities()
{
return array(
'install' =\> true,
'enable' =\> true,
'update' =\> false
);
}
public function install()
{
$metaDataCache = Shopware()-\>Models()-\>getConfiguration()-\>getMetadataCacheImpl();
$metaDataCache-\>deleteAll();
$this-\>subscribeEvent('Enlight\_Controller\_Dispatcher\_ControllerPath\_Frontend\_Meincontroller', 'onGetControllerPathFrontend');
return array('success' =\> true, 'invalidateCache' =\> array('backend', 'proxy'));
}
public function enable()
{
return true;
}
public function uninstall()
{
return true;
}
public function disable()
{
return true;
}
public function onGetControllerPathFrontend(Enlight\_Event\_EventArgs $args)
{
return $this-\>Path() . 'Controllers/Frontend/Meincontroller.php';
}
}
Controllers/Frontend/Meincontroller.php
<?php class Shopware\_Controllers\_Frontend\_Meincontroller extends Enlight\_Controller\_Action
{
public function init()
{
$this-\>View()-\>addTemplateDir(dirname(\_\_FILE\_\_) . "/../../Views/");
}
public function indexAction()
{
$this-\>View()-\>loadTemplate("frontend/index.tpl");
}
}
Views/frontend/index.tpl
{extends file='frontend/index/index.tpl'}
{block name='frontend\_index\_content'}
## Rechenbeispiel
Bitte geben Sie eine Zahl ein
Ergebnis abrufen
Ergebnis + 10: {$result}
{/block}
Leider lädt die Seite nun neu und in der Adressleiste steht '/Meincontroller/addAction' - und es wird mir die Startseite angezeigt.
Was mache ich falsch?
Bin etwas am verzweifeln.
Könntest Du bitte noch einmal helfen.
Der Aufruf muss so aussehen: /Meincontroller/add
Ich sehe aber keine addAction im Controller. Du kannst natürlich die Berechnungen auch in der indexAction() machen. Wenn Du das in der addAction machst, muss Du auch ein passendes Template erstellen. Für die indexAction hast du schon ein Template
Erst einmal vielen lieben Dank, Waldicom, für Deine Geduld.
O.K, aber so sieht es jetzt aus:
der Controller:
View()->addTemplateDir(dirname( __FILE__ ) . "/../../Views/");
}
public function indexAction()
{
$this->View()->loadTemplate("frontend/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);
}
}
in der .tpl:
{extends file="frontend/index/index.tpl"}
{block name="frontend_index_content"}
{s name='SitemapHeader'} Rechenbeispiel{/s}
Bitte geben Sie eine Zahl ein
Ergebnis abrufen
Ergebnis: {$result}
{/block}
komme nun nach dem Buton klicken auf die URL /Meincontroller/add - weiße Seite.
Habe auch versucht das template in der addAction zu laden: