2014年9月29日月曜日

EC-CUBEプラグインの基本的な機能について その2

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(後)」をフックして処理を追加するといった具合になっております。


about


要するに、フックしたい処理(ページ)のクラス処理したいタイミングをくっつけた名前を指定します。


そして、フックした時に行う処理が、最後の「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 = "タイトルの表示内容をフックした処理で変更!!";
}

主要部分をこんな感じで、記述してやると処理終わりをフックして、タイトルを変更できます。
about2


まとめ


処理をフックするには、「regster」へフックポイントを記述してやる。
フックポイントを設定するには
$objHelperPlugin->addActionを呼んでやる
どのページをフックするかは、「引数1」、フックした際の処理については「引数2」で指定する。

引数1の形式
フックするページのクラス + “_action_” + 処理タイミング


※処理タイミング
ページの処理を行う前に、フックする ・・・ begin
ページの処理を行った後、フックする ・・・ after


引数2の形式
好きな名前をつける!!


ってな感じです。


次回は、テンプレート(Smarty)の表示をフックして変更する方法について説明したいと思います。

0 件のコメント:

コメントを投稿