Tuesday 12 May 2015

Magento How to add Next previous link in product page



<?php
if (!$_product->getCategoryIds())
    return; // Don’t show Previous and Next if product is not in any category

$cat_ids = $_product->getCategoryIds(); // get all categories where the product is located
$cat = Mage::getModel(‘catalog/category’)->load($cat_ids[0]); // load first category, you should enhance this, it works for me

$order = Mage::getStoreConfig(‘catalog/frontend/default_sort_by’);
$direction = ‘asc'; // asc or desc

$category_products = $cat->getProductCollection()->addAttributeToSort($order, $direction);
$category_products->addAttributeToFilter(‘status ’, 1); // 1 or 2
$category_products->addAttributeToFilter(‘visibility ’, 4); // 1.2.3.4

$cat_prod_ids = $category_products->getAllIds(); // get all products from the category
$_product_id = $_product->getId();

$_pos = array_search($_product_id, $cat_prod_ids); // get position of current product
$_next_pos = $_pos + 1;
$_prev_pos = $_pos – 1;

// get the next product url
if (isset($cat_prod_ids[$_next_pos])) {
    $_next_prod = Mage::getModel(‘catalog/product’)->load($cat_prod_ids[$_next_pos]);
} else {
    $_next_prod = Mage::getModel(‘catalog/product’)->load(reset($cat_prod_ids));
}
// get the previous product url
if (isset($cat_prod_ids[$_prev_pos])) {
    $_prev_prod = Mage::getModel(‘catalog/product’)->load($cat_prod_ids[$_prev_pos]);
} else {
    $_prev_prod = Mage::getModel(‘catalog/product’)->load(end($cat_prod_ids));
}
?>

<?php if ($_prev_prod != NULL): ?>

    <a class=”pre-pro” href=”<?php print $_prev_prod->getUrlPath();
    if ($search_parameter): ?>?search=1<?php endif; ?>”><?php echo $this->__(‘previous product’) ?></a>
<?php endif; ?>

<?php if ($_next_prod != NULL): ?>
    <a class=”nex-pro” href=”<?php print $_next_prod->getUrlPath();
    if ($search_parameter): ?>?search=1<?php endif; ?>”><?php echo $this->__(‘Next product’) ?></a>

<?php endif; ?>

No comments:

Post a Comment