Hallo,
ich möchte gerne die gesamte Funktion getContent überschreiben. Die Funktion ist dafür zuständig, dass zB der Artikelname beim Anfrageformular in das Feld Artikel übergeben wird.
HIer möchte ich ein weiteres Case für ein weiteres Anfrageformular haben. Erweitere ich die Core-Funktion, dann klappt das auch so wie ich möchte.
case "detail":
if ($this->Request()->getParam('sOrdernumber', null) !== null) {
$getName = Shopware()->Modules()->Articles()->sGetArticleNameByOrderNumber($this->Request()->getParam('sOrdernumber'));
$text = Shopware()->Snippets()->getNamespace('frontend/detail/comment')->get('InquiryTextArticle');
$text .= " " . $getName;
$this->_elements[$id]["value"] = $text;
$element["value"] = $text;
}
break;
//für ein zweites Anfrage Formular
case "test":
if (!empty($this->Request()->sOrdernumber)){
$getName = Shopware()->Modules()->Articles()->sGetArticleNameByOrderNumber($this->Request()->sOrdernumber);
$text = "Mein Text: Blabla ".$getName;
$this->_elements[$id]["value"] = $text;
$element["value"] = $text;
}
break;
Da dies natürlich nicht updatefähig ist, wollte ich die Änderung über ein Plugin realisieren, was einfach nicht klappt. Die Shopwarebeschreibung dazu ist eher mau, von daher die Frage.
Ich habe nun einen Hook erstellt und registriert:
private function subscribeEvents()
{
$this->subscribeEvent(
'Shopware_Controllers_Frontend_Forms::getContent::replace',
'replacegetContent'
);
}
Dann wollte ich die komplette Funktion überschreiben:
protected function replacegetContent(Enlight_Hook_HookArgs $arguments)
{
Funktion 1zu1 hier wieder aufrufen und mit der kleinen Änderung überschreiben
}
Leider funktioniert das nicht, ich bekomme im Pluginmanager ein 500 Internal Server Error. Das Plugin liegt unter frontend im Ordner test, darin die Bootstrap.php.
Ich komme hier nicht weiter. Wenn ich den Hook unten wegnehmen, auch dann gibt es den 500er Fehler. Scheinbar ist also vielleicht schon ein Fehler bei der Registrierung, ich mache das aber genauso wie in der Doku beschrieben und finde hier keinen Fehler.
Vielleicht kann mir jemand etwas auf die Sprünge helfen.
Vielen Dank!