5. März, 2013
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; ?>
17. Okt., 2011
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.