我正在尝试自定义 magento 的价格分层导航这个线程: http: //www.magentocommerce.com/boards/viewthread/65135/P15/#t278667
但是当我复制并粘贴他的代码时,我遇到了一个错误,请参见下面的代码。有任何想法吗?
protected function _getItemsData()
{
$key = $this->_getCacheKey();
$data = $this->getLayer()->getAggregator()->getCacheData($key);
if ($data === null) {
$range = 100;// $this->getPriceRange();
$minEntries = 30;
$minPercentage = 12; //overrides the previous line if set, sets minEntries to $minPercentage of total items
$lastRange = 5000; //collects everything over this value into one range, must be a multiple of $range. Set to 0 for no last range.
$lastRangeIndex = $lastRange == 0 ? 0 : intval($lastRange / $range);
$dbRanges = $this->getRangeItemCounts($range);
if ( ($minPercentage > 0) && ($minPercentage < 100) ) {
$itemCount = array_sum($dbRanges);
$minEntriesByPercentage = intval( $itemCount * ($minPercentage / 100) );
$minEntries = $minEntriesByPercentage;
}
$data = array();
$collect = 0;
$collectIndex = 0;
$collections = 1;
$lastIndex = 0;
foreach ($dbRanges as $index=>$count) {
if ( ( ( $collect + $count ) >= $minEntries ) && ( ($index <= $lastRangeIndex) || ($lastRangeIndex == 0) ) {
$collections = $collectIndex == 0 ? 1 : ( $index - $collectIndex ) + 1;
$data[] = array(
'label' => $this->_renderItemLabel($range * $collections, $index / $collections),
'value' => ( $index / $collections ) . ',' . $range * $collections,
'count' => $count + $collect,
);
$collect = 0;
$collections = 1;
$collectIndex = 0;
} else {
$collect = $collect + $count;
if ( $collectIndex == 0 ) {
$collectIndex = $index;
}
$collections = $collectIndex == $index ? 1 : ( $index - $collectIndex ) + 1;
}
$lastIndex = $index;
}
if ( $collect > 0 ) {
$data[] = array(
'label' => $this->_renderItemLabel($range * $collections, $lastIndex / $collections),
'value' => ( $lastIndex / $collections ) . ',' . $range * $collections,
'count' => $collect,
);
}
$tags = array(
Mage_Catalog_Model_Product_Type_Price::CACHE_TAG,
);
$tags = $this->getLayer()->getStateTags($tags);
$this->getLayer()->getAggregator()->saveCacheData($data, $key, $tags);
}
return $data;
}