2012-03-23 63 views
1

我想检索我的网站的类别,以建立我自己的类别菜单。 但我不明白如何从类/模型中获取所有类别。所以我创建了一个名为top.phtml的文件,我已经放入了模板/目录/导航,如何检索类别名称和子女? Magento

首先,如果我想创建顶级菜单,我必须将该名称放到该文件夹​​中吗?我能否决定将TopMenu.phtml的名称放在哪里?因为在埃夫里我是红色的,他们也是这样做的。

第二:我必须调用什么函数?我一直在这里:http://www.magentix.fr/ergonomie-web/agencer-page-accueil-site-magento.html但做到这一点对我来说没有按牛逼的工作方式。我添加的代码到我的文件top.phtml正确堪称page.xml:

<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

感谢您的回答,我ma web dev用于使用CodeIgniter或没有任何模板,我不能清楚地看到Magento编程方式背后的逻辑。

编辑:有什么与类别有关? Becaue我尝试默认类别下创建子类别,它做的工作,但如果我创建一个新的根类别,它根本没有认可它。为什么

回答

3

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

你可以命名你的模板文件,无论你喜欢什么。但是,最好遵循命名和建立惯例。模板文件名取决于您的布局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 wiki有一些很好的信息,但是Google在周围,你会发现大量真正有用的资源来理解Magento的设计系统。

与分类有什么关系? Becaue我尝试默认类别下创建子类别,它做的工作,但如果我创建一个新的根类别,它根本没有认可它。为什么

根类是你用什么确定所选商店目录的基础。你永远不会看到根类别出现在前端(你不应该)。根类别中的每个子类别都是顶级类别;这些子类别(第三类)下的子类别将在Magento前端显示为您的“第二级”类别。您可能需要查看Magento的GWS(“全球,网站,商店”)范围系统,以及它如何在多商店设置中管理商品目录数据,以更好地理解为什么根类别以这种方式运作。

希望这会有所帮助!

+0

伟大的工作Jona,谢谢!很有帮助 ! – 2012-03-26 14:23:36

相关问题