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に追加:

<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
.
既存のモデルに新しいフィールドを追加したり、新しい方法を変更したり、追加したりすることができます.