バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > プラグイン > フックポイントを使って出来ることについて教えて下さい。

プラグイン

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kozimon
投稿日時: 2016/5/26 10:25
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 23
フックポイントを使って出来ることについて教えて下さい。
フックポイントを使って出来ることについて教えて下さい。
既出でしたらすみません。

1)新規フォームを既存ページに埋め込む際に、FormExtensionを作成すると思うのですが、その際に同一プラグインで作成したマスタデータを取得してselectBoxが作成出来るか。またはその実装方法について。

2)フックポイントを使って、デフォルトのコントローラーの処理に割り込みをして、プラグインで作成した処理を流せるか。またはその実装方法について。

よろしくお願いします。
tacky
投稿日時: 2016/5/26 12:28
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: フックポイントを使って出来ることについて教えて下さい。
引用:

1)新規フォームを既存ページに埋め込む際に、FormExtensionを作成すると思うのですが、その際に同一プラグインで作成したマスタデータを取得してselectBoxが作成出来るか。またはその実装方法について。

2)フックポイントを使って、デフォルトのコントローラーの処理に割り込みをして、プラグインで作成した処理を流せるか。またはその実装方法について。


両方実装可能です。

下記がプラグインの作り方の参考になると思います。
http://qiita.com/chihiro-adachi/items/6318642120f67faedf0b
http://qiita.com/shinichi-takahashi/items/9cd209d9f3a5fd1d1869
kozimon
投稿日時: 2016/5/26 14:53
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 23
Re: フックポイントを使って出来ることについて教えて下さい。
コメント頂きありがとうございます。

上記の参考ですと、両方共単純なtextのフォームになっています。
より具体的にformExtensionに渡す方法が分かるといいのですが・・・

$optionsにarray型を格納しておいて取り出すという方法が一般的なのでしょうか?
tacky
投稿日時: 2016/5/26 16:45
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: フックポイントを使って出来ることについて教えて下さい。
フォームの作り方はテキストもセレクトボックスも同じになります。

$builder->add(
  'フォーム名',
  'フォームタイプ',
  array(
   'オプション' => オプション内容,
  )
 );

下記を参照にご自身で設定したいフォームタイプの記述をする感じです。
http://symfony.com/doc/current/reference/forms/types.html
kozimon
投稿日時: 2016/5/27 10:36
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 23
Re: フックポイントを使って出来ることについて教えて下さい。
確かにbuilderの中で手書きにするのは反映されるのは分かるんですが、
お伺いしたいのはarray型を呼び出す(取得する)方法なのです・・・。

private $app;
public function __construct(Application $app){
$this->app = $app;
}

$app = $this->app;
$lists = $app['plugin.PluginName.repository.listMasters']->getList();

のようにFormExtensionに記述しても値を取ることができません。
確認したところ$appに必要な情報が入っていないようでした。(なのでサービスが呼び出せていない。)

あと少しのようなのですが、分かる方が居ましたら助言お願いします・・・。

ちなみに
use Eccube\Application;
use Plugin\PluginName\Entity\ListMasters;

はヘッダー部に記載しています。
tacky
投稿日時: 2016/5/27 11:20
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: フックポイントを使って出来ることについて教えて下さい。
$listsが空という事でしょうか。

ServiceProviderに上記Repositoryは登録されていますか?
kozimon
投稿日時: 2016/5/27 11:47
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 23
Re: フックポイントを使って出来ることについて教えて下さい。
登録されております。
controllerやevent.phpからはリストを取得出来ています。

各変数の中を除くと$appが既に空になってしまっています。
tacky
投稿日時: 2016/5/27 14:40
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: フックポイントを使って出来ることについて教えて下さい。
ECCUBE本体のForm/Type/Masterあたりの処理は参考になりませんか??

configureOptions内でclassにEntityをセットして、別のFormTypeで呼び出しているようです。
bratech
投稿日時: 2016/5/27 15:23
対応状況: −−−
長老
登録日: 2008/11/28
居住地: 福岡
投稿: 223
Re: フックポイントを使って出来ることについて教えて下さい。
横からすいません。

ServiceProviderの登録ですがform.type.extentionsの登録はされていますか?


        $app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function ($extensions) use ($app) {
                    $extensions[] = new \Plugin\○○\Form\Extension\○○Extension($app);

                    return $extensions;
                }));



登録する際は上記のように$appが渡るようになっていますか?

$appが空になっているという事であれば上記の辺りを確認されてみるとよいかもしれません。

ご参考まで。


----------------
★売れる通販サイト作ります! ========================
(株)ブラテック EC-CUBEカスタマイズサービス
http://www.bratech.co.jp/lpo/eccube.html
==============================================

kozimon
投稿日時: 2016/5/27 16:05
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 23
Re: フックポイントを使って出来ることについて教えて下さい。
解決しました!。

原因は
$extensions[] = new \Plugin\○○\Form\Extension\○○Extension($app);

$extensions[] = new \Plugin\○○\Form\Extension\○○Extension();
と記載しており、$appを読み込めていないという単純なミスでした。

tackyさん、bratechさん ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.