2010-05-22 94 views
3

這是我對Magento的看法(如果我錯了,請糾正我)Magento佈局相關的基本問題?

1)每個模塊都有自己的layout.xml存儲在/ interface/theme/layouts /文件夾中。 2)Magento加載當前主題的所有這些佈局,並創建一個大的XML文件。

現在我很困惑。 a)如果magento加載/默認/默認/(接口&主題)那麼爲什麼所有模板&佈局都在base/default/??裏面。

B)如果我創造我的命名空間「傑森」,即Jason_Page在我的模塊名稱「頁」,現在會發生在佈局文件)塊,其被命名爲

C,因爲C的所有佈局都裝了什麼併合併成一個大的XML文件,那麼所有那些具有相同名稱屬性並位於「默認」句柄標籤內的引​​用塊會發生什麼? 例如

d)什麼是Local.xml佈局和它的用途? e)wats模塊名稱foo和其佈局名稱foo.xml之間的關係? 如果diff名稱空間中存在兩個名稱相同的模塊,會發生什麼情況?

在此先感謝。

+0

在一個側面說明,這大概應該是幾個問題使人們能夠回答他們所知道的部分。 – 2010-05-22 13:01:36

回答

3

1)每個模塊可以選擇定義進入/ interface/theme/layouts /文件夾的佈局文件。您可以通過在模塊的config.xml文件中指定佈局來實現此目的:

<frontend> 
    <layout> 
     <updates> 
      <jason_page> 
       <file>jasonpage.xml</file> 
      </jason_page> 
     </updates> 
    </layout> 
</frontend> 

2)是的。

a)Magento的界面是使用後代構建的。模板和佈局首先從您選擇的界面和主題中提取,如果沒有找到,將從基地取得。這使您只能定義那些在創建新基礎時從基礎改變的事物。

b)如果您創建一個塊一個新的模塊,您將指定在config.xml中那些塊類路徑:

<global> 
    <blocks> 
     <jason_page> 
      <class>Jason_Page_Block</class> 
     </jason_page> 
    </blocks> 
</global> 

這將定義標籤jason_page指你的塊。然後,定義一個佈局時,您將引用您的塊爲:

<block type='jason_page/blockname' as='blockname' name='blockname' /> 

而且你的塊將被命名爲:Jason_Page_Block_Blockname/app/code/local/Jason/Page/Block/Blockname.php

C)每次使用<reference>標記時間,並添加一些子塊,就像你說的那樣,它們被添加到大樹中。確保爲塊使用不同的name/as標籤,並且您會沒事的。如果名稱相同,則可能會導致錯誤。 d)local.xml(在app/etc中)爲你的站點定義了一些配置參數,比如數據庫連接信息和加密密鑰。它不需要佈局。

d部分2)由於您定義了佈局文件(包括其名稱),因此不會導致衝突。選擇一個比頁面更獨特的模塊名稱將會走得更遠。如果您確實有一個與默認模塊名稱相同的模塊(例如Page),則在您的config.xml文件中聲明該文件時,將該文件與您的名稱空間作爲前綴。

希望有幫助!

謝謝, 喬

+0

我一直在尋找這些答案。非常感謝你親愛的:) 唯一剩下的就是爲什麼參考標籤不適合我? 我剛剛創建了我的模塊和模板,並在模塊內部我嘗試使用引用名稱=「右」標記來封裝我的模塊,但它沒有工作? – 2010-05-23 17:01:47

+0

@ user197992如果它仍然無法正常工作,請嘗試從config.xml和layout.xml中發佈一些代碼,以確保。如果我的答案解決了問題,請務必點擊它旁邊的複選標記以將其標記爲正確:) – 2010-05-23 21:03:02

+0

參考標籤也可以正常工作,我也再次表示感謝。 – 2010-05-24 11:10:03

0

只需添加到喬的回答,你可以有接口/主題/佈局/ local.xml中,並且將所有其他核心和模塊的佈局XML文件後加載。

使用此文件進行本地主題自定義。

0

我剛剛寫了一篇關於如何使用靜態塊的文章。這裏是它的肉:

第一步:在你的Magento管理

Magento管理面板 - >靜態Blocks->創建靜態塊添加新Block

1)命名您的靜態塊,在這種情況下,自定義頁腳鏈接

2)標籤標識符(這是鏈接,你將使用在這種情況下,後調用該塊),自定義頁腳鏈接

3)選擇什麼商店視圖你想它在

4)設置狀態呈現爲Enabled

2)現在最有趣的部分!將您的導航鏈接添加到該塊。確保使用它們來匹配您的網站的顏色和主題。

第二步:插入代碼調用靜態塊

這部分將需要您到FTP到您的Magento網站並修改footer.phtml APP->設計 - >前端 - >默認 - >(模板) - >模板 - >頁面級> footer.phtml

尋找到你想要你的導航鏈接顯示和插入頁腳:

getLayout() - > createBlock('CMS /塊') - > setBlockId(' 定製頁腳鏈接) - > toHtml(); ?>

現在大多數情況下,Static塊應該顯示得很好,但在某些情況下,您將需要執行一些額外的步驟來顯示塊。

1)除了插入的:

getLayout() - > createBlock(「CMS /塊」) - > setBlockId(「定製頁腳鏈接」) - > toHtml(); ?>

用途:

自定義頁腳鏈接

2)修改的catalog.xml APP->設計 - > frontend->默認 - > f002->佈局 - >目錄。XML

下添加

自定義頁腳鏈接