バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > 管理機能 > 受注詳細の商品追加でフォームを拡張できない

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
umebius
投稿日時: 2017/3/28 10:07
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 受注詳細の商品追加でフォームを拡張できない
確かに直ってないですね。
とりあえず<td>で囲まれていない件についてPR出させていただきました
h_tanaka
投稿日時: 2017/3/28 10:08
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: 受注詳細の商品追加でフォームを拡張できない
代行ありがとうございます!
h_tanaka
投稿日時: 2017/3/30 16:27
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: 受注詳細の商品追加でフォームを拡張できない
HTMLを書き換えるために「商品の追加」モーダルがレンダリングされたときのイベントをプラグインに追加しましたが、プラグインの関数が呼び出されません。
ajaxからの呼び出しではイベントを拾えないのでしょうか?

「商品の追加」クリック時のjavascript(抜粋)
src/Eccube/Resource/template/admin/Order/edit.twig

    // 商品検索
    $('#searchProductModalButton').on('click', function() {
        ......

        $.ajax({
            type: 'POST',
            dataType: 'html',
            data: {
                'id' : $('#admin_search_product_id').val(),
                'category_id' : $('#admin_search_product_category_id').val()
            },
            url: '{{ url('admin_order_search_product') }}',
            success: function(data) {
                // モーダルに結果を書き出し.
                $('#searchProductModalList').html(data);
            },
            error: function() {
                alert('search product failed.');
            }
        });
    });


「商品の追加」クリック時のコントローラー(抜粋)
src/Eccube/Controller/Admin/Order/EditController.php

    public function searchProduct(Application $app, Request $request, $page_no = null)
    {
            ......

            return $app->render('Order/search_product.twig', array(
                'forms' => $forms,
                'Products' => $Products,
                'pagination' => $pagination,
            ));
    }


プラグインでの実装
event.yml
# 商品の追加
Order/search_product.twig:
    - [onRenderOrderSearchProduct, NORMAL]


Event.php

    /**
     * 商品の追加モーダルを修正する.
     *
     * @param TemplateEvent $event
     */
    public function onRenderOrderSearchProduct(TemplateEvent $event)
    {
        $app = $this->app;
        $parameters = $event->getParameters();
        $source = $event->getSource();

        $search = '<div class="extra-form">';
        $replace = '<td class="extra-form">';
        $source = str_replace($search, $replace, $source);

        $search = '{{ form_errors(f) }}';
        $replace = $search.'<br/>';
        $source = str_replace($search, $replace, $source);

        $search = '</div>';
        $replace = '</td>';
        $source = preg_replace('/'.$search.'/', $replace, $source, 1);;

        $event->setSource($source);
    }
h_tanaka
投稿日時: 2017/3/30 17:14
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: 受注詳細の商品追加でフォームを拡張できない
上記については自己解決しました。

次の記述の仕方でうまくいきました。なぜかはわかりませんが・・・。
event.yml
# 商品の追加
Admin/Order/search_product.twig:
    - [onRenderOrderSearchProduct, NORMAL]


あと、Event.phpのpreg_replace()の第1引数は正規表現なので、$search = '<\/div>'; が正解です。
umebius
投稿日時: 2017/3/30 21:14
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 受注詳細の商品追加でフォームを拡張できない

頭にAdmin/が必要な理由のことであればこちらです。

https://github.com/EC-CUBE/ec-cube/blob/3.0.14/src/Eccube/Application/ApplicationTrait.php#L236


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

h_tanaka
投稿日時: 2017/3/30 21:21
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: 受注詳細の商品追加でフォームを拡張できない
ありがとうございます!
すっきりしました。
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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
1291
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.