在产品详细页面的产看上一个,下一个产品的代码!

 

<!--for next & prev link-->

<?php // prev- / next-link...

//不是很明白为什么要赋值:$_helper!!

    $_helper = $this->helper('catalog/output');

//Data[]里面的数据--通过$this->get();

    $_product = $this->getProduct();

    $prev_url = $next_url = $url = $_product->getProductUrl();

//$this->helper('catalog/data')->getCategory():得到当前的category对象。如果存在,赋值。如果不存在通过另外一种方式取得

 

    if ($this->helper('catalog/data')->getCategory()) {

        $category = $this->helper('catalog/data')->getCategory();

    } else {

//先得到当前的产品,然后得到categoryids(“分类”数组),这里只用第一个($_ccats[0]),然后通过Mage::getModel()->load()方法得到实例化的“分类对象”

        $_ccats = $this->helper('catalog/data')->getProduct()->getCategoryIds();

        $category = Mage::getModel('catalog/category')->load($_ccats[0]);

    }

 

    $children = $category->getProductCollection();

//不是很明白

    $_count = is_array($children) ? count($children) : $children->count();

    if ($_count) {

        foreach ($children as $product) {

//得到所有的产品的ID。存放到数组$plist.

            $plist[] = $product->getId();

        }

 

        /**

         * Determine the previous/next link and link to current category

         */

        $current_pid  = $this->helper('catalog/data')->getProduct()->getId();

//array_search()函数的作用是在数组中查找一个值所对应的键。

        $curpos   = array_search($current_pid, $plist);

        // get link for prev product

//

        $previd   = isset($plist[$curpos+1])? $plist[$curpos+1] : $current_pid;

        $product  = Mage::getModel('catalog/product')->load($previd);

        $prevpos  = $curpos;

        while (!$product->isVisibleInCatalog()) {

            $prevpos += 1;

//如果存在下一个,则等于下一个,没有则等于自己的

            $nextid   = isset($plist[$prevpos])? $plist[$prevpos] : $current_pid;

            $product  = Mage::getModel('catalog/product')->load($nextid);

        }

        $prev_url = $product->getProductUrl();

 

        // get link for next product

        $nextid   = isset($plist[$curpos-1])? $plist[$curpos-1] : $current_pid;

        $product  = Mage::getModel('catalog/product')->load($nextid);

        $nextpos  = $curpos;

        while (!$product->isVisibleInCatalog()) {

            $nextpos -= 1;

//

            $nextid   = isset($plist[$nextpos])? $plist[$nextpos] : $current_pid;

            $product  = Mage::getModel('catalog/product')->load($nextid);

        }

        $next_url = $product->getProductUrl();

    }

?>

 

 

<div class="prevNextcategoriesNavigation">

    <div class="for-next">

        <?php if ($url != $prev_url):?>

            <a class="next-product" href="<?php echo $prev_url; ?>">

                <?php echo $this->__('<- Prev') ?>

            </a>

        <?php endif; ?>

    </div>

     <div class="for-categories">

        <ul>

            <li> <?php echo $this->__('Back to Categories:') ?></li>

            <?php  $categories = $_product->getCategoryIds(); ?>

            <?php  foreach($categories as $k => $_category_id): ?>

            <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?>

            <li><a class="back-to-catalog" href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a></li>

            <?php endforeach; ?>

        </ul>

    </div>  

    <div class="for-prev">

        <?php if ($url != $next_url):?>

            <a class="prev-product" href="<?php echo $next_url; ?>">

                <?php echo $this->__('next ->') ?>

            </a>

        <?php endif; ?>

    </div>

</div>

<!--for next & prev link-->

 

 

//得到当前的分类下的所有产品

$productCollection = $this->helper('catalog/data')->getCategory()->getProductCollection();

//得到当前产品对应的所有分类

$category =$this->helper('catalog/data')->getProduct()->getCategoryIds();

补充:

1、获取店铺$store = Mage::app()->getStore();

你可以print一下$store,它是Mage_Core_Model_Store对象,获取数据可以通过下面代码获取

$store = Mage::app()->getStore()->getData();

2、获取当前店铺配置的配置$value = Mage::app()->getStore()->getConfig($path)

 

 

 

先得到productId数组,然后再利用这个数组进行key的加减实现上一个,下一个产品,

$url = $_product->getProductUrl();

通过url与 $prev_url ,$next_url是否相等来判断,如果相等,则没有下一个产品,活着没有上一个产品!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值