Herstellerliste

Ich würde gerne eine Seite erstellen auf der alle Hersteller mit iHren Links (Website, Artikel) aufgelistet sind. Gibt es eine Möglichkeit diese Liste direkt abzufragen?

Hallo inkognito, du könntest das ganze über ein Plugin realisieren. Zuerst solltest du dir einen eigenen Controller erstellen z.B.: $event = $this-\>createEvent('Enlight\_Controller\_Dispatcher\_ControllerPath\_Frontend\_SupplierListing', 'onGetControllerPath\_Frontend\_SupplierListing'); In diesem Controller kannst du dann über die Tabelle s_articles_supplier alle Hersteller mit dessen Logo und Homepage Link auslesen. Die Zuordnung zwischen Hersteller und Artikel geschieht über die Tabelle s_articles.supplierID = s_articles_supplier.id. Danach brauchst du nur noch ein eigenes Tempalte laden und die Daten anzeigen lassen. Gruß Oliver Denter

Vielen Dank, jetzt weiss ich wenigstens wie die Daten verknüpft sind und woher Sie kommen. Aber ich komme wohl nicht umhin mich in die Klassenbibliothek einzuarbeiten. Gibt es da ein Tutorial? Die Klassendokumentation ist ja nicht so ergiebig wenn man die Grundzusammenhänge verstehen will.

Mich interessiert das auch brennend; allerdings für Shopware 4.1! Ich habe versucht, solch ein Plugin zu schreiben, es will aber nicht funktionieren. Hier meine Bootstrap.php: [code]<?php /**
*Bootstrap Class of the Plugin “Manufacterer Listing”
*/
class Shopware_Plugins_Frontend_VDManufactererListing_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function getCapabilities()
{
return array(
‘install’ => true, ‘update’ => true, ‘enable’ => true ); } public function getLabel() { return ‘Hersteller Listing’; } public function getVersion() { return ‘0.0.1’; } public function getInfo() { return array( ‘version’ => $this->getVersion(), ‘label’ => $this->getLabel(), ‘supplier’ => ‘FW’, ‘description’ => ‘Eine Liste der gespeicherten Hersteller im Template ausgeben’, ‘support’ => ‘FW,a@b.de’, ‘link’ => ‘http://www.myshopware.de/’ ); } public function install() { $this->subscribeEvent($event); return true; } protected function subscribeEvents() { $event = $this->createEvent( ‘Enlight_Controller_Dispatcher_ControllerPath_Frontend_SupplierListing’, ‘onGetControllerPath_Frontend_SupplierListing’ ); } public function onGetControllerPath_Frontend_SupplierListing() { $supplierID = $this->Request()->getParam(‘supplierID’); $select =’ SELECT s_articles_supplier.img, s_articles_supplier.description FROM s_articles_supplier ‘; $items = Shopware()->Db()->fetchRow($select, $supplierID); $this->View()->assign(array( ‘success’ => true, ‘data’ => $items, ‘count’ => count($items) )); $view->extendsTemplate(dirname(__FILE__).’/index.tpl’); $view->extendsBlock(“frontend_index_supplierlisting”,’

{$items}

'); } }[/code] In meiner index.tpl sieht’s so aus: [code]{block name=“frontend_index_supplierlisting”}

Herstellerliste

{$items}

{/block}[/code] 1. Leider wird im Template nur die Überschrift ausgegeben, der Inhalt innerhalb des

Tags bleibt leer. 2. Stimmt meine Zuweisung "$view->extendsBlock(“frontend_index_supplierlisting”,’

{$items}

');" so? 3. Kann mein Plugin so überhaupt funktionieren? Mein Eindruck ist, das meine bootstrap.php nicht aufgerufen wird, wenn der User auf meine Inhaltsseite “Hersteller” klickt, die auf das Template verweist. Bin ein Einsteiger und über Hilfe sehr dankbar! Grüße, Flo

Solche Plugins gibt es schon im Store, z.B. hier: http://store.shopware.de/template-desig … iner-seite Dein Plugin kann so nicht funktionieren, uns zwar aus mehreren Gründen. Einige davon sind: - fetchAll gibt ein Array zurück, das muss im Template durchiteriert werden - die Logik gehört in den Controller (heißt bei Dir SupplierListing) - die Hersteller würden dann angezeigt werden, wenn der Controller aufgerufen wird (etwa http://deinshop.de/SupplierListing) - …

Muss man dafür denn wirklich ein Plugin schreiben/kaufen? Im Listing werden die Hersteller ja auch über den Array $sSuppliers zu Verfügung gestellt. Ausgegeben werden die Hersteller damit z.B. in frontend/listing/filter_supplier.tpl Wenn ich den Inhalt dieses Templates in ein eigenes custom-Template einfüge, klappt das natürlich nicht, da der Array $sSuppliers nicht vorhanden ist. Kann man den aber nicht irgendwie ansprechen oder laden? Danke und Gruss memo