SYSTEM_KDです。
今回も、前回に引き続き、EC-CUBEプラグインの基本的な機能についてです。
前回かなりざっくりEC-CUBEプラグインの基本的な機能について書かせて頂いたのですが、表面的な部分だけでしたので、もう少し掘り下げてみたいと思います。
どの部分を掘り下げるかといいますと、フックポイントの登録部分「register」の部分です。
フックポイント=処理へ介入できるポイントですが、実際どうやって実装するかと言うと、こんな感じです。
// フックポイントの設定
function register(SC_Helper_Plugin $objHelperPlugin) {
$objHelperPlugin->addAction('LC_Page_Abouts_action_after', array($this, 'abouts_after'));
}
これで、フックポイントとコールバック用の関数を設定しております。
と言ってもよくわからないかもしれませんので、細かく見ていきます。
まず、
$objHelperPlugin->addAction(
は、フックポイントを活かすよーという設定を行います。
どのフックポイントを活かすかと言いますと、引数の「LC_Page_Abouts_action_after」の部分になります。
実は、これは、「クラス名」 + “_action_” + 「タイミング」という形式で設定しており、上記ですと、「LC_Page_Abouts」(当サイトについてページ)の処理の「after(後)」をフックして処理を追加するといった具合になっております。
要するに、フックしたい処理(ページ)のクラスと処理したいタイミングをくっつけた名前を指定します。
そして、フックした時に行う処理が、最後の「array($this, 'abouts_after')」の部分になります。
重要なのは、「abouts_after」の部分で、この名前がコールバック処理(実際にフックさせた時の処理)関数の名前になります。
function abouts_after($objPage) {
// フックした時の処理を記述
}
試しに、変更してみます。
function register(SC_Helper_Plugin $objHelperPlugin) {
$objHelperPlugin->addAction('LC_Page_Abouts_action_after', array($this, 'abouts_after'));
}
// aboutsページの処理終わりをフック
function abouts_after($objPage) {
$objPage->tpl_title = "タイトルの表示内容をフックした処理で変更!!";
}
主要部分をこんな感じで、記述してやると処理終わりをフックして、タイトルを変更できます。
まとめ
処理をフックするには、「regster」へフックポイントを記述してやる。
フックポイントを設定するには
$objHelperPlugin->addActionを呼んでやる
どのページをフックするかは、「引数1」、フックした際の処理については「引数2」で指定する。
引数1の形式
フックするページのクラス + “_action_” + 処理タイミング
※処理タイミング
ページの処理を行う前に、フックする ・・・ begin
ページの処理を行った後、フックする ・・・ after
引数2の形式
好きな名前をつける!!
ってな感じです。
次回は、テンプレート(Smarty)の表示をフックして変更する方法について説明したいと思います。
0 件のコメント:
コメントを投稿