2012-03-16 39 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