2010-11-23 38 views
1

我創建了一個使用自定義窗口小部件/格/列於我的管理網顯示的縮略圖和一切工作的模塊。現在我需要在同一個項目中創建另一個模塊,但是圖像列不起作用。它看起來像它甚至沒有加載我的新類,因爲它不會執行任何我放到文件中的stmt。我知道它的正確加載數據,如果我將類型更改爲文本,那麼來自DB的正確信息將填充到該字段中。但是當我更改爲新的「圖像」類型時,單元格爲空。有誰知道爲什麼它不會工作?Magento的改寫工作不

ABT /背景的/ etc/config.xml中 < <不起作用

<global> 
    .... 
    <blocks> 
     <background> 
      <class>ABT_Background_Block</class> 
     </background> 
     <adminhtml> 
      <rewrite> 
       <widget_grid_column>ABT_Background_Block_Widget_Grid_Column</widget_grid_column> 
      </rewrite> 
     </adminhtml> 
    </blocks> 
    .... 
</global> 

我複製到讓我啓動和運行具有完全相同的配置設置,但尚未能正常工作的模塊 ABT /功能的/ etc/config.xml中 < <這個工作正常

<global> 
    .... 
    <blocks> 
     <feature> 
      <class>ABT_Feature_Block</class> 
     </feature> 
     <adminhtml> 
      <rewrite> 
       <widget_grid_column>ABT_Feature_Block_Widget_Grid_Column</widget_grid_column> 
      </rewrite> 
     </adminhtml> 
    </blocks> 
    .... 
</global> 

回答

2

下面是與Magento的發生了什麼,當你重寫一個類。

當Magento的實例化一個Block類,它使用代碼類似如下

$this->getLayout()->createBlock('adminhtml/widget_grid_column') 

createBlock方法是一個工廠。 Magento使用標識符

adminhtml/widget_grid_column 

查找哪個類應該實例化。默認情況下,這是

Mage_Adminhtml_Block_Widget_Grid_Column 

當您創建重寫,你告訴Magento的

嘿。而不是使用「Mage_Adminhtml_Block_Widget_Grid_Column」的「adminhtml/widget_grid_column」,你應該使用「ABT_Background_Block_Widget_Grid_Column」

這意味着,對於任何給定的系統,一類只可改寫一次。在上面顯示的代碼中,您試圖重寫該類兩次。只有一個重寫會贏。

我會採取的快速方法是保留全部您的自定義在一個覆蓋類。

更一般地說,我儘量避免使用重寫。他們是一個強大的系統,但應該謹慎使用。我沒有做太多的網格自定義,但我試圖採取的一般方法是更改​​adminhtml佈局,以從我的自定義模塊實例化新的網格類,擴展現有的網格類,然後可以使用自定義列類。

更多的工作在前面,但是一旦你已經想通了,你可以反覆使用該技術,而不用擔心從重寫中產生衝突。

+0

這聽起來像比我所做的更好的方法。就像我上面所說的那樣,這是我的第一個項目w/magento,所以我是新手。你不會碰巧知道任何資源可以幫助我按照你描述的你的方式跛行嗎? – veilig 2010-11-23 19:38:48

1

我我不確定你的設置是否正確。

不管怎麼說,它看起來像你有在同一類Widget_Grid_Column 2條重寫規則。加載的最後一個模塊是ABT_Feature,因此該塊的規則將覆蓋ABT_Background模塊的規則。

有兩種解決方法:

  1. 合併在一個單一的一個
  2. 的功能和後臺模塊使取決於背景一個功能塊和更新重寫規則,使ABT_Feature_Block_Widget_Grid_Column類將延長ABT_Background_Block_Widget_Grid_Column
+0

你可能是對的 - 我可能沒有正確設置這個設置。這是我第一次工作w/Magento,我只是按照這個指南,讓我的新型工作http://www.krishnasunuwar.com.np/2009/07/ecommerce-software-magento-showing-image-in-grid/ – veilig 2010-11-23 19:12:12