2013-02-01 73 views
0

我有3個問題,我的正常谷歌努力沒有回答。我是過去兩週一直在嘗試學習Magento的內部前端Web開發人員。我也是新來張貼堆棧溢出,所以讓我知道如果這些會更好張貼爲單獨的問題或其他東西。重新排列產品塊

1.佈局 - 使其成爲這樣每一個單頁使用相同的佈局

所以我的大部分頁面都用我的2columns左的佈局,但不是所有的人。我在我的local.xml中有一些設置,有些我只是直接在.phtml頁面中進行硬編碼。我還以爲下面的代碼就可以把所有網頁上使用相同的佈局:

<reference name="root"> 
    <action method="setTemplate"><template>page/2columns-left.phtml</template></action> 
    <action method="setIsHandle"> 
     <applied>1</applied> 
    </action> 
</reference> 

有很多的網頁我一般不看的時候被卡住默認Magento的佈局,在現場工作,如啓用/ cookies的頁面或評論頁面。如果您希望在整個網站上使用相同的佈局,那麼統一所有頁面的最佳做法是什麼,而不是在每個單獨頁面的local.xml中都有這樣的塊?

2.聯繫表格 - 點擊提交按鈕不起作用

我編輯下CMS>頁聯繫我們頁面,我想我可能是缺少我的表單動作是文件指向。表格顯示,但不提交。
這裏是我有我們的聯繫我們CMS頁:

{{block type='core/template' name='contactForm' form_action="/contacts/index/post/"  template='contacts/form.phtml'}} 

這裏的點擊提交按鈕後,我得到的錯誤:

Not Found 

The requested URL /contacts/index/post/ was not found on this server. 

我已經通過配置設置過去了,我覺得那些是正確的,但也許還有其他事情我必須在那裏做。

3.產品評論 - 獲得一個「整體」的評級,顯示

我有利用form.phtml顯示在我的產品頁面,你登錄並添加評論後複查DIV,但收視率沒有被顯示。我顯然不滿足if語句的條件,以控制是否應顯示評分。下面是它被抓住的if語句我相信:

<?php if($this->getRatings() && $this->getRatings()->getSize()): ?> 

我不知道如何滿足這些條件。

4.重新排列塊 - 使用local.xml中重新排列其中,方塊會

之前,我開始開發的壞習慣,我要確保我使用的是從一開始走的最佳實踐。我通常剛進入模板文件並手動移動出現在phtml中的東西,但我已經聽說最好在XML中進行這些更改。我似乎無法弄清的一個特殊問題是一個看似簡單的問題:如何使「繼續結帳」按鈕移動到購物車的底部?

我試圖取消它,然後重新設置它後其他塊。我甚至沒有能夠讓unsetChild部分工作。這是我的本地代碼。xml:

<reference name="content"> 
    <action method="unsetChild"> 
     <name>checkout.cart.top_methods</name> 
    </action> 
</reference> 

我認爲這是行不通的原因是因爲在checkout.xml中它是孩子的​​孩子。以下是checkout.xml的一般流程:

<checkout_cart_index> 
    <reference name="content"> 
     <block name="checkout.cart"> 
      **<block name="checkout.cart.top_methods">** 

任何想法?非常感謝,並且對這篇文章的長度感到抱歉!

回答

2

1°)編輯您所有的佈局XML的根引用的佈局改變2columns-leftf.phtml模板

你也可以經過一個觀察者。觀察controller_action_layout_generate_blocks_after事件,並在你的方法去做:

public function myEventHandling($event) { 
    $event->getAction()->getLayout()->getBlock('root')->setTemplate('page/2columns-left.phtml'); 
} 

2°)模塊聯繫控制器索引操作postAction(),所以它應該是/聯繫人/索引/後/所以它應該工作。除非您使CMS頁面替換/聯繫人/正常行爲(模塊聯繫人控制器索引操作indexAction()),它將在您的cms頁面下而不是聯繫人模塊中進行搜索。如果您的CMS頁面有聯繫人作爲網址,請嘗試更改它。

3°)你能更精確嗎?我真的不明白你需要什麼。表格或現有評級沒有顯示出來?

4°)UnsetChild或刪除指令是全局的,您必須在替換後使用不同的名稱進行設置。但是你可以在你的模板目錄(而不是在基/默認/佈局目錄中的)編輯佈局文件,以在適當的位置移動的塊,並在PHTML文件,嘗試移動

echo $this->getChildHtml('myblock') 

在適當的位置。

+0

感謝dagfr的迴應。 – Aaron14

+0

1.當你說「編輯所有佈局xml」時,這是否意味着編輯每個單獨的佈局文件,如cart.xml,checkout.xml等?我希望能夠在layout.xml中的一個塊中完成所有更改,而不必爲每個單獨的頁面設置一個塊。也許這是不可能的。 2.有趣的是,我會試一試。 3.對不起,我不是更清楚。當有人撰寫評論時,我希望他們添加評論,並對產品評分1-5。評論的文本字段顯示出來了,但收視率卻沒有。 4.這就是我一直在做的,通過phtml文件,但它是一個最佳實踐? – Aaron14

+0

1°)是的,你必須改變你所有的layout.xml這是最乾淨的方式。至少改變所有包含對root的引用。如果您不想這樣做,請使用Observer方式。 2°)更新我:) 3°)好吧,需要檢查問題是否來自設計不包括評級,或者如果評級已啓用(查看目錄/評論和評級/管理評級,查看是否至少啓用了1個評級 4°)其他解決方案通過更改佈局使其「乾淨」,並且現有文件沒有變化,但這不是一個更好的做法。無法解釋剩餘的40個字符。如果需要,告訴我。 – dagfr