Thoni
February 22, 2024, 2:06pm
1
Hallo,
ich möchte den Link zur Gastbestellung in eine eigene Funktion umleiten.
die hiddenfields zum Button sehen so aus:
<input type="hidden" name="cl" value="guestOrder">
<input type="hidden" name="fnc" value="createGuestUser">
die Klasse binde ich so ein:
‘extend’ => array(
‘oxuser’ => ‘guestOrder/controller/guestOrder’,
… und …
class guestOrder extends guestOrder_parent {
Die Klasse wird nicht gefunden.
Ist das der komplett falsche Weg?
Gruß
Thoni
Mit extend
bleibt der Controller gleich.
Korrekt müsste es lauten
<input type="hidden" name="cl" value="user">
Dann sollte Dein OXID auch die neue Methode createGuestUser
von Dir finden.
Thoni
February 23, 2024, 2:11pm
3
Leider nicht:
OXID Logger.ERROR: ERROR_MESSAGE_SYSTEMCOMPONENT_FUNCTIONNOTFOUND createGuestUser
Welche Version hast den im Einsatz?
Thoni
February 23, 2024, 3:12pm
6
Ich habe auch schon probiert, oxuser aussen vor zu lassen:
'files' => array('guestOrder' => 'guestOrder/controller/guestOrder.php',
… und …
use OxidEsales\Eshop\Application\Controller\FrontendController;
class guestOrder extends FrontendController {
Dann bekomme ich ein :
OXID Logger.ERROR: ERROR_MESSAGE_SYSTEMCOMPONENT_CLASSNOTFOUND
Was möchte ich machen?
Die Registrierung funktioniert über mehrere Steps, statt auf einer Seite.
Dies soll nun auch mit der Gastbestellung so sein.
Thoni
March 4, 2024, 1:21pm
7
Ich habe nochmal neu angefangen.
metatdata V2:
‘controllers’ => array(
‘tk_myguestregister_mygr’ => tk\myguestregister\application\controllers\mygr::class
),
source/modules/tk/myguestregister/application/controllers/mygr.php:
class mygr extends \OxidEsales\Eshop\Application\Controller\FrontendController
{
public function render()
{
parent::render();
return “guestframe.tpl”;
}
}
per SSH:
php vendor/bin/oe-console oe:module:install-configuration source/modules/tk/myguestregister
Fehler:
EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND tk\myguestregister\application\controllers\mygr
Warum findet er die Klasse nicht?
Thoni:
Was möchte ich machen?
Du warst im Prinzip schon auf der richtigen Fährte.
Die Fehlermeldung
Gibt schon einen Hinweis, er sucht als Controller in Deinem Fall eine Komponente .
Das OXID Framework ist so aufgebaut, dass es unter
Application/
die Unterverzeichnisse
Controller/
und Component/
gibt.
Bei
<input type="hidden" name="cl" value="user">
könnte es sich daher anscheinend in Deinem Anwendungsfall um die Komponente
/Application/Component/UserComponent.php
handeln welche über Dein Modul erweitern musst um Deine Methode createGuestUser
darüber bekannt zu machen.
Hinweis: Eine Komponente ist ein Controller der auf unterschiedliche Seitentypen also seitenübergreifend verwendet wird.
1 Like
Thoni
March 27, 2024, 4:52pm
9
Danke.
Ich werde mich mal mehr mit dem Composer beschäftigen.
Mit Conposer hat dies nichts zu tun.
Dein Punkt oben könnte etwas mit Composer zu tun, indem den Autoload in composer.json
Datei vergessen Composer.json for an OXID eShop Module — OXID eShop developer documentation 6.2.0 documentation
system
Closed
March 27, 2025, 8:22pm
12
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.