通过xml添加后,前端/ Mymodule / Block / Item.php文件代码无法在前端访问

时间:2012-03-16 06:41:30

标签: zend-framework magento

我正在处理一个模块,例如“ Mymodule ”,我需要过滤结果。即对于我创建 Partner.php 的合作伙伴,对于社区我在

中创建了 Community.php
Mymodule/Block/Partner.php 
Mymodule/Block/Community.php

现在我想通过Mymodule.XML

访问前端的代码
<block type="mymodule/partner" ......................... />

但这对LIVE SERVER不起作用,虽然它可以在本地Wamp服务器上运行:( ......任何想法?

虽然当我访问默认的Mymodule.php代码并添加我放在合作伙伴和社区文件中的代码时,它确实有效。

我有什么遗失的吗?

2 个答案:

答案 0 :(得分:3)

首先,您必须在模块的config.xml中定义块:

<config>
    <global>
        <blocks>
            <mymodule>
                <class>Namespace_Mymodule_Block</class>
            </mymodule>
        </blocks>
    </global>
</config>

其次,您必须在布局XML中使用正确的块类型:

<block type="mymodule/partner" ......................... />

您不能在块类型中写“.php”。请注意,在配置xml和块类型中,术语“ mymodule ”必须相同。

希望这有帮助!

答案 1 :(得分:1)

我并不完全确定你的代码是如何工作的。但假设您之前没有构建过模块,则至少需要3个文件。

app/etc/modules/Sonassi_Module.xml
app/code/community/Sonassi/Module/etc/config.xml
app/code/community/Sonassi/Module/Block/Partner.php

在第一个文件中... app/etc/modules/Sonassi_Module.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Sonassi_Module>
      <active>true</active>
      <codePool>community</codePool>
    </Sonassi_Module>
  </modules>
</config>

在第二个档案中...... app/code/community/Sonassi/Module/etc/config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Sonassi_Module>
      <version>0.1.0</version>
    </Sonassi_Module>
  </modules>
  <frontend>
    <routers>
      <module>
        <use>standard</use>
        <args>
          <module>Sonassi_Module</module>
          <frontName>module</frontName>
        </args>
      </module>
    </routers>
  </frontend>
  <global>
    <blocks>
      <module>
        <class>Sonassi_Module_Block</class>
      </module>
    </blocks>
  </global>
</config>

在第三个档案中...... app/code/community/Sonassi/Module/Block/Partner.php

class Sonassi_Module_Block_Partner extends Core_Block_Template
{

}

最后,您可以使用

<block type="module/partner" ......................... />