Modulerstellung Oxid 6.2

Hallo zusammen,

ich habe eine kurze Frage zur Modulerstellung in Oxid 6.2.
Aus irgendeinem Grund erscheinen selbsterstellte Module nicht im Backend. Um auszuschließen, dass es aufgrund von Programmierfehlern passiert, habe ich folgende “Basis-Module” gemäß Anleitung nachgebaut:
https://oxidforge.org/en/module-development-oxid6-benefit-from-new-features.html
https://docs.oxid-esales.com/developer/en/6.2/development/modules_components_themes/module/tutorials/module_setup.html

Die metadata.php und composer.json wurde angelegt. Der lokale Pfad wurde in repositories aufgeführt und das Modul schließlich über composer installiert.
Obwohl keine Fehlermeldungen kommen, erscheinen die Module nicht im Backend.
Auch eine manuelle Installation über vendor/bin/oe-console oe:module:install-configuration source/modules/<module-vendor>/<module-name> bringt keine Änderung.

Gibt es noch einen Trick, um das Modul sichtbar zu machen?
Vielen Dank für eure Unterstützung.

Die Infos sind ein wenig dürftig, um den Fehler einzugrenzen.
Sichtbar: Also angezeigt wird normalerweise erstmal jede Info einer Metadata, sofern das Modul im richtigen Ordner liegt. Wurde das Modul denn tatsächlich an die richtige Stelle kopiert? (/source/modules/)

Danke für die schnelle Antwort. Also die metadata.php liegt in /source/modules/xyz/examplemodule.
Inhalt der Datei ist wie im Tutorial beschrieben:
$sMetadataVersion = ‘2.0’;
$aModule = array(
‘id’ => ‘oxsexamplemodule’,
‘title’ => ‘Example Module’,
);

ist ein eintrag im yaml-file vorhanden?

hast du das modul mal versucht über die console zu aktivieren?

Habe ich versucht mit php vendor/bin/oe-console oe:module:install-configuration source/modules/xyz/examplemodule.
Es erscheint aber kein Eintrag darüber in der 1.yaml (var/configuration/shops).

dann wurde das modul auch nicht installiert. normalerweise kommt da auch eine ausgabe …

Ja, davon gehe ich auch aus. Aber woran kann das liegen? Kann es sein, dass die oe-console nicht richtig funktioniert? Ich bekomme schon keine Ausgabe über ssh, wenn ich vendor/bin/oe-console -h aufrufe. Ich habe es mit php7.2 und php7.4 versucht und es gibt keinen Unterschied.
Danke für eure Unterstützung, um den Fehler weiter einzugrenzen.

das muss eigentlich eine ausgabe bringen.

poste mal deine metadata.php

$sMetadataVersion = '2.0';
$aModule = array(
'id' => 'oxsexamplemodule',
'title' => 'Example Module',
);

ergänz mal …

'description'  => '',
'thumbnail'    => 'picture.png',
'version'      => '2.0',
'author'       => 'OXID eSales AG',

Habe die metadata.php ergänzt und nochmal mit composer installiert. Leider bringt das keine Verbesserung. Das Modul ist immer noch nicht in der 1.yaml und im Backend sichtbar.
Hat noch jemand eine andere Idee? Vielen Dank. :slight_smile:

Da stimmt wohl schon was nicht. Was ist denn das für eine Umgebung?

@leofonic Das ist ein Managed-Shop-Hosting Paket bei profihost mit MySQL 5.7. PHP ist mit 7.2 und 7.4 das gleiche Szenario. Welche Infos brauchst du noch?

dann wende dich am besten mal an deinen hoster, weil die standardausgabe mit der console muss kommen …

@tabsl Ok, danke für den Tipp. Supportanfrage ist raus. Mal schauen, was die sagen.

Also es fehlte ein extra alias php="/usr/local/php7.2/bin/php". Im Standard scheint hier die php 5.6 aktiv zu sein.
Jetzt bekomme ich eine Ausgabe mit der oe-console und konnte das Modul mit php vendor/bin/oe-console oe:module:install-configuration source/modules/xyz/examplemodule installieren und im Backend aktivieren

Muss man das nun bei jedem Modul so machen? Ich hatte gedacht, dass composer das eigentlich alles alleine macht und man es dadurch leichter hat. Was ist hier der korrekte Weg?

Ob man es dadurch leichter hat ist diskutabel. Aber eigentlich wird bei composer update (also auch bei require) das Modul automatisch in der yaml registriert.

Ja, so hatte ich es auch verstanden. Gibt es Möglichkeiten, diesen Fehler noch weiter einzuschränken, warum bei composer require nichts in die yaml geschrieben wird?

in 6.2 gibt es zwei möglichkeiten module zu installieren:#
a) composer (installiert automatisch die modulkonfiguration)
b) console install-configuration (wie oben beschrieben)

in beiden fällen muss aber das modul dann noch aktiviert werden, entweder über den admin über die console