文章彙整

如何在magento 1 使用event for controller

By Steffi 7 months agoNo Comments
首頁  /  Magento  /  Magento 進階操作  /  如何在magento 1 使用event for controller

在magento上開發程式時,常需要在原生程式碼前後新增功能,這時善用event功能可以省時省力,以下為新增會員之前觸發event中function的程式碼範例:

<events>

<customer_logout>

<observers>

<sso_logout>

<type>singleton</type>

<class>Mio_Customer_Model_Observer</class>

<method>ssoLogout</method>

</sso_logout>

</observers>

</customer_logout>

<controller_action_predispatch_customer_account_createpost>

<observers>

<customer_register_validate>

<type>singleton</type>

<class>Mio_Customer_Model_Observer</class>

<method>validateRegister</method>

</customer_register_validate>

</observers>

</controller_action_predispatch_customer_account_createpost>

<sales_order_place_before>

<observers>

<customer_opcregister_validate>

<type>singleton</type>

<class>Mio_Customer_Model_Observer</class>

<method>OpcRegister</method>

</customer_opcregister_validate>

</observers>

</sales_order_place_before>

</events>

我們要解析的是這個區塊的程式碼:

<controller_action_predispatch_customer_account_createpost>

<observers>

<customer_register_validate>

<type>singleton</type>

<class>Mio_Customer_Model_Observer</class>

<method>validateRegister</method>

</customer_register_validate>

</observers>

</controller_action_predispatch_customer_account_createpost>

讓我們看看以下程式碼 :

<controller_action_predispatch_customer_account_createpost>

這個標籤的意思是,要對controller執行event動作,接著看到action_predispatch連接的字串,是要告訴magento:「我想要在 customer_account_createpost之前觸發event」,也就是在extension customer→controller→account→createpost的function之前觸發event,但要觸發哪一隻function呢?,我們再看底下的標籤:

<observers>

<customer_register_validate>

<type>singleton</type>

<class>Mio_Customer_Model_Observer</class>

<method>validateRegister</method>

</customer_register_validate>

</observers>



<observers>標籤名稱必須固定帶入,下一層為<customer_register_validate>,這個標籤裡的名稱由我們去定義,以便於開發者辨識,其中<type>固定不變,接下來注意這段程式碼:

<method>validateRegister</method>

這裡的意思就是指,要觸發的是Mio_Customer這個extension底下的Model→Observer.php→function validateRequest()。
event功能為magento特有,可以在不改變原生架構的情況下去增加你想要的功能,善用可以幫助工作效率唷!之後我們會再介紹如何在magento 1 使用event for model,不要忘記訂閱我們的電子報,以及追蹤我們的Facebook粉絲專頁喔!

更多Magento相關文章請看: Magento教學導覽

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Category:
  Magento 進階操作

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。