Magento – Attribute ausblenden, die “Nicht verfügbar” sind

Magento verfügt über die Möglichkeit für Artikel x-beliebig viele Attribute einzurichten und zu pflegen. Nun ist das eine Attribut (aus demselben Attributset) jedoch für einen Artikel interessant und für den anderen nicht. Daraus folgt also, dass es Attribute gibt, die bei einem Artikel gefüllt sind und beim anderen nicht. Die Aussage “Nicht verfügbar” ist für einen Kunden aber nicht wirklich zielführend, sondern eher verwirrend.

Somit muss eine Lösung her, um Attribute ohne Wert bzw. “Nicht verfügbar” auszublenden. Ein Code nach dem Motto “Wenn Nicht verfügbar, dann nichts anzeigen. Wenn verfügbar, dann anzeigen”.

Dieser Code muss dann in die attributes.phtml im Ordner app/design/frontend/[base oder default]/[IhrTemplate]/template/catalog/product/view.

Und zwar wird folgender Code ersetzt:

<?php foreach ($_additional as $_data): ?>
<tr>
<th class=”label”><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
<td class=”data”><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
</tr>
<?php endforeach; ?>

ca. in Zeile 43. Anstelle dieser Codezeilen wird dann folgender Schnipsel verwendet:

<?php foreach ($_additional as $_data): ?>
<?php $_attribute = $_product->getResource()->getAttribute($_data['code']);
if (!is_null($_product->getData($_attribute->getAttributeCode())) && ((string)$_attribute->getFrontend()->getValue($_product) != ”)) { ?>
<tr>
<th class=”label”>
<?php echo $this->htmlEscape($this->__($_data['label'])) ?>
</th>
<td class=”data”>
<?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?>
</td>
</tr>
<?php } ?>
<?php endforeach; ?>

Mit diesem Code wird dann genau das erreicht: Wenn Attribut “Nicht verfügbar” dann komplett ausblenden.

Genutzt in Magento Version 1.5.1.0 Kommentare? Ergänzungen? Hinweise? Gerne!

Dieser Beitrag wurde unter Magento Design abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

4 comments on “Magento – Attribute ausblenden, die “Nicht verfügbar” sind

  1. Marcus on said:

    Hallo Commercers,

    ich würde gerne wissen wie man Attribute verlinkt. In der additionaldata-Tabelle kann man ja z.B. “blau” beim Attribut “Farbe” ausgeben lassen. Nun würde ich aber den Wert “blau” verlinken sodaß man auf Klick alle blauen Artikel angezeigt kriegt. Ich denke mal, dass es funktioniert wenn man in der attributes.phtml die Attribut-Ausgabe in einen link einbettet, z.B. beim Attribut Farbe mit “/catalogsearch/advanced/result/?color%5B%5D=154″ wo bei in diesem Beispiel 154 die ID für “blau” ist.

    Könnt ihr mir helfen?

    Herzliche Grüße,
    Marcus

  2. Henry on said:

    Hi!
    Geht das auch mit 1.7.0.2???
    Bekomme das leider nicht hin!

    Ich wäre für Hilfe sehr dankbar!

  3. Henry on said:

    Das ist der richtige Code für Magento 1.7.0.2:

    getResource()->getAttribute($_data['code']);
    if (!is_null($_product->getData($_attribute->getAttributeCode())) && ((string)$_attribute->getFrontend()->getValue($_product) != ”)) { ?>

    htmlEscape($this->__($_data['label'])) ?>
    productAttribute($_product, $_data['value'], $_data['code']) ?>

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

12.775Spam-Kommentare bisher blockiert vonSpam Free Wordpress

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">