2012-03-01 89 views
0

我有一個非常奇怪的問題。Magento佈局重寫

我創建了有它自己的佈局XML模塊,並以正確的手柄具有

<reference name="product_list"> 
    <action method="setTemplate"><template>rebates/product/list.phtml</template></action> 
</reference> 

更新使用正確的模板。

我還重寫了模塊以使用我的阻止class Company_Module_Block_List extends Mage_Catalog_Block_Product_List

我正在使用Alan Storms commerecebug,所以我知道該塊正在被使用。此外,我使用?showLayout查看了頁面佈局xml,並且看到正在調用setTemplate方法。

當我打電話

public function _construct(){  
    parent::_construct(); 
    echo $this->getTemplate(); 
} 

在塊,正確的模板顯示出來,但如果我創建

protected function _toHtml(){ 
    parent::_toHtml(); 
    echo $this->getTemplate(); 
} 

它恢復到舊模板?

+0

打開模板路徑提示,這將顯示渲染時實際正在使用的模板。在佈局階段之後有可能會改變模板,可能是第三方模塊? – clockworkgeek 2012-03-01 19:38:31

+0

我這樣做了,它使用了錯誤的模板。 – josephtikva1 2012-03-01 20:46:51

+2

事實上,在應用action方法之前,在'_construct()'方法中調用'echo $ this-> getTemplate();'會發生**,所以它*應該顯示錯誤的模板。這使我相信您的問題中的一些相關信息缺失。 – Vinai 2012-03-01 21:01:44

回答

0

我最終加入了

function _beforeToHtml(){ 
    $this->setTemplate('my_template.phtml'); 
} 

我不喜歡它,但它的工作原理,以及該模塊是不依賴於工作的其他佈局....