magento 模板可用的函数

本文详细介绍了如何使用PHP实现电子商务网站的导航菜单和分类显示功能,包括获取商店分类目录、显示顶级目录、子分类浏览及当前分类的高亮显示。
实例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;
?>

==================================================================

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值