I need help with the following error:
Fatal error: Call to a member function getno_cart_button() on a non-object in /var/home/hifi-studio_at/www/app/design/frontend/default/theme582/template/catalog/product/compare/list.phtml on line 134
This error occurs only in the compare-list. I made an Attribute called "no_cart_button", if it is checked, the product does not show the "Cart-Button" any more, but instead a "Anfrage (Ask)" linking to a Contact-Page. On all other lists and grids it does work. But why no here? This is the code I used:
<!-- // Warenkorb in Anfrage verändern // Start // -->
<?php if($_product->getno_cart_button()){ ?> <div class="add-to-cart"><button type="button" title="<?php echo $this->__('Anfrage') ?>" class="button btn-cart" onClick="parent.location='/kontakt'"><span><span><?php echo $this->__('Anfrage') ?></span></span></button></div> <?php }
else { ?> <p><button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setPLocation('<?php echo $this->helper('catalog/product_compare')->getAddToCartUrl($_item) ?>', true)"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p> <?php } ?>
<?php else: ?>
<!-- // Warenkorb in Anfrage verändern // ENDE // -->
This Error also occurs only with Products that have this attribute. Others don't show the cart button nor the error.
Any suggestions? Thanks!
?>
<div class="page-title title-buttons">
<h1><?php echo $this->__('Compare Products') ?></h1>
<a href="#" onclick="window.print(); return false;" class="link-print"><?php echo $this->__('Print This Page') ?></a>
</div>
<?php $_total=$this->getItems()->count() ?>
<?php if($_total): ?>
<table class="data-table compare-table" id="product_comparison">
<?php $_i=0 ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($_i++%10==0): ?>
<col width="1" />
<?php endif; ?>
<col width="<?php echo floor(100/$_total); ?>%" />
<?php endforeach; ?>
<?php if ($_total>2): ?>
<thead>
<tr>
<?php $_i=0 ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($_i++%10==0): ?>
<th> </th>
<?php endif; ?>
<td class="a-right"><a href="#" class="btn-remove" onclick="removeItem('<?php echo $this->helper('catalog/product_compare')->getRemoveUrl($_item) ?>');" title="<?php echo $this->quoteEscape($this->__('Remove This Item')) ?>"><?php echo $this->__('Remove This Item') ?></a></td>
<?php endforeach; ?>
</tr>
</thead>
<?php endif ?>
<tbody>
<tr class="product-shop-row top">
<?php $_i=0 ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($_i++%10==0): ?>
<th> </th>
<?php endif; ?>
<td>
<a class="product-image" href="#" onclick="setPLocation('<?php echo $this->getProductUrl($_item) ?>', true)" title="<?php echo $this->stripTags($_item->getName(), null, true) ?>"><img src="<?php echo $this->helper('catalog/image')->init($_item, 'small_image')->resize(125, 125); ?>" width="125" height="125" alt="<?php echo $this->stripTags($_item->getName(), null, true) ?>" /></a>
<h2 class="product-name"><a href="#" onclick="setPLocation('<?php echo $this->getProductUrl($_item) ?>', true)" title="<?php echo $this->stripTags($_item->getName(), null, true) ?>"><?php echo $this->helper('catalog/output')->productAttribute($_item, $_item->getName(), 'name') ?></a></h2>
<?php echo $this->getReviewsSummaryHtml($_item, 'short') ?>
<?php echo $this->getPriceHtml($_item, true, '-compare-list-top') ?>
</td>
<?php endforeach; ?>
</tr>
<tr class="product-shop-row bottom">
<?php $_i=0 ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($_i++%10==0): ?>
<th> </th>
<?php endif; ?>
<td>
<?php if($_item->isSaleable()): ?>
<!-- // Warenkorb in Anfrage verändern // START // -->
<?php if($_product->getno_cart_button()){ ?> <p><button type="button" title="<?php echo $this->__('Anfrage') ?>" class="button btn-cart" onClick="parent.location='/kontakt'"><span><span><?php echo $this->__('Anfrage') ?></span></span></button></p> <?php }
else { ?> <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> <?php } ?>
<?php else: ?>
<!-- // Warenkorb in Anfrage verändern // ENDE // -->
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<ul class="add-to-links">
<li><a href="<?php echo $this->getAddToWishlistUrl($_item) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
</ul>
<?php endif; ?>
</td>
<?php endforeach; ?>
</tr>
</tbody>
<tbody>
<?php foreach ($this->getAttributes() as $_attribute): ?>
<tr>
<?php $_i=0 ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($_i++%10==0): ?>
<th><span class="nobr"><?php echo $_attribute->getStoreLabel() ?></span></th>
<?php endif; ?>
<td>
<?php switch ($_attribute->getAttributeCode()) {
case "price": ?>
<?php echo $this->getPriceHtml($_item, true, '-compare-list-' . $_attribute->getCode()) ?>
<?php break;
case "small_image": ?>
<img src="<?php echo $this->helper('catalog/image')->init($_item, 'small_image')->resize(125, 125); ?>" width="125" height="125" alt="<?php echo $this->escapeHtml($_item->getName()) ?>" title="<?php echo $this->escapeHtml($_item->getName()) ?>" />
<?php break;
case "date":
echo substr($this->getProductAttributeValue($_item, $_attribute),0,10);
break;
default: ?>
<div class="std">
<?php echo $this->helper('catalog/output')->productAttribute($_item, $this->getProductAttributeValue($_item, $_attribute), $_attribute->getAttributeCode()) ?>
</div>
<?php break;
} ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
<tbody>
<tr class="add-to-row">
<?php $_i=0 ?>
<?php foreach($this->getItems() as $_item): ?>
<?php if($_i++%10==0): ?>
<th> </th>
<?php endif; ?>
<td>
<?php echo $this->getPriceHtml($_item, true, '-compare-list-bottom') ?>
<!-- // Warenkorb in Anfrage verändern // START // -->
<?php if($_product->getno_cart_button()){ ?> <p><button type="button" title="<?php echo $this->__('Anfrage') ?>" class="button btn-cart" onClick="parent.location='/kontakt'"><span><span><?php echo $this->__('Anfrage') ?></span></span></button></p> <?php }
else { ?> <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> <?php } ?>
<?php else: ?>
<!-- // Warenkorb in Anfrage verändern // ENDE // -->
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<ul class="add-to-links">
<li><a href="<?php echo $this->getAddToWishlistUrl($_item);?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
</ul>
<?php endif; ?>
</td>
<?php endforeach; ?>
</tr>
</tbody>
</table>
<div class="buttons-set">
<button type="button" title="<?php echo $this->quoteEscape($this->__('Close Window')) ?>" class="button" onclick="window.close();"><span><span><?php echo $this->__('Close Window') ?></span></span></button>
<span class="please-wait" id="compare-list-please-wait" style="display:none;">
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->quoteEscape($this->__('Please wait...')) ?>" title="<?php echo $this->quoteEscape($this->__('Please wait...')) ?>" class="v-middle" /> <?php echo $this->__('Please wait...') ?>
</span>
</div>
<script type="text/javascript">
decorateTable('product_comparison');
/**
* Send remove item request, after that reload windows
*/
function removeItem(url)
{
new Ajax.Request(url, {
parameters: {isAjax: 1, method: 'POST'},
onLoading: function(){$('compare-list-please-wait').show();},
onSuccess: function(transport) {
$('compare-list-please-wait').hide();
window.location.reload();
window.opener.location.reload();
}
});
}
</script>
<?php else: ?>
<script type="text/javascript">window.close();</script>
<?php endif; ?>