Hallo alle,
ich versuche ein Plugin zu entwickeln und bin schon auf dem Weg, zumindest steht ein Array in Template zu verfügung und SW crash nicht mehr.
Ich will die Werte eines Combo Freitextfeld für Artikel verarbeiten und in Frontend (Detailansicht) in einem Tab zeigen.
Für jede Produkt (Tintenpatronen) das Combo Freitextfeld bietet die Möglichkeit andere Kategorien zu zeigen (die Passende Drucker):
Das Plugin scheint zu funktionieren, aber ich habe noch Schwierigkeiten um Kategorienamen nach ID zu bekommen.
Habe nur die IDs der Passenden Kategorien.
Hier, einige Zeilen des Plugin:
class RouteSubscriber implements SubscriberInterface {
private $pluginDirectory;
private $config;
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_PostDispatchSecure' => 'writePassende',
'Enlight_Controller_Action_PostDispatch_Frontend_Detail' => 'getCategoriesName'
];
}
Die erste Funktion, die mein Combo Freitextfeld passende aufruft und prozessiert:
public function writePassende(\Enlight_Controller_ActionEventArgs $args) {
$controller = $args->getSubject();
$request = $controller->Request();
$response = $controller->Response();
$view = $controller->View();
$controllerName = $request->getControllerName();
$view->addTemplateDir($this->pluginDirectory . '/Resources/views');
// Only in Frontend
if(!$request->isDispatched() || $response->isException() || ($request->getModuleName()!='frontend' && $request->getModuleName()!="widgets")) {
return;
}
// From string |12|26|22| to Array [12,26,22]
$atr = explode("|", substr($view->sArticle['passende'], 1, -1));
$view->assign('digiPassendeCatsIDs', $atr);
}
Das Array digiPassendeCatsIDs steht in Frontend/Template zu verfügung, also NO PROBLEM! Das Plugin läuft!
Ich möchte aber die Werte dieses Array in meinem Plugin weiter verarbeiten und die entsprechende Kategoriename nach IDs zu bekommen.
Also:
catID = 12 ; Name: Accessoires
catID = 26 : Name: Coffee
catID = 22 ; Name: Sweet
sobald ich alle zwei Elemente habe, kann ich in Template (Detailansicht) ein Tab erstellen mit Links und URLs:
{foreach $digiPassendeCatsIDs as $value}
KATEGORIENAMEN !!!
{/foreach}
Ich finde aber noch keine Lösung um Kategorienamen nach IDs zu bekommen.
URLs sind aber ganz ok…
Soll ich andere Events im Plugin aufrufen?
Soll ich eine SQL Query schreiben? Wenn ja, gibt es irgendwelche Beispiel?
Habe Tagelang im Forum gesucht und auch andere Plugins analysiert…
Danke, ciao!
PS: es ist anstrengend, aber die Entwicklung macht Spaß