/** * 処理の介入箇所とコールバック関数を設定 * registerはプラグインインスタンス生成時に実行されます * * @param SC_Helper_Plugin $objHelperPlugin */ function register(SC_Helper_Plugin $objHelperPlugin) { $objHelperPlugin->addAction('prefilterTransform', array(&$this, 'prefilterTransform'), 1); }
/** * プラグインヘルパーへ, コールバックメソッドを登録します. * * @param object $objPluginHelper * @param integer $priority */ function register(SC_Helper_Plugin $objHelperPlugin, $priority) { if (isset($this->arrSelfInfo['plugin_hook_point'])) { $arrHookPoints = $this->arrSelfInfo['plugin_hook_point']; foreach ($arrHookPoints as $hook_point) { if (isset($hook_point['callback'])) { $hook_point_name = $hook_point['hook_point']; $callback_name = $hook_point['callback']; $objHelperPlugin->addAction($hook_point_name, array($this, $callback_name), $priority); } } } }
/** * Utility function to set a hook point. * * @param string $hook_point hook point * @param array $arrArgs argument passing to callback function * @param boolean $plugin_activate_flg * @return void */ public static function hook($hook_point, $arrArgs = array(), $plugin_activate_flg = PLUGIN_ACTIVATE_FLAG) { $objPlugin = SC_Helper_Plugin::getSingletonInstance($plugin_activate_flg); $objPlugin->doAction($hook_point, $arrArgs); }
function register(SC_Helper_Plugin $objHelperPlugin) { $objHelperPlugin->addAction('LC_Page_Products_Detail_action_after', array($this, 'LC_ProductsDetail')); $objHelperPlugin->addAction('prefilterTransform', array(&$this, 'prefilterTransform')); }
/** * Utility function to set a hook point. * * @param string $hook_point hook point * @param SC_SiteView[] $arrArgs argument passing to callback function * @param boolean $plugin_activate_flg * @return void */ public static function hook($hook_point, $arrArgs = array(), $plugin_activate_flg = PLUGIN_ACTIVATE_FLAG) { // エラー処理中は実行しない if (SC_Helper_HandleError_Ex::$under_error_handling) { return; } $objPlugin = SC_Helper_Plugin::getSingletonInstance($plugin_activate_flg); // 以前、エラー処理中に (オブジェクトではない) false に対し、doAction をコールする不具合があった。(#1971, #2551) // 現在、そういった状況は回避している認識だが、念のため同様の状況が発生した場合、ログを残し、実行しない。 if (!is_object($objPlugin)) { // XXX 致命的エラーの処理中だと、この方法ではログが残らない模様。実質的に問題無いと考えている。 trigger_error('プラグインの処理で意図しない状況が発生しました。', E_USER_WARNING); return; } $objPlugin->doAction($hook_point, $arrArgs); }
/** * 処理の介入箇所とコールバック関数を設定 * registerはプラグインインスタンス生成時に実行されます * * @param SC_Helper_Plugin $objHelperPlugin * @return void */ function register(SC_Helper_Plugin $objHelperPlugin) { $objHelperPlugin->addAction("loadClassFileChange", array(&$this, "loadClassFileChange"), $this->arrSelfInfo['priority']); }