<!--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是否相等来判断,如果相等,则没有下一个产品,活着没有上一个产品!!