Magento 自定义模块块不起作用

Magento custom module block not working

我正在使用

在 cms 页面中调用我的自定义模块块
{{block type="customreviews/reviews" name="customreviews_reviews" template="Customreviews/reviews.phtml"}}

我的模块配置文件如下:

<config>
<modules>
    <Suave_Customreviews>
        <version>0.0.1</version>
    </Suave_Customreviews>
</modules>

<global>
    <models>
        <customreviews>
            <class>Suave_Customreviews_Model</class>
        </customreviews>
    </models>
    <blocks>
        <customreviews>
            <class>Suave_Customreviews_Block</class>
        </customreviews>
    </blocks>
    <herlps>
        <customreviews>
            <class>Suave_Customreviews_Helper</class>
        </customreviews>
    </herlps>
</global>

<frontend>
    <routers>
        <customreview>
            <use>standard</use>
            <args>
                <module>Suave_Customreviews</module>
                <frontName>customreviews</frontName>
            </args>
        </customreview>
    </routers>
    <layout>
        <updates>
            <customreviews>
                <file>Customreview.xml</file>
            </customreviews>
        </updates>
    </layout>
</frontend>

我在名为 Reviews.php 的模块中创建的

block php 文件是

class Suave_Customreviews_Model_Reviews extends Mage_Core_Block_Template

{

public function firstTenCategoryReviews()
{
    $data = Mage::getSingleton('customreviews/reviews')->firstTenCategoryReviews();
    return $data;
}

}

我的magento版本是1.9.2.4 我已经在 magento admin 中允许 customreviews/reviews 阻止权限,但仍然无法正常工作。

有块class是错误的。应该是

Suave_Customreviews_Block_Reviews extends Mage_Core_Block_Template

请检查您的 xml 文件是否缺少节点。

<config>
<modules>
    <Suave_Customreviews>
        <version>0.0.1</version>
    </Suave_Customreviews>
</modules>

<global>
    <models>
        <customreviews>
            <class>Suave_Customreviews_Model</class>
        </customreviews>
    </models>
    <blocks>
        <customreviews>
            <class>Suave_Customreviews_Block</class>
        </customreviews>
    </blocks>
    <herlps>
        <customreviews>
            <class>Suave_Customreviews_Helper</class>
        </customreviews>
    </herlps>
</global>

<frontend>
    <routers>
        <customreview>
            <use>standard</use>
            <args>
                <module>Suave_Customreviews</module>
                <frontName>customreviews</frontName>
            </args>
        </customreview>
    </routers>
    <layout>
        <updates>
            <customreviews>
                <file>Customreview.xml</file>
            </customreviews>
        </updates>
    </layout>
</frontend>
</config>  <!-- Check if you missed this node  -->

根据您的 config.xml 文件中提到的代码,您缺少 </config> 节点。我假设您在 xml 文件中使用 <?xml version="1.0"?> 作为第一行。

你也尝试过 Suman Singh 提到的方法吗?

经过大量谷歌搜索后,我发现了问题。

我使用的模块名称是 customreviews 但我命名的模型和块 php 文件的名称是 Reviews.php.

默认情况下,magento 检查以模块名称命名的模块和块文件。

所以我将模型和块 php 文件重命名为模块名称并且成功了。

如 Suman Singh 所述,我的块代码也存在问题。

感谢苏曼的指正