如何检索类别名称和孩子? Magento的

时间:2012-03-23 18:06:06

标签: magento model

我想检索我的网站的类别,以便建立我自己的类别菜单。 但我不明白如何从类/模型中获取所有类别。所以我创建了一个名为top.phtml的文件,我将其放在模板/目录/导航中,

首先,如果我要创建一个顶级菜单,是否必须将该名称放入该文件夹中?我不能决定把它放在我想要的名字TopMenu.phtml的哪个地方?因为在我看来我是红色的,他们也是这样做的。

第二:我必须打电话给我的功能是什么?我一直在这里:http://www.magentix.fr/ergonomie-web/agencer-page-accueil-site-magento.html但这样做的方式对我不起作用..我将该代码添加到我在page.xml中正确调用的文件top.phtml中:

<div class="category-list" style="background-color:white;">
<h2>Nos produits</h2>
<?php
    foreach ($this->getStoreCategories() as $_category):
            if($_category->getIsActive()):
                    $_category = Mage::getModel('catalog/category')->load($_category->getId());
                    $layer = Mage::getSingleton('catalog/layer')->setCurrentCategory($_category);
                    ?>        
                         <div class="category-list-view">
                                <a href="<?php echo $this->getCategoryUrl($_category)?>" title="<?php echo $_category->getName()?>">
                                       <img src="<?php echo $this->getCurrentCategory()->getImageUrl(); ?>" alt="<?php echo $_category->getName() ?>" />
                                </a>
                                <h3><a href="<?php echo $this->getCategoryUrl($_category)?>" class="name" title="<?php echo $_category->getName()?>"><?php echo $_category->getName()?></a></h3>
                         </div>
                    <?php
            endif;
    endforeach;
?> 
</div>

最后:我在哪里可以找到像CodeIgniter一样清晰的用户指南?我找到了,但我从未找到任何答案:http://www.magentocommerce.com/wiki/doc/webservices-api/api#magento_core_api

感谢您的回答,我是一个曾经使用CodeIgniter或没有任何模板的Web开发人员,我无法清楚地看到Magento编程方式背后的逻辑。

编辑:这些类别有什么关系吗?我尝试在默认类别下创建一个子类别,它确实有效,但是如果我创建一个新的根类别,它根本就没有识别它..为什么

1 个答案:

答案 0 :(得分:3)

  

首先,如果我要创建一个顶级菜单,是否必须将该名称放入该文件夹中?我不能决定把它放在我想要的名字TopMenu.phtml的哪个地方?因为在我看来我是红色的,他们也是这样做的。

您可以随意命名模板文件。但是,最好遵循命名法和既定惯例。模板文件名取决于您的布局XML。它应该具有template属性,例如<block name="x" type="x/y" template="catalog/navigation/topmenu.phtml" />(例如)。

  

第二:我必须打电话给我的功能是什么?我来过这里:http://www.magentix.fr/ergonomie-web/agencer-page-accueil-site-magento.html但这样做的方式对我不起作用

模板可用的功能(topmenu.phtml文件)取决于块的类型。在布局XML中,应指定与所需功能相对应的块类型。在您的情况下,您可能正在寻找块类型为catalog/navigation。如果查看./app/code/core/Mage/Catalog/Block/Navigation.php,您可以查看模板可用的公共方法。这里的一些方法有助于生成(嵌套)类别列表。这是您getStoreCategories()方法的来源。请记住,这些块继承自多个父类,因此您可以获得比初学时更多的方法。

  

我在哪里可以找到像CodeIgniter一样清晰的用户指南?我找到了,但我从未找到任何答案:http://www.magentocommerce.com/wiki/doc/webservices-api/api#magento_core_api

这是Magento API的链接。您需要的是关于Magento布局XML及其中的设计层的教程。 Magento维基有一些很好的信息,但谷歌周围你会发现很多非常有用的资源来理解Magento的设计系统。

  

这些类别有什么关系吗?我尝试在默认类别下创建一个子类别,它确实有效,但是如果我创建一个新的根类别,它根本就没有识别它..为什么

您可以使用根类别来标识所选商店的目录基础。你永远不会看到根类别出现在前端(你不应该)。根类别中的每个子类别都是顶级类别;这些子类别(大学类别)下的子类别将作为Magento前端的“二级”类别出现。您可能希望了解Magento的GWS(“全局,网站,商店”)范围系统,以及它如何在多商店设置中管理目录数据,以便更好地理解根类别以这种方式运行的原因。

希望这有帮助!