hd_up
24. März 2016 um 13:26
1
Hallo Community,
ich erstelle gerade ein Plugin für die Einkaufswelt, in diesem Plugin sollen die Kategorien im Content als Navigation ausgegeben werden.
Mein Problem ist, wenn ich in der Bootstrap.php über $view->assign(‘lorem’, ‘Lorem ipsum dolor sit amet’); eine Variable mit einem String belege kommt keine Ausgabe {$lorem} in meiner *.tpl Datei.
Wie muss ich mein Code anpassen damit ich eine Ausgabe bekomme?
System:
Shopware 5.1.1
Professional Edition
Bootstrap.php:
true,
'update' => true,
'enable' => true
);
}
public function getLabel()
{
return 'Emotion Content Navigation';
}
public function getVersion()
{
return '1.0.0';
}
public function getInfo()
{
return array(
'version' => $this->getVersion(),
'autor' => '',
'copyright' => '© 2016 ',
'label' => $this->getLabel(),
'supplier' => '',
'description' => 'Content Navigation',
'support' => '',
'link' => ''
);
}
public function install()
{
$component = $this->createEmotionComponent(array(
'name' => 'Content Navigation',
'description' => 'Content Navigation',
'template' => 'component_content_navigation_dw',
'cls' => 'content-navigation-dw'
));
$this->subscribeEvent(
'Enlight_Controller_Action_PostDispatch_Frontend_Index',
'onFrontendPostDispatch'
);
return true;
}
public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
{
$view = $args->getSubject()->View();
$view->addTemplateDir($this->Path() . 'Views/');
$view->extendsTemplate('emotion_components/widgets/emotion/components/component_content_navigation_dw.tpl');
$view->assign('lorem', 'Lorem ipsum dolor sit amet');
}
}
component_content_navigation_dw.tpl:
{block name="widget_emotion_content_navigation"}
Test emotion Content Navi
{$lorem}
{/block}
Vielen Dank im Voraus.
Gruß Holger
Du hast dich auf das Event
Enlight_Controller_Action_PostDispatch_Frontend_Index
registriert. Für die Einkaufswelten müsste es aber eher
Enlight_Controller_Action_PostDispatchSecure_Widgets_Campaign
sein. Schau dir mal das Beispiel-Plugin “Media Widget ” an, das sollte helfen.
hd_up
24. März 2016 um 16:39
3
@Pixeljockey schrieb:
Du hast dich auf das Event
Enlight_Controller_Action_PostDispatch_Frontend_Index
registriert. Für die Einkaufswelten müsste es aber eher
Enlight_Controller_Action_PostDispatchSecure_Widgets_Campaign
sein. Schau dir mal das Beispiel-Plugin „Media Widget “ an, das sollte helfen.
Hallo Pixeljockey,
danke für deine Antwort, leider hat die Umstellung von
Enlight_Controller_Action_PostDispatch_Frontend_Index
auf
Enlight_Controller_Action_PostDispatchSecure_Widgets_Campaign
kein Erfolg gebracht.
Es wird immer noch nichts ausgegeben.
Mein Code sieht jetzt so aus:
public function install()
{
$component = $this->createEmotionComponent(array(
'name' => 'Content Navigation',
'description' => 'Content Navigation',
'template' => 'component_content_navigation_dw',
'cls' => 'content-navigation-dw'
));
$this->subscribeEvent(
'Enlight_Controller_Action_PostDispatchSecure_Widgets_Campaign',
'onFrontendPostDispatch'
);
return true;
}
public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
{
$view = $args->getSubject()->View();
$view->addTemplateDir($this->Path() . 'Views/');
$view->extendsTemplate('emotion_components/widgets/emotion/components/component_content_navigation_dw.tpl');
$view->assign('lorem', 'Lorem ipsum dolor sit amet');
}
Ich hab mir auch das Beispiel angesehen, aber dort legen die nur ein „subscribeEvent“ an und dazu keine Funktion die im Frontend eine Ausgabe erzeugt.
Oder kann ich meine Variable in das $Data Array hinzufügen?
MFG Holger
Ich habe dazu mal eine Frage, wie registrier ich die custom Seiten (Shopseiten)
Ich habe eine Shopseite angelegt und möchte über ein Plugin aus einer SQL Tabelle Daten anzeigen.
Die Funktionen sind alle fertig und funktionieren aber ich bekomme das nur auf der Detailseite bzw. Index Seite angezeigt.
Sieht so aus im Moment
public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
{
/** @var \Enlight_Controller_Action $controller */
$controller = $args->get('subject');
$view = $controller->View();
$view->addTemplateDir( __DIR__. '/Views/responsive/');
$articleId = (int)$args->getSubject()->Request()->sArticle;
$sql
= "SELECT id, products_groupid, products_model, products_groupmodel, products_design FROM s_articles_attributes WHERE articleID = '"
. $articleId
. "' AND (products_........