2011-05-10 154 views
0

我一直試圖天,擴展抽象類Magento的擴展Mage_Catalog_Block_Layer_Filter_Abstract

Mage_Catalog_Block_Layer_Filter_Abstract 

我已經試過我已成功地擴展非抽象類的方式,沒有運氣。我需要這樣做,因爲我修改了filter.phtml文件,這是模板的設置。所以我基本上只需要一種方法來更改以下功能,而無需修改任何核心文件,所以這將是兼容的,當我們更新:

public function __construct() 
{ 
    parent::__construct(); 
    $this->setTemplate('catalog/layer/filter.phtml'); 
} 

我不想只是修改核心模板,因爲這將讓刪除當我們更新時。任何幫助或任何其他想法如何做到這一點將不勝感激。我通常只編輯XML文件,但這個模板不是在XML文件中調用的,而且這是我找到的唯一參考。

在此先感謝!

+0

您問到的問題的答案是「class MyClass extends Mage_Catalog_Block_Layer_Filter_Abstract」。但是,很顯然你遇到的問題是別的。直到你可以問一個更好的問題,沒有人會幫助你。不是因爲他們的意思,而是因爲他們不知道你想要什麼。 – 2011-05-10 20:10:55

+0

@AlanStorm,抱歉,但這是我能解釋問題的最好方式。反正我用另一種方式去了解...... – Chad 2011-05-11 21:10:50

回答

1

爲此,我們需要使用setPageSize函數。

Mage_Catalog_Block_Layer_Filter_Abstract類是負責設置過濾模板

您將覆蓋你的模塊類YourNamespace_YourModule_Block_Layer_Filter_Abstract這個Block類。所以,類YourNamespace_YourModule_Block_Layer_Filter_Abstract的路徑是YourNamespace/YourModule /塊/層/過濾/ Abstract.php

因此新文件 - Abstract.php會像

<?php 
class YourNamespace_YourModule_Block_Layer_Filter_Abstract extends Mage_Catalog_Block_Layer_Filter_Abstract 
    { 
     /** 

     */ 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->setTemplate('YourFolder/catalog/layer/filter.phtml'); 
    } 

    } 

下面是XML代碼這將寫入您的自定義模塊的etc/config.xml中。

<global> 
    <blocks> 
     <catalog> 
      <rewrite> 
       <layer_filter_abstract>YourNamespace_YourModule_Block_Layer_Filter_Abstract</layer_filter_abstract> 
      </rewrite> 
     </catalog> 
    </blocks> 
<global>