回覆列表
  • 1 # niioo358

    第一步,你需要建立屬於你自己程式碼的名稱空間,例如App,為了方便與大家分享程式碼,我將空間命名為App。app/code/core/local/App/假如你現在打算修改Mage/Catalog/Block/Breadcrumbs.php這個檔案,你可以在你的名稱空間,App裡新增一個新的模組 “Catalog”。接下來建立塊(Block)目錄,並複製Breadcrumbs.php到你的新目錄中。這裡還需要你建立一個config.xml 配置檔案。app/code/core/local/App/Catalog/Block/Breadcrumbs.phpapp/code/core/local/App/Catalog/Block/etc/config.xml修改Breadcrumbs.php的類名為App_Catalog_Block_Breadcrumbs,並繼承原類名Mage_Catalog_Block_Breadcrumbs。現在,你需要啟用你的新模組,這樣magento才能夠知道你的新模組。建立檔案app/etc/modules/App_All.xml,新增如下程式碼。下面我們需要一個特殊的標籤來複寫掉Breadcrumbs,下面我們透過模組的配置檔案來實現。重寫Magento區塊(Blocks)編輯檔案”app/code/local/App/Catalog/etc/config.xml”我們需要新增一個”blocks” 標籤,或者在已經存在的”blocks”標籤中新增內容。然後在模組名後面新增rewrite標籤,在這個例子中模組名是”catalog”。然後我們看 “breadcrumbs”標籤,這個標籤幫助magento找到我們我們想修改的塊。在我們的列子中,breadcrumbs是Magento核心程式碼 中的類名: app/code/core/Mage/Catalog/Block/Breadcrumbs.php。如果你有更多的目錄層級,可以用下滑線來分隔。例如:在這個例子中,我們重寫了app/code/core/Mage/Catalog/Block/Category/View.php。在breadcrumbs標籤中的值是你的類名,這樣Magento就可以獲取你的類,因為類名與你的目錄名一致。用過zend framework的人都知道,自動載入auto loader這個東西,它會跟你類名中的下滑線去你的目錄中需要對應的類檔案。記住一點,下滑線代表下一級別的資料夾,如果你的類名與你的檔案目錄名不一 致,那麼Magento根本不會理睬你。舉例來說:App_Catalog_Block_Breadcrumbs → /app/code/local/App/Catalog/Block/Breadcrumbs.phpApp_Catalog_Block_Category_View → /app/code/local/App/Catalog/Block/Category/View.php

  • 中秋節和大豐收的關聯?
  • 手動擋的換擋手球使用什麼形式的最科學?