我可以使用magento中的模板在主页上显示类别吗?

时间:2011-10-22 12:38:12

标签: magento-1.4 magento-1.5 magento

我创建了一个简单的自定义模块,在主页上显示我的类别,为此,我在自定义模块中创建了一个模型文件和一个阻止文件。并在我的CMS(主页)中输入了这一行

{{block type="Definitivemagento_Helloword/randomproducts"}}

现在我希望使用模板(Phtml文件和Xml文件),因为我想添加一些css并设计我想用Phtml文件做的部分。是否可以做..这里是模型类和Block Class的当前代码。

class Pragtech_Sweet_Block_Category extends Mage_Core_Block_Template
{
    protected function _toHtml()
    {   $catModel = Mage::getModel('Pragtech_Sweet/category');
        $myCategory = $catModel->getCategory();
        $html = "<ul>";
        foreach ($myCategory as $category)
        {
        $name = $category->getName();

        $categoryLink = this->helper('catalog/category')->getCategoryUrl($category);
        $html .= "
        <p>
        <a href='$categoryLink'>$name</a><br/>
        <!-- $name <br/> -->
        </p>";
        }
        $html .= "<ul>";
        //echo "<pre>"; print_r($html); exit;
        return $html;
    }
}

我的模型类是: -

Class Pragtech_Sweet_Model_Category extends Mage_Core_Model_Abstract
{
    public function getCategory()
    {
        $categoryCollection = Mage::getModel('catalog/category')
        ->getCollection()
        ->addAttributeToSelect('name');

        $categoryCollection->getSelect()->order(entity_id);
        //print_r($categoryCollection); exit;
        return $categoryCollection;
    }

2 个答案:

答案 0 :(得分:1)

您可以使用类似

的内容从另一个phtml块模板渲染任意块
<?php echo $this->getLayout()->createBlock('definitivemagento_helloword/randomproducts')->toHtml(); ?>

答案 1 :(得分:0)

<div class="categories">
<ul>
<?php
foreach ($this->getStoreCategories() as $_category): ?>
  <?php echo $this->drawItem($_category) ?>
  <?php endforeach; ?>
</ul>
</div>

在您需要的任何phtml文件中添加此脚本并调用它,将显示所有类别及其各自的子类别。
注意:您应该从管理面板添加类别。