Zusätzlich zum Hersteller Namen kann auch das entsprechende Hersteller-Logo auf der magento Produkt-Detailseite (view.phtml) oder in der magento Produktliste (list.phtml) angezeigt werden. Wie man ein Herstellerlogo in einen magento Shop einbindet zeigt dieses Tutorial.
Die Ausgabe des Hersteller-Namens erfolgt mit
<?php echo $_product->getAttributeText('manufacturer') ?>
Erfolgt keine Anzeige so muss das manufacturer-Attribut noch im Adminbereich eingestellt werden:
Admin -> Katalog -> Attribute -> Attribute verwalten
Hier das Attribute manufacturer auswählen und die beiden nachfolgende Selectfelder auf Ja stellen.
Sichtbar auf der Produkt-Seite im Front-end: Ja
Im Produkt-Listing verwendet: Ja
Attribut speichern.
Der Herstellername wird nun mit Hilfe einiger PHP-Codezeilen in eine entsprechende Bild-Url umgeformt.
<?php // hersteller logo / manufactor brand
$herstellerpic = $_product->getAttributeText('manufacturer');
$umlaute = Array("/ä/","/ö/","/ü/","/ß/","/ /");
$ersetzen = Array("ae","oe","ue","ss", "");
$herstellerpic = utf8_decode($herstellerpic);
$herstellerpic = strtolower($herstellerpic);
$herstellerpic = preg_replace($umlaute, $ersetzen, $herstellerpic);
$herstellerpic = utf8_encode($herstellerpic);
?>
Erklärung der Codezeilen:
Zeile 1 speichert den Herstellernamen in die Variable herstellerpic
Zeile 2 + 3: Hier werden Umlaute und Leerzeichen Ersetzungen definiert. Umlaute und Leerzeichen dürfen in der Bild-Url ja nicht vorkommen.
Zeile 4: Notwenig. da der php-Befehl preg_replace UFT8 Umlaute nicht korrekt definiert.
Zeile 4: Umwandeln des Herstellernamen in Kleinbuchstaben.
Zeile 5: Hier werden evtl. vorhandene Umlaute ersetzt und Leerzeichen gelöscht.
Zeile 6: Hier wird der Herstellerstring wieder in UFT8 umgesetzt.
Diese Abfragen kann man selbstverständlich auch kürzer coden. Des Verständnis wegen habe ich jeden Befehl einzeln aufgezeigt.
Die letztendliche Logo-Ausgabe erfolgt mit dem Code
<img src="<?php echo $this->getSkinUrl('images/logos/').$herstellerpic.".gif"; ?>" alt="<?php echo $_product->getAttributeText('manufacturer') ?>" />
In diesem Beispiel ist das gif-Format eingefügt. Möchten Sie Ihre Logos lieber als jpg oder png speichern ändern Sie einfach die Zeile ab.
Den Bildnamen richtig definieren.
Entsprechend der im Manufacturer-Attribut hinterlegten Herstellernamen müssen die Bildnamen definiert werden.
Einige Beispiele:
Hersteller: Mustermann Bildname: mustermann.gif
Hersteller: Müllermann KG Bildname: muellermannkg.gif
Hersteller: Hägemüt Test Bildname: haegemuettest.gif
d.h. ä = ae, ü = ue, ö = oe, ß = ss und Leerzeichen entfernen.
Erstellen Sie ein Unterverzeichnis mit dem Namen logo in Ihrem skin/images Ordner und speichern dort alle Herstellerlogos ab.
Zum Beispiel:
skin/images/logo/muellermannkg.gif
Durch einfügen der nachfolgenden Code-Zeilen kann nun das Hersteller-Logo an beliebiger Stelle in der Produktanzeige (list.phtml und / oder view.phtml) erfolgen.
<?php // hersteller logo / manufactor brand
if ($_product->getManufacturer()):
$herstellerpic = $_product->getAttributeText('manufacturer');
$umlaute = Array("/ä/","/ö/","/ü/","/ß/","/ /");
$ersetzen = Array("ae","oe","ue","ss", "");
$herstellerpic = utf8_decode($herstellerpic);
$herstellerpic = strtolower($herstellerpic);
$herstellerpic = preg_replace($umlaute, $ersetzen, $herstellerpic);
$herstellerpic = utf8_encode($herstellerpic); ?>
<img src="<?php echo $this->getSkinUrl('images/logos/').$herstellerpic.".gif"; ?>" alt="<?php echo $_product->getAttributeText('manufacturer') ?>" />
<?php endif; ?>
Viel Spaß mit diesem Tutorial
Stefan Pröhl – robin2160
mageintern.de
Nachtrag:
Die Ausgabe wurde mit einer If-Abfrage erweitert. Diese prüft ob ein Hersteller überhaupt angegeben ist. Wenn nicht erfolgt auch keine Ausgabe und der IE zeigt auch kein Fehlbild mehr an.
Vielen Dank an Uniquesone für den Hinweis.
Hallo Stefan, vielen Dank für diesen wirklich nützlichen Code. Ich möchte allerdings den Hersteller in der description.phtml ausgeben lassen. Was muß hierfür angepasst werden?
Freue mich auf Deine Antwort, Gruß!
[Antwort]
Hey Stefan,
vielen Dank für den Beitrag, hat bei mir in der Produktansicht auf Anhieb geklappt und ich bin total happy damit!
Ich habe noch eine Frage: und zwar würde ich gerne auch ein Bild in der In-den-Warenkorb-Tabelle eines Gruppenproduktes ausgeben. Genau genommen soll das Attribut Farbe eines einfachen Prouktes ausgegeben werden. Wenn ich also “Grün” auswähle soll das Bild “gruen.gif” angezeigt werden.
Habe es hiermit probiert:
getColor()):
$herstellerpic = $_item->getAttributeText(‘color’);
$umlaute = Array(“/ä/”,”/ö/”,”/ü/”,”/ß/”,”/ /”);
$ersetzen = Array(“ae”,”oe”,”ue”,”ss”, “”);
$herstellerpic = utf8_decode($herstellerpic);
$herstellerpic = strtolower($herstellerpic);
$herstellerpic = preg_replace($umlaute, $ersetzen, $herstellerpic);
$herstellerpic = utf8_encode($herstellerpic); ?>
<img src="getUrl().’/stuff/bilder/logos/’.$herstellerpic.”.gif”; ?>” alt=”getAttributeText(‘color’) ?>” />
Leider wird immer nur der Alttext, nicht aber das gif angezeigt. Hast du zufällig eine Idee woran es liegen kann?
Danke und viele Grüße,
Marcel
[Antwort]
Hi, ich bekomms einfach nicht zu laufen.
- bei mir heißt das attribut “hersteller” habe die 2 vorkommen von
getAttributeText(‘manufacturer’) geändert in: getAttributeText(‘hersteller’)
- im frontend anzeigen und product listing ist aktiviert
- der ordner heißt “logo” habe geändert (steht übrigens als “logo” in der anleitung):
(‘images/logos/’) –> (‘images/logo/’)
- bilder sind jpgs also:
“.gif” –> “.jpg”
es funktioniert aber einfach nicht. hersteller ist angegeben, bilder heißen auch richtig.
achso das ganze eingefügt in der view.php
an was kanns liegen?
[Antwort]
mageintern - robin2160 Antwort vom Dezember 2nd, 2010 18:41:
Hi Veit,
wird denn im Quelltext etwas angezeigt oder ist die Ausgabe in einem Teil der nicht angezeigt werden kann?
VG Stefan
[Antwort]
Veit Antwort vom Dezember 7th, 2010 14:58:
der code ist in
direkt unter der dem div mit der Produktnamesausgabe
im quelltext wird ausgegeben:
Die Attributabfrage scheint irgendwie nicht zu klappen..
[Antwort]
Veit Antwort vom Dezember 8th, 2010 11:08:
ok er hatt nen paar sachen geschluckt.. hier nochmal:
der code ist in div class=”product-shop”
direkt unter der dem div mit der Produktnamesausgabe
im quelltext wird ausgegeben:
img src=”…….de/skin/frontend/default/templatename/images/logo/.jpg” alt=”"
mageintern - robin2160 Antwort vom Dezember 9th, 2010 14:13:
Wie man sieht wird kein Herstellerwert ausgegeben. Ist dein Attribut hersteller ein Select-Feld oder ein Textfeld?
VG Stefan
Veit Antwort vom Dezember 15th, 2010 15:53:
ist ein textfeld
mageintern - robin2160 Antwort vom Dezember 15th, 2010 18:33:
Die Ausgabe $_product->getAttributeText(‘manufacturer’) ist für das Standard-Selectfeld manufacturer gedacht.
Verwendest du ein eigenes Hersteller-Attribute mit dem Namen hersteller als Textfeld muss die Ausgabe mit
$_product->getHersteller();
aufgerufen werden.
VG Stefan
Hallo, kann ich die Bilder in der list.phtml auch skalieren? also gern kleiner als in der view.phtml!
LG aus HH
Phil
[Antwort]
echt super klasse, bin dir sehr dankbar für alles. knapp 7 monate danach gesucht, jetzt lässt sich auch mein produkt sehen lassen. kannst du hier nachschauen. dein verdienst
www/.littlerabbits/.net
Tausend dank
[Antwort]
Hallo Stefan,
danke für die Antwort. Dann ist klar, warum es so dünn bei den Alternativen zu re-captcha aussieht.
VG Sven
[Antwort]
Sehr schön – funktioniert auf Anhieb! Danke!
P.S.: Wie wär es mal mit einem CAPTCHA für Magento wie in Euren Comments? Sowas würde ich als Modul glatt kaufen.
[Antwort]
mageintern - robin2160 Antwort vom Januar 31st, 2010 15:45:
Hi b_nice,
freut mich das es dir gefällt und funktioniert.
Ein Captcha in magento ist nicht ganz so einfach einzubauen.
Aber wird auch hier an einer umsetzbaren Lösung gearbeitet.
VG Stefan
[Antwort]
in der list.phtml funktioniert das, in der view.phtml nicht. Woran kann das liegen?
feine Grüße und weiter so, diese Seiten sind ein eine Riesenhilfe, auch, um MAGENTO ein wenig besser kennen zu lernen.
feine Grüße
Uws
[Antwort]
mageintern - robin2160 Antwort vom Januar 17th, 2010 16:20:
Hi Uws,
freut mich sehr das es auch dir weiterhilft.
Nun zu deiner Frage.
Vieleicht hast du den String an einer Stelle eingebaut an der keine Ausgabe erfolgen kann,
z.B. innerhalb einer if-Abfrage die nicht greift.
Probiere doch mal den Ausgabestring direkt unterhalb der Titelausgabe oder Description des Produktes einzufügen.
Viele Grüße
Stefan
[Antwort]
Hi, danke für das Tutorial.
Bei mir wird nichts angezeigt. Any Ideas?
Folgende Schritte:
1.) Logo angelegt und nach
../magento/skin/frontend/default/XXX/images/logo/musto.png
verschoben.
2.) Code kopiert und in ../magento/app/design/frontend/default/XXX/template/catalog/product/view.phtml eingefügt
3.) Attribut ist entsprechen der Sichtbarkeit im frontend eingeschaltet
[Antwort]
mageintern - robin2160 Antwort vom Januar 9th, 2010 14:33:
Hi mato99,
da du png Grafiken verwendest solltest du auch den Ausgabestring anpassen.
Einfach von getSkinUrl(‘images/logos/’).$herstellerpic.”.gif”;
nach
getSkinUrl(‘images/logos/’).$herstellerpic.”.png”;
ändern.
VG Stefan
[Antwort]
Wow herzlichen dank, habe mich danach fast totgesucht.
[Antwort]