バージョン選択

フォーラム

メニュー

オンライン状況

70 人のユーザが現在オンラインです。 (58 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 70
もっと...

サイト内検索

機能要望 > その他 > 【プラグイン機能】感想や要望

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ECCUORE
投稿日時: 2012/4/6 10:41
対応状況: −−−
長老
登録日: 2009/10/22
居住地: 東京
投稿: 248
【プラグイン機能】感想や要望
プラグイン機能について、実際に作成した感想や要望、意見を下記スレッドに
五月雨で記載してしまっていたので、本スレッドにまとめます。
(開発合宿に参加したかったのですが、参加でき無そうなので皆様の作業叩き台としてお考えいただければ幸いです)

【リリース】EC-CUBE2.12.0 α版をリリースいたしました
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=10155&forum=14
【EC-CUBE2.12】プラグイン機能
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=9756&forum=14

2.12.0α公開後、プラグインを10件ばかり検討、作成してみました。
プラグイン化が出来たのが5件ほどです。
プラグイン化が出来なかった5件で出てきた障壁、問題を列挙していきたいと思います。

1.「元の処理のDBアクセス時と同時に行わせたい処理」
行き詰った点としては、「DBアクセス時に同時に行わせたい処理」をどう実現するかです。
対象フックポイント[lc_page_products_review_action_complete]
lfRegistRecommendDataで書き込まれたレコードにIPをUPDATEするという処理をプラグインで実装する予定でした。
ただ、lfRegistRecommendDataで発行されるreview_idは、関数の変数に格納される為、review_idの判断がプラグイン側で出来ません。

現在シーケンス値と書き込み内容や性別などから推測は出来るものの、少し気持ちが悪いです。

このように、「DBアクセス時に同時に行わせたい処理」に関してプラグインで行うのは難しいと考えてよろしいでしょうか。
(可能な場合もあるが)

2.プラグイン制作者向けのユーティリティ
本スレッドに書いてあること以外で気になるのはdtb_csvへのインサート時のNoについてです。
最新のNoを取ってやるべきかと思いますが、現在はテストプラグインなので固定で書いてます。
プラグイン作成する場合は結構多用すると思うので、標準で用意して頂けると助かります。

3.フックポイントに、書き換え型があると便利
イメージ的には下記のようになります。
class A{
	function action(){
		---フックポイント:a_action_start---
		(処理)
		---フックポイント:a_Local関数_modify--- ←このフックポイントに登録している関数はLocal関数の代わりに呼び出す とか
		this->Local関数();
		(処理)
		---フックポイント:a_action_end---
	}
	function Local関数(){
		(処理)
	}
}

4.Local関数にもフックポイントがあると便利
イメージ的には下記のようになります。
class A{
	function action(){
		---フックポイント:a_action_start---
		(処理)
		this->Local関数();
		(処理)
		---フックポイント:a_action_end---
	}
	function Local関数(){
		---フックポイント:a_Local関数__start---
		(処理)
		---フックポイント:a_Local関数__end---
	}
}

5.outputfilterTransformで$smarty->_current_fileが空
SC_View outputfilter_transformにて、フックポイント'outputfilterTransform'に登録する箇所です。
$smarty->_current_fileをoutputfilterTransformの引数に登録していますが、$smarty->_current_fileが
コンパイル時にしか入らなそうな変数なので、outputfilterTransformにテンプレートファイル名が渡ってきません。
(※_current_file変数に代入する箇所は、Smarty_Compiler _compile_file関数のみ)

outputfilter_transformでHTMLを変換する場合は、$this->objPageからクラス名やViewを判断して作業した方がよろしいでしょうか?

 例:管理者画面全体に関わるものであれば、Viewクラスで判定し、特定画面であれば、Pageクラスで判定するような形

6.画面への項目追加時の項目チェック
プラグインで画面に項目を追加したいパターンでは、項目のチェック(数値、範囲、エラーなどの)を行う必要がありますが
現在のパラメータチェックの機構では、プラグインで追加した項目を追加でチェックする事が出来ないと思われます。
lfInitParamにフックポイントが無く、lfCheckError_Editがエラー情報をInitしているので。

7.SC_XXXXXクラスで行われている処理をフック出来ない。
現状のソースで考えると、SC_XXXXXクラス処理をフック出来ないとなると、プラグインで出来る事が
画面追加系プラグインや単一画面内での簡単な処理中心となります。


----------------
EC CUORE 株式会社クオーレ
カスタマイズ御相談下さい。

vexit
投稿日時: 2012/4/8 13:18
対応状況: −−−
一人前
登録日: 2008/11/4
居住地: 東京
投稿: 120
Re: 【プラグイン機能】感想や要望
ECCUOREさん!有り難う御座います!
合宿時に参考にさせていただきますね!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,865名です
総投稿数は109,998件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.