Magento二次開発の利器:Rewrite
Magentoは非常に優れた電子商取引システムですが、新しい機能を追加したり、既存の機能を変更したりする必要がある場合があります.一般的には、自分で開発した拡張モジュール(module)で要求を満たすことができます.システムのデフォルトの動作(決済、登録など)を変更する必要がある場合は、Magento自身のモジュールのコードを直接変更することを提唱しません(変更後はアップグレードできません.アップグレード後の変更はアップグレード後のファイルで上書きされるためです).この場合、Magentoが提供するrewriteメカニズムは私たちの要求を満たすことができます.
Magentoでrewriteできるオブジェクトは、Block、Controller(frontendおよびadmin)、Modelです.
最も一般的なのはrewrite controllerです.参照:
Magento Controllerをリロードする方法 .
rewriteコントローラにより、従来のurlを変更することなく、システム自体のモジュールのいくつかの動作を変更できます.
次にrewrite blockです.方法は以下を参照してください.
MagentoでBlockをサブクラスで置き換える
Rewrite blockは、システムの既存のblockクラスに新しいフィールド、メソッド、新しいtemplateなどを追加することができます.
最後にrewrite modelを使用できます.方法は次のとおりです.
1.プロファイルconfig.xmlに追加:
Rewrite model後、
および
実際に取得されたクラスは次のとおりです.
および
既存のモデルに新しいフィールドを追加したり、新しい方法を変更したり、追加したりすることができます.
Magentoでrewriteできるオブジェクトは、Block、Controller(frontendおよびadmin)、Modelです.
最も一般的なのはrewrite controllerです.参照:
Magento Controllerをリロードする方法 .
rewriteコントローラにより、従来のurlを変更することなく、システム自体のモジュールのいくつかの動作を変更できます.
次にrewrite blockです.方法は以下を参照してください.
MagentoでBlockをサブクラスで置き換える
Rewrite blockは、システムの既存のblockクラスに新しいフィールド、メソッド、新しいtemplateなどを追加することができます.
最後にrewrite modelを使用できます.方法は次のとおりです.
1.プロファイルconfig.xmlに追加:
<models>
<enterprise_catalogpermissions> <!-- rewrite model -->
<rewrite>
<!-- rewrite -->
<!-- -->
<observer>Glamour_Glscustomer_Model_Observer</observer>
</rewrite>
</enterprise_catalogpermissions>
<customer>
<rewrite>
<session>Glamour_Glscustomer_Model_Customer_Session</session>
</rewrite>
</customer>
...
</models>
Rewrite model後、
Mage::getModel('enterprise_catalogpermissions/observer')
および
Mage::getModel('customer/session')
実際に取得されたクラスは次のとおりです.
Glamour_Glscustomer_Model_Observer
および
Glamour_Glscustomer_Model_Customer_Session
. 既存のモデルに新しいフィールドを追加したり、新しい方法を変更したり、追加したりすることができます.