[GELÖST] Pfad für eigenes Dokument innerhalb eines Plugins

Hallo liebe Shopware-Gemeinde,

ich würde gerne ein eigenes Dokument per Plugin erzeugen. Ich habe schon in den entsprechenden Datenbank-Tabellen die entsprechenden Einträge vorgenommen, alles funktioniert auch soweit und das neue Dokument wird unter “Einstellungen” -> “Grundeinstellungen” -> “Shopeinstellungen” -> “PDF-Belegerstellung” angezeigt. Nun zum Problem: ich bin davon ausgegangen, dass wenn ich das Dokument (bspw. “index_xxl.tpl”) im Pfad “Views/documents” ablege, das es dann auch verfügbar ist. Wenn ich aber über “Vorschau” das Dokument aufrufen möchte, ist es nicht verfügbar (es funktioniert nur die Vorschau, wenn ich es im Theme-documents-Ordner ablege). Muss ich noch irgendein Event oder ähnliches ansprechen, damit meine “index_xxl.tpl” auch erkannt wird? Oder ist mein Ablage-Ort innerhalb des Plugins falsch? Prinzipiell ist das Plugin ja ein reines Backend-Plugin.

Beste Grüße

Sebastian

Hallo, zur Info: ich habe auch schon versucht das eigene Theme als „Dokumenten-Theme“ zu verwenden, da funktioniert es auch nicht. Es funktioniert nur, wenn ich meine tpl-Datei in einen Theme-Ordner packe - das kann ich ja aber nicht mittels eines Plugins. Beste Grüße Sebastian

Hallo, hat denn wirklich niemand einen Tipp? Vielleicht jemand von :shopware:? Beste Grüße Sebastian

So sieht es zb bei mir aus, wenn das Dokument die ID 5 hat. Etwas hard codet - aber geht. Die .tpl liegt im Plugin Ordner in /Views/documents/. Aus der Wühlkiste: http://pastebin.com/XcH1Ncdd Viele Grüße

1 „Gefällt mir“

[quote=“Aquatuning GmbH”]So sieht es zb bei mir aus, wenn das Dokument die ID 5 hat. Etwas hard codet - aber geht. Die .tpl liegt im Plugin Ordner in /Views/documents/. Aus der Wühlkiste: http://pastebin.com/XcH1Ncdd Viele Grüße[/quote] Hallo Aquatuning, danke erstmal für deine Hilfe. Ich habe mir aus deinem bereitgestellten Code die entsprechenden Zeilen entnommen. Es scheint nun auch mein Dokument innerhalb des Plugins zu erkennen (unter anderem klappt jetzt die Vorschau unter “Einstellungen” -> “Grundeinstellungen” -> “Shopeinstellungen” -> “PDF-Belegerstellung”, wenn es nicht mehr im Bare-Verzeichnis liegt). Nur habe ich jetzt das Problem, dass es mir unter “Kunde” -> “Bestellungen” keine Dokumente mehr anzeigt (weder links unter dem Filter noch innerhalb einer Bestellung - sonst funktioniert alles) - Firebug gibt mir als Meldung “TypeError: type is undefined” zurück (das Dokument aus dem Plugin-Pfad rauszuwerfen bringt auch nichts). Hast du einen Tipp für mich, woran das liegen könnte? Ich habe ja die entsprechenden Sachen aus deinem Code übernommen, die dafür zuständig sind. Das Neuanmelden im Backend oder Cache leeren etc. bringt auch nichts. Die anderen Dokumente auch in das Pluginn zu tun bewirkt auch nichts. Das einzige, was ich ja geändert habe zum Stand vorher, wo es die Meldung nicht gebracht hat, ist ja das Event onCollectDirectoriesEvent (der andere Code bei deinem Beispiel waren ja für andere Sachen). Beste Grüße Sebastian

Hallo, könnte vielleicht jemand von :shopware: einmal einen Tipp oder Denkanstoß geben, beispielsweise :shopware: Daniel Nögel? Das wäre echt nett :). Es muss doch sicher irgendwie möglich sein, via Plugin ein neues Dokument bereitzustellen. Beste Grüße Sebastian

[quote=„sschreier“]könnte vielleicht jemand von :shopware: einmal einen Tipp oder Denkanstoß geben, beispielsweise :shopware: Daniel Nögel? Das wäre echt nett :). [/quote] Hi Sebastian :slight_smile: Habe dazu konkret leider auch keine Idee, grundsätzlich wird es ja mit den Template-Verzeichnissen zusammen hängen, das deutet ja auch die Lösung von Aquatuning an. Ich hätte spontan an Shopware()->Template()->addTemplateDir() gedacht - da muss man ja auch immer aufpassen, dass das Verzeichnis bei der Vorschau ebenso registriert ist, wie bei der Generierung. Das kann man entweder direkt per Hook an die Document-Komponente koppeln oder man haut das probeweise einmal an das Enlight_Controller_Action_PostDispatch_Backend-Event (was relativ grob ist, aber du weißt dann zumindest, dass es wirklich immer registriert ist). Aber wie gesagt: Ist jetzt auch eher so aus der Hüfte geschossen, wenn das bei Aquatuning so passt, müsste das ja so zu machen sein. Besten Gruß, Daniel

Hallo, danke Daniel erst einmal für deine Antwort. addTemplateDir() und das Event Enlight_Controller_Action_PostDispatch_Backend haben leider nichts bewirkt. Aber ich habe mir noch einmal den Code von Aquatuning angesehen und bin nun doch zu einer Lösung gekommen - der oben genannte Fehler (TypeError: type is undefined) war ansich plausibel und ich konnte diesen beheben. Es funktioniert nun alles, man kann das Dokument in der Bestellung erzeugen und dann auch aufrufen genauso wie es sich in der Vorschau ansehen. Ich danke dir für deine Antwort und Aquatuning auch - vorallem auch für seinen Codeschnipsel. Ich markiere das Thema jetzt als Gelöst, da es ja nun funktioniert. Beste Grüße Sebastian