magentoに読み込む前にページコンテンツを変更する


回答:


16

すべてのリクエストはMagentoのコントローラーを通じて処理されるMage_Cms_PageControllerので、cms/pageヘルパーが実際にページをレンダリングしているところから始めます。

これはメソッドで行われ_renderPageます。このメソッドでは、cms_page_render107行目のイベントを検索します。このイベントは、他のオブジェクトの中でも特にオブジェクトを提供しpageます。

このオブジェクトには、ページのすべてのデータが含まれています。これで、config.xmlに追加することにより、カスタムビルド拡張からこのイベントを監視できます。

<?xml version="1.0"?>
<config>
  <global>
    <events>
      <cms_page_render>
        <observers>
          <your_extension_cms_observer>
            <type>singleton</type>
            <class>Your_Extension_Model_Csm_Observer</class>
            <method>changeContent</method>
          </your_extension_cms_observer>
        </observers>
      </cms_page_render>     
    </events>
  </global>
</config>

これは、次のようなクラスYour_Extension_Model_Csm_Observer、メソッドchangeContentを呼び出します

class Your_Extension_Model_Csm_Observer
{

    public function changeContent($observer)
    {
      $event = $observer->getEvent();
      $cms_page = $event->getPage();   

      [...]
    your code goes here
      [...]

      return $this;
    }
}

オブザーバーの詳細については、このWikiページを確認してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.