Hi, also zu meinem Problem… ich habe ein altes Plugin (_engine/shopware/plugins/community…/ myOldPlugin _) auf die neue Pluginstruktur (_custom/plugins/ myNewPlugin _) umgeschrieben und es läuft auch so wie es soll. Das einzige Problem das ich habe ist, ich muss die alte Striktur drin lassen weil mein neues Plugin weiterhin auf die Templatestruktur des alten Plugins zurück greift.
Es handelt sich hier um ein neues Emotion Content Element. Das Element wird wie folgt erzeugt:
$component = $this->createEmotionComponent(array(
'name' => 'myNewECElement',
'template' => 'emotion_test',
'cls' => 'emotion-content-component-class',
'xtype' => 'emotion-components-test',
'description' => 'Emotion Content Element erzeugen.'
));
$component->createMediaField(array(
'name' => 'emotion_image',
'fieldLabel' => 'Bild',
'defaultValue' => '',
'allowBlank' => true
));
$component->createTextField(array(
'name' => 'emotion_link',
'fieldLabel' => 'Link-Adresse',
'supportText' => 'Link Adresse',
'helpTitle' => 'Hier können Sie die Link Adresse definieren.',
'helpText' => 'Hier können Sie die Link Adresse definieren.',
'defaultValue' => 'http://www.google.de',
'allowBlank' => false
));
Meine Events und die entsprechende Methode
public static function getSubscribedEvents()
{
return [
'Theme_Compiler_Collect_Plugin_Less' => 'addLessFiles',
'Enlight_Controller_Action_PostDispatchSecure_Backend_Emotion', 'onPostDispatchBackendEmotion'
];
}
public function onPostDispatchBackendEmotion(\Enlight_Controller_ActionEventArgs $args)
{
/** @var \Shopware_Controllers_Backend_Emotion $controller */
$controller = $args->getSubject();
$view = $controller->View();
#Test ob es hiermit funktioniert
$this->container->get('template')->addTemplateDir(
$this->getPath() . '/Resources/Views/'
);
$view->addTemplateDir($this->getPath() . '/Resources/Views/');
$view->addTemplateDir($this->getPath() . '/Views/');
$view->extendsTemplate('backend/emotion/my_emotioncomponent/view/detail/elements/ffb_emotion.js');
}
Hier werden mehrere TemplateDirs geadded und in jedem liegt eine emotion_test.tpl
Der Inhalt der jeweiligen tpl ist nur ein Satz wie “Ich komme aus dem Verzeichnis X”
Aber egal was ich auch bei der Templatedir schreibe… er greift immer auf die alte Struktur zurück.
TemplateDir der alten Struktur: MyPlugin/Views/emotion_components/widgets/emotion/components/emotion_test.tpl
TemplateDir der neuen Struktur: MyNewPlugin/Views/emotion_components/widgets/emotion/components/emotion_test.tpl
_ Optionales TemplateDir in der neuen Struktur: _ MyNewPlugin/Resources/Views/emotion_test.tpl
Warum nimmt er nicht das angegebe Verzeichnis?
Habe ich was vergessen oder mache es sogar falsch ?