Hallo zusammen,
ich bin vorläufig daran gescheitert, meine alten Module auf Oxid 6 zu portieren. (An Dokumentationen mangelt es nicht, ich habe mir auch das PayPal-Beispiel angesehen.) Jedenfalls will ich jetzt erstmal ein einziges Modul mit Metadata 1, ohne Namespace-Gedöns und ohne Composer unter Oxid 6 zum laufen bringen, was ja angeblich immer noch problemlos möglich sein soll. Leider will auch das nicht klappen. Ich hoffe hier auf einen kleinen Fingerzeig von euch, vielleicht kann ich mich ja von dort aus weiterhangeln…
Das Modul soll ein paar zusätzliche Dinge im Adress-Formular validieren. Dazu erweitert es oxuser und nutzt dazu zunächst mal eine 1:1 Kopie der Funktion checkValues (die dann später angepasst wird).
Das Modul wird im Backend angezeigt, kann aktiviert werden. Im Frontend kommt es allerdings zum Absturz, Fehlermeldung wenig aussagekräftig (Exception…)
Durch Auskommentieren von Code-Zeilen habe ich festgestellt, dass schon die erste Zeile in der Funktion checkValues für den Absturz sorgt:
class addresscheck extends oxuser
{
public function checkValues($sLogin, $sPassword, $sPassword2, $aInvAddress, $aDelAddress)
{
$this->_checkLogin( $sLogin, $aInvAddress ); // <== sorgt direkt für Absturz
Im Prinzip schon, ich kann im Moment daraus nur leider keine Korrektur ableiten.
Diese Zeile ist ja der unveränderte Code der Core-Funktion, allerdings vor Oxid 6.
Mit der Oxid 6-Fassung komme ich allerdings auch nicht über die erste Zeile hinaus.
Verwende ich die erste Zeile der neuen Version von checkValues, also $oInputValidator = Registry::getInputValidator();
bekomme ich diese Fehlermeldung:
[uncaught error] [type E_ERROR] [file /srv/v-host-name/vendor/oxid-esales/oxideshop-ce/source/Core/Exception/ExceptionHandler.php] [line 114] [code ] [message Uncaught TypeError: Argument 1 passed to OxidEsales\EshopCommunity\Core\Exception\ExceptionHandler::handleUncaughtException() must be an instance of Exception, instance of Error given in /srv/v-host-name/vendor/oxid-esales/oxideshop-ce/source/Core/Exception/ExceptionHandler.php:114
Stack trace:
#0 [internal function]: OxidEsales\EshopCommunity\Core\Exception\ExceptionHandler->handleUncaughtException(Object(Error))
#1 {main}
thrown]
Alte Schreibweise geht nicht, neue auch nicht - und zu diesem Zeitpunkt hab ich noch nichts eigenes hinzugefügt.
Ich stehe auf dem Schlauch, wie ich so ein neues Modul bauen soll…