質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • PHP

    24036questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • EC-CUBE

    311questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

EC-CUBE3.0.15 既存フォームのプラグインでの拡張方法

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 512

shige0039

score 1

 前提・実現したいこと

EC-CUBE 3.0.15 を使用してまして、特定商取引法のメールアドレスの必須をプラグインにて外したいと思い色々試しているのですが、うまく反映されず困っております。

当方お恥ずかしいお話ではありますが、プラグインでの拡張方法がよくわかっておらず、大変恐縮ではありますがご教示頂けると幸いです。よろしくお願いいたします。

 発生している問題・エラーメッセージ

なし

 該当のソースコード

--------- config.yml ----------
name: カスタム特定商取引法
version: 1.0.0
code: CustomTradelaw
event: Event

-------- event.yml --------
admin.setting.shop.trade.law.index.initialize:
    - [onCostomTradelawInt, NORMAL]

-------- Event.php --------
namespace Plugin\CostomTradelaw;

use Eccube\Event\EventArgs;

class Event
{
    private $app;

    public function __construct($app)
    {
        $this->app = $app;
    }
    /**
     * メールアドレスの必須を除外
     * @param EventArgs $event
     */
    public function onCostomTradelawInt(EventArgs $event) {
        $builder = $event->getArgument('builder');
        $builder->add('law_email', 'email', array(
                'label' => 'test',
                'required' => false,
                'constraints' => array(
                    new Assert\Email(array('strict' => true)),
                    new Assert\Regex(array(
                        'pattern' => '/^[[:graph:][:space:]]+$/i',
                        'message' => 'form.type.graph.invalid',
                    )),
            ),
        ));
    }
}


試したこと
--------- config.yml ----------
name: カスタム特定商取引法
version: 1.0.0
code: CustomTradelaw
event: Event

-------- event.yml --------
admin.setting.shop.trade.law.index.initialize:
    - [onCostomTradelawInt, NORMAL]

-------- Event.php --------
namespace Plugin\CostomTradelaw;

use Eccube\Event\EventArgs;

class Event
{
    private $app;

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

    public function onCostomTradelawInt(EventArgs $event) {
        $builder = $event->getArgument('builder');
        $builder->add(
            'plg_test',
            'text',
            array(
                'label' => 'テスト項目',
                'mapped' => false,
            )
        );
    }
}

 試したこと

試しに下記の方法でやってみたのですが、「テスト項目」は追加されませんでした。
http://doc.ec-cube.net/plugin_tutorial-form
※試した際のソースコードは上記「試したこと」に記載いたしました。

 補足情報(FW/ツールのバージョンなど)

ディレクトリ構成は下記となります。
ファイル3つのみですが問題ないでしょうか?

----- ディレクトリ構成 -----
CustomTradelaw
|
|----config.yml
|
|----Event.php
|
|----event.yml

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

同名の別項目追加してるからでしょう・・・

https://api.symfony.com/2.3/Symfony/Component/Form/FormBuilder.html#method_get

ドキュメント自体はバージョン違いだがここを参考にするといい

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/27 22:15

    反映できました!!
    ありがとうございました!

    キャンセル

同じタグがついた質問を見る

  • PHP

    24036questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • EC-CUBE

    311questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。