Guten Morgen, ich möchte ein Plugin für SW 4 erstellen und schaue mir gerade das Tutorial zur Backend Modul Erstellung an. Ich habe wie in der Anleitung eine Bootstrap eingerichtet für ein Community Plugin. Die weiteren Daten hatte ich noch nicht angelegt, einfach um zu sehen was erst einmal passiert. Nun ist der Plugin Manager aber leider leer. Auch wenn ich das Demo Modul hochlade, das wird auch nicht angezeigt. Was könnte es sein? Danke euch!
Wenn ich das Plugin manuell hochlade dann erhalte ich: [quote]Die Plugin Struktur entspricht nicht dem vorgegebenen Format. Der Namespace des Plugins konnte nicht ermittelt werden.[/quote] Dabei sind die Kategorien Lokale, Community, Core und Shopware Erweiterungen komplett leer.
Poste mal die genaue Ordnerstrukt deines Plugins und den Inhalt der Bootstrap.php
Habe ja das SwagCustomBasket als Demopaket runtergeladen, hochgeladen und damit ist es ja das selbe.
Dann stimmt wahrscheinlich bei deiner Struktur etwas nicht. Schreib hier mal den Pfad zur Bootstrap. Hast du das Plugin manuell per FTP oder über das Backend hochgeladen?
Also der Pfad zu meiner selber erstellten Bootstrap Datei ist folgender: engine/shopware/Plugins/Community/Backend/Idealnewsflat/Bootstrap.php [code]<?php /**
- Example Plugins
/
class Shopware_Plugins_Backend_Idealnewsflat_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
/*- Plugin install method
-
@return bool success
*/
public function install()
{
$event = $this->createEvent( ‘Enlight_Controller_Dispatcher_ControllerPath_Backend_Idealnewsflat’, ‘onGetControllerPathBackend’ ); $this->subscribeEvent($event); $parent = $this->Menu()->findOneBy(‘label’, ‘Artikel’); $item = $this->createMenuItem(array( ‘label’ => ‘Idealnewsflat’, ‘class’ => ‘sprite-ui-scroll-pane-detail’, ‘active’ => 1, ‘controller’ => ‘Idealnewsflat’, ‘parent’ => $parent, ‘style’ => ‘background-position: 5px 5px;’ )); $this->Menu()->addItem($item); $this->Menu()->save(); return true; } /** * just points to the path of this controller * * @static * @param Enlight_Event_EventArgs $args * @return string */ public static function onGetControllerPathBackend(Enlight_Event_EventArgs $args) { return dirname(__FILE__) . ‘/Idealnewsflat.php’; } /** * Get version tag of this plugin to display in manager * @return string */ public function getVersion() { return “1.0.0”; } /** * Get (nice) name for plugin manager list * @return string */ public function getName() { return “Idealnewsflat”; } }[/code] Ich habe das einmal per FTP hochgeladen und einmal auch als ZIP über das Backend. Mach ich es über das Backend erhalte ich den Fehler der Namenskonvention von oben.
Wenn ich deine Struktur übernehmne und in der Bootstrap.php die Zeile 60 in “public function getLabel()” ändere, erscheint das Plugin im Plugin-Manager (Shopware v4.0.3 - Upload via FTP). Die Funktion getName() kann anscheinend nicht mehr überladen werden. Ich hatte diese Korrektur bereits bei einem anderen Wiki-Artikel gepostet (Erweiterung von Backend Mdoulen), allerdings gibt es diesen nicht mehr und die Kommentare sind leider nicht im Google-Cache. edit: Zeilennummer korrigiert
So nun habe ich noch einmal SW installiert und die restlichen Plugins sowie meins sind da. Gut ist komisch, auch nicht ganz im Sinne des Erfinders aber würde mir jetzt erstmal helfen. Danke euch für die Hilfe bis hier hin!