magento 模板可用的函数

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实例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;
?>

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

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值