Magento2 イベントをObserverで検知する
の編集
https://yassu.jp/pukiwiki/index.php?Magento2+%A5%A4%A5%D9%A5%F3%A5%C8%A4%F2Observer%A4%C7%B8%A1%C3%CE%A4%B9%A4%EB
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[Magentoめも]] *Magento2 イベントをObserverで検知する [#r5ce9026] Magento2内ではいわゆるフックポイントがあちこちに仕掛けられています。 例えばこんな感じ。 $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]); Observerにてこれをフックし、拡張することができるようです。 *events.xmlの定義 [#kcac2c9e] vendor\magento\module-catalog\Controller\Category\View.php に設定されている catalog_controller_category_init_after イベントをフックします。 events.xml を設置するパスは管理画面だと adminhtml、公開画面だと frontend となります。 etc/frontend/events.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="catalog_controller_category_init_after"> <observer name="yassujp_helloworld_catalog_controller_category_init_after" instance="Yassujp\HelloWorld\Observer\MyObserver" /> </event> </config> *Observerクラスの実装 [#ia13abbf] Observerクラスは Observer フォルダ以下に設置します。 dispatchで渡された変数は $observer->getEvent() で取得できるみたいです。 Observer/MyObserver.php <?php namespace Yassujp\HelloWorld\Observer; use Magento\Framework\Event\ObserverInterface; class MyObserver implements ObserverInterface { public function __construct() { } public function execute(\Magento\Framework\Event\Observer $observer) { $category = $observer->getEvent()->getCategory(); echo $category->getName().' Local'; } } これでカテゴリページを閲覧したときに、左上に表示している カテゴリ名 Local と表示されていることが確認できます。 *既存のObserverの無効化 [#r2bd5154] コアに定義されているObserverを無効化することもできるようです。~ typeの値に disabled を指定してみましょう。 参考~ http://devdocs.magento.com/guides/v2.0/extension-dev-guide/events-and-observers.html
タイムスタンプを変更しない
[[Magentoめも]] *Magento2 イベントをObserverで検知する [#r5ce9026] Magento2内ではいわゆるフックポイントがあちこちに仕掛けられています。 例えばこんな感じ。 $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]); Observerにてこれをフックし、拡張することができるようです。 *events.xmlの定義 [#kcac2c9e] vendor\magento\module-catalog\Controller\Category\View.php に設定されている catalog_controller_category_init_after イベントをフックします。 events.xml を設置するパスは管理画面だと adminhtml、公開画面だと frontend となります。 etc/frontend/events.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="catalog_controller_category_init_after"> <observer name="yassujp_helloworld_catalog_controller_category_init_after" instance="Yassujp\HelloWorld\Observer\MyObserver" /> </event> </config> *Observerクラスの実装 [#ia13abbf] Observerクラスは Observer フォルダ以下に設置します。 dispatchで渡された変数は $observer->getEvent() で取得できるみたいです。 Observer/MyObserver.php <?php namespace Yassujp\HelloWorld\Observer; use Magento\Framework\Event\ObserverInterface; class MyObserver implements ObserverInterface { public function __construct() { } public function execute(\Magento\Framework\Event\Observer $observer) { $category = $observer->getEvent()->getCategory(); echo $category->getName().' Local'; } } これでカテゴリページを閲覧したときに、左上に表示している カテゴリ名 Local と表示されていることが確認できます。 *既存のObserverの無効化 [#r2bd5154] コアに定義されているObserverを無効化することもできるようです。~ typeの値に disabled を指定してみましょう。 参考~ http://devdocs.magento.com/guides/v2.0/extension-dev-guide/events-and-observers.html
テキスト整形のルールを表示する