Archiv für Magento

Ausblenden von leeren Attributen

In der Artikel Detailansicht ist es immer unschön, wenn leere Attribute mit „Nein“ oder „Nicht angegeben“ angezeigt werden.

Dies lässt sich aber ganz einfach unterbinden:

Öffnen der Datei (wenn nicht vorhanden, aus dem „base“ Verzeichnis in das eigene Template Verzeichnis kopieren)

/app/design/frontend/default/<Eigenes Template>/template/catalog/product/view/attribute.phtml

Hier dann folgenden Code suchen:

<?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; ?>

und durch folgenden Code ersetzen:

<?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; ?>

Share

Tab Problem bei Internet Explorer 9

Eines der nervigsten Sachen in der Webentwicklung ist immer noch die Cross-Browser Problematik.

Hier mal wieder ein passendes Beispiel:

In Magento gibt es in der Produkt Detailansicht bei einigen Themes die Tabs (Artikelbeschreibung, Zusatzinformationen und Schlagworte im Standard). Im IE9 funktioniert die Umschaltung jedoch nicht – im FF und Chrome geht es problemlos.

Das Problem ist eigentlich ganz einfach zu beheben:

Als erstes öffnen wir die Datei „<dein template>/catalog/product/view/tabs.phtml“ und suchen folgenden Code:

showContent: function(a) {
var li = $(a.parentNode), ul = $(li.parentNode);
ul.select(‚li‘, ‚ol‘).each(function(el){
var contents = $(el.id+’_contents‘);
if (el==li) {
el.addClassName(‚active‘);
contents.show();
} else {
el.removeClassName(‚active‘);
contents.hide();
}
});
}

und ersetzen diesen durch:

showContent: function(a) {
var li = $(a.parentNode), ul = $(li.parentNode);
ul.select(‚li‘).each(function(el){
var contents = $(el.id+’_contents‘);
if (el==li) {
el.addClassName(‚active‘);
contents.show();
} else {
el.removeClassName(‚active‘);
contents.hide();
}
});
}

So einfach kann es sein, wenn man weiß, woran es liegt :)

Dann am besten noch im Magento Backend den Cache löschen/aktualisieren.

Share