2012-03-16 155 views
0

我正在模块上工作,例如“Mymodule”,其中需要过滤结果。即合作伙伴,我创建Partner.php和社区我命名空间/ Mymodule/Block/Item.php文件代码在通过xml添加后无法在前端访问

Mymodule/Block/Partner.php 
Mymodule/Block/Community.php 

创建Community.php现在我想通过Mymodule.XML

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

访问前端的代码,但这个在LIVE SERVER上不起作用,虽然它在本地Wamp服务器上工作:(......任何想法?

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

有什么我失踪?

+0

<块类型= “MyModule的/社区” ......................... /> <块类型= “MyModule的/ MyModule的”。 ........................ /> – atif 2012-03-19 05:48:16

回答

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" ......................... /> 
+0

如果将代码池定义为本地代码,则必须使用路径中的'local'文件夹。此外,你不需要config.xml中的整个'frontend'标签... – Simon 2012-03-17 10:19:59

+0

@sonassi我使用moduleCreator,所以我的所有文件都被添加,就像配置一样。xml,system.xml,mymodule.xml和所有工作文件的层次结构,但仍然无法获得我想要的实况。 – atif 2012-03-19 05:47:30

+0

@atif好吧,自从我发布以来,你已经改变了你的代码和问题,所以这使得它变得困难。我提供了工作代码,所以我可以建议的是使用我放置的内容并冲洗缓存。 – 2012-03-19 14:11:58

3

首先,你必须在你的模块的config.xml限定块:

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

其次,你必须在你的布局XML的使用权块类型:

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

你必须不要在块类型中写入“.php”。请注意,术语“mymodule”在配置xml以及块类型中必须相同。

希望这会有所帮助!

+0

谢谢@simon的回复。对于缺少代码和错误,实际上我只放了一段代码,更进一步,我已经定义了config.xml中的块。 ,也在模块中,我写在xml中的合作伙伴不是partner.php。编辑了问题 – atif 2012-03-19 05:44:40