Hallo,
ich versuche gerade, in einem Plugin eine Kleinigkeit bei den Dokumenten-Templates (Rechnung etc.) anzupassen, und diese Kleinigkeit dauert jetzt schon ewig, weil wenig Informationen zu finden sind. Sehr frustrierend…
Vielleicht weiß ja hier jemand, wie man das macht?
Bisher habe ich es immerhin geschafft, den Template-Pfad des Plugins beim Dokumenten-Rendern verfügbar zu machen, und zwar durch einen Subscriber, der auf Theme_Inheritance_Template_Directories_Collected lauscht und den Template-Pfad des Plugins anhängt:
public static function getSubscribedEvents() {
return [
'Theme_Inheritance_Template_Directories_Collected' => 'onCollectTemplateDir',
];
}
public function onCollectTemplateDir(\Enlight_Event_EventArgs $args) {
$dirs = $args->getReturn();
$dirs[] = $this->pluginDirectory . '/Resources/views/'; $args->setReturn($dirs);
}
Über eine Instanz des Template managers und templateManager->addTemplateDir geht das leider nicht, die wird in render() in Shopware_Components_Document nicht genutzt. (Warum eigentlich nicht?)
Leider sind nun die Snippets nicht mehr verfügbar und es taucht z.B. #DocumentIndexCustomerID# im pdf auf. Dazu habe ich jetzt nun wirklich nichts mehr gefunden. Hat hier jemand genug Erfahrung um zu wissen, wie das gedacht ist? Wie kann ich die Snippets auch für das Template in meinem Plugin verfügbar machen? Oder gibt es eine bessere Methode als über Theme_Inheritance_Template_Directories_Collected?