Ja das mit dem OOP ist manchmal so eine Sache
Ich habe 2 Controller eingebunden und möchte bestimmte Funktionen in eine Helferklasse auslagern, damit ich von der Bootstrap und den jeweiligen Controllern zugreifen kann.
Diese habe ich in /Components abgelegt und den Namespace im Bootstrap registriert mit
$this->Application()->Loader()->registerNamespace(
'Shopware\Plugins\MDPlugin',
$this->Path() . 'Components/'
);
Die Helferklasse sieht als Beispiel vereinfacht wiefolgt aus
namespace Shopware\Plugins\MDPlugin\Components;
class MeinPluginExt
{
public function meineMethode()
{
...............
}
}
Wie ruf ich diese Methoden im Controller auf bzw. was habe ich noch vergessen ?
Hallo,
löchen Sie Components von Ihre registerNamespace funktion
$this->Application()->Loader()->registerNamespace(
'Shopware\Plugins\MDPlugin',
$this->Path()
);
Viele Grüße,
Ahmad
Edit:
ich habe mir nochmal gedacht und ich galube das Problem in Ihrem Code ist Shopware\Plugins weil Shopware\Plugins namespaces ist regiestert mit Plugins Ordener.
also probiern mal löchen diese Plugin von Ihrem Namespace.
$this->Application()->Loader()->registerNamespace(
'Shopware\MDPlugin',
$this->Path()
);
thanks
Wie kann ich in der Helferklasse auf
Shopware()-\>Request()-\>getParam(**"xy");**
Habe keinen Zugriff drauf
class Helper extends Zend_Controller_Request_Http
{
$data=$this->get("demo");
}
?
@megadruck schrieb:
thanks
Wie kann ich in der Helferklasse auf
Shopware()->Request()->getParam(„xy“);
Habe keinen Zugriff drauf
class Helper extends Zend_Controller_Request_Http
{
$data=$this->get(„demo“);
}
?
Sie können Request() schicken von Ihre Controller zu Ihre HelferKlasse via __construct funktion in Ihre HelferKlasse
Ich habe einen anderen Weg gefunden wie es funktioniert.
Ich benenn die Class in mmeinem Fall zb
class Shopware\_Plugins\_Frontend\_MDUpload\_Components\_UploadHelper
Dann brauche ich diese nur aufzurufen mit
$helper = new Shopware_Plugins_Frontend_MDUpload_Components_UploadHelper;
EIne letzte Frage habe ich zu " The provided X-CSRF-Token is invalid "
public function preDispatch()
{
if( in_array($this->Request()->getActionName(),
array( "getConfig","doDelete","doInsert" )) )
{
Shopware()->Plugins()->Controller()->ViewRenderer()->setNoRender();
}
$this->admin = Shopware()->Modules()->Admin();
Shopware()->Session()->mdID = ($this->Request()->get("id"))? (int)$this->Request()->get("id"):Shopware()->Session()->get("mdID");
if (!$this->admin->sCheckUser()) {
return $this->redirect(
array(
'controller' => 'account',
'action' => 'index',
'sTarget' => 'transfer',
'sTargetAction' => 'index'
)
);
}
}
Der Kunde ruft auf
/transfer/index/id/123456/
und springt zum Login, wenn dieser nicht eingeloggt ist. Danach geht es weiter zu
/transfer/index/
Die id habe ich vorher in eine Session gespeichert und rufe diese ab.
Problem: Wenn die Session abläuft gibt es ein redirect zu, /account/ und nach dem Login
kommt die meldung " The provided X-CSRF-Token is invalid. Please go back, reload the page and try again "
Wie kann ich das vermeiden ?
Soweit klappt jetzt alles. Danke für die Hilfe