实例1:
------------------------------------------------------------
<?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
<?php if($_menu): ?>
<div class="nav-container">
<ul id="nav">
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php if(stristr('YOURID1,YOURID2,YOURID3', $_category->getId()) === FALSE) : ?>
<?php echo $this->drawItem($_category) ?>
<?php endif ?>
<?php endforeach ?>
<?php// echo $_menu ?>
</ul>
</div>
<?php endif ?>
===================================================================
$this 是实例化Mage_Catalog_Block_Navigation 类
renderCategoriesMenuHtml() 在
app\code\core\Mage\Catalog\Block\Navigation.php
--------------------------------------------------------------------------
class Mage_Catalog_Block_Navigation extends Mage_Core_Block_Template
{
public function getCacheKeyInfo()
public function getCurrenCategoryKey()
public function getStoreCategories()
public function getCurrentChildCategories()
public function isCategoryActive($category)
public function getCategoryUrl($category)
public function drawItem($category, $level = 0, $last = false)
public function getCurrentCategory()
public function getCurrentCategoryPath()
public function drawOpenCategoryItem($category)
public function renderCategoriesMenuHtml($level = 0, $outermostItemClass = '', $childrenWrapClass = '')
======================================================
参看 实例4。
getStoreCategories() 获得商店的分类目录对象数组
顶级目录组。
$_category 为值
----------------------------------------------------------------------
Mage_Catalog_Model_Category Object
(.....................
[_data:protected] => Array
(
[entity_id] => 10
[entity_type_id] => 9
[attribute_set_id] => 12
[parent_id] => 3
[created_at] => 2007-08-23 11:45:22
[updated_at] => 2008-08-08 00:01:18
[path] => 1/3/10
[position] => 10
[level] => 2
[children_count] => 2
[is_anchor] => 1
[is_active] => 1
[include_in_menu] => 1
[custom_use_parent_settings] => 1
[custom_apply_to_products] => 1
[name] => Furniture
[display_mode] => PRODUCTS
[url_key] => furniture
[image] => furniture.jpg
[url_path] => furniture
[meta_title] =>
[custom_design] =>
[page_layout] =>
[all_children] => 10,22,23
[path_in_store] => 10
[children] => 22,23
[description] =>
[meta_keywords] =>
[meta_description] =>
[custom_layout_update] =>
)
...............................................
)
=================================================================
getId() 是获得 entity_id 的值。
getChildren() 获得 [children] ,字符串 。 子分类
getAllChildren() 获得 [all_children] ,字符串。 所有分类。
getUrlPath() 获得 [url_path]。
实例2:
获得子分类
---------------------------------------------------------------
<h3>Browse by Category</h3>
<div class="leftnav-container">
<ul id="leftnav">
<?php
$_categories = $this->getStoreCategories();
foreach($_categories as $cat) {
$categoryid = $cat->getId();
$_category = Mage::getModel('catalog/category')->load($categoryid);
$child_categories = $_category->getChildren();
$all_child_categories = $_category->getAllChildren(); //array consisting of all child categories id
$child = strtok($child_categories,",");
while($child !== false){
$childcat = Mage::getModel('catalog/category')->load($child);
echo '<li class="current"><a href=" ' . $childcat->getUrlPath() . '">' . $childcat->getName() .'</li>';
$child = strtok(",");
}
}
?>
</ul>
</div>
======================================================
Mage::getModel('catalog/category')->load($categoryid);
加载具体的分类模型。
实例3
-------------------------------------------------------------------------
<ul>
<?php
foreach ( $this->getStoreCategories() as $_category ) {
if ( $this->isCategoryActive( $_category ) ) {
?>
<li><h2><?php echo $_category->getName() ?></h2></li>
<?php
$children = $_category->getChildren();
$hasChildren = $children && $children->count();
if ( $hasChildren ) {
$this_id = $_category->getId();
foreach ( $children as $child ) {
if ( $child->getIsActive() ) {
?>
<li<?php echo ( $this->isCategoryActive( $child ) ) ? " class='current'" : "" ?>><a href="<?php echo $this->getCategoryUrl( $child ); ?>"><?php echo $child->getName(); ?></a></li>
<?php
}
}
}
}
}
?>
</ul>
=================================================================
foreach ( $this->getStoreCategories() as $_category )
将顶级目录组依次循环调出,
$_category 为单个的顶级目录
$_category->getName() 单个顶级目录名。
实例4
-----------------------------------------------------------------------------
<h3>Browse by Category:</h3>
<ul>
<?php
$obj = new Mage_Catalog_Block_Navigation();
$store_cats = $obj->getStoreCategories();
$current_cat = $obj->getCurrentCategory();
$current_cat = (is_object($current_cat) ? $current_cat->getName() : '');
foreach ($store_cats as $cat) {
if ($cat->getName() == $current_cat) {
echo '<li class="current"><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a>\n<ul>\n";
foreach ($obj->getCurrentChildCategories() as $subcat) {
echo '<li><a href="'.$this->getCategoryUrl($subcat).'">'.$subcat->getName()."</a></li>\n";
}
echo "</ul>\n</li>\n";
} else {
echo '<li><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a></li>\n";
}
}
?>
</ul>
============================================================================
实例5
------------------------------------------------------------------------------
<?php //code to generate the list for categories
$layer = Mage::helper('catalog/category');
$_categories=$layer->getStoreCategories();
if($_categories->count()):
$catlist ='<select>';
foreach($_categories as $cat)
{ //$id1 = $cat->getId();
if($cat->getIsActive()):
$catlist .= '<option value="'.$cat->getId().'">'.$this->htmlEscape($cat->getName()).'</option>';
endif;
}
echo $catlist.'</select>';
endif;
?>
==================================================================
magento 模板可用的函数
最新推荐文章于 2021-06-04 04:56:23 发布