Dokument Template durch Plugin erweitern

Hey,

ich versuche aktuell in meinem Plugin das Dokument-Template der Rechnung zu erweitern.

Dafür habe ich folgenden Ansatz gewählt.

Subscriber auf Order

class DocumentExtension implements SubscriberInterface
{
    /**
     * @var string
     */
    private $pluginDirectory;

    /**
     * @param $pluginDirectory
     */
    public function __construct($pluginDirectory)
    {
        $this->pluginDirectory = $pluginDirectory;
    }
    /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PreDispatchSecure_Backend_Order' => 'onOrderPreDispatch'
        ];
    }

    public function onOrderPreDispatch(\Enlight_Event_EventArgs $args)
    {
        /** @var \Shopware_Controllers_Backend_Order $controller */
        $controller = $args->getSubject();

        $view = $controller->View();

        $view->addTemplateDir($this->pluginDirectory . '/Resources/views');
    }
}

index.tpl liegt unter Resources/views/documents/

{extends file='parent:documents/index.tpl'}

{block name="document_index_info_ordercomment"}
    {if $Order._order.customercomment}
        <div style="font-size:11px;color:#333;">
            {s name="DocumentIndexComment"}{/s}
            {$Order._order.customercomment|replace:"€":"&euro;"}
        </div>
    {/if}
    TEST123
{/block}

und Service wie folgt registriert

        <service id="ubi_document_extension.subscriber.templates" class="UbiDocumentExtension\Subscriber\DocumentExtension">
            <argument>%ubi_document_extension.plugin_dir%</argument>
            <tag name="shopware.event_subscriber"/>
        </service>

Wenn ich allerdings das Dokument genrieren möchte, seh ich TEST123 nicht auf dem Rechnungsdokument.

Hat jemand eine Idee?

Vielen Dank im Voraus für Eure Mühen

Liebe Grüße

#push, keiner einen Denkanstoß oder ähnliches?

Hi,

folgender Subscriber dürfte dir helfen:

'Theme_Inheritance_Template_Directories_Collected'    => "onCollectDirectoriesEvent"
	public function onCollectDirectoriesEvent( \Enlight_Event_EventArgs $args )
	{
		// get the current directories
		$directories = $args->getReturn();
 
		// add our own
		array_push(
			$directories,
			$this->pluginDirectory . "/Resources/views"
		);

		return $directories;
	}

Grüße