バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > form_theme の使い方

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2018/9/6 11:44
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 588
form_theme の使い方
EC-CUBE4.0.0-beta2
PHP7.1.5

http://doc4.ec-cube.net/customize_entity
こちらのサイトの手順に従って、Entity のカスタマイズを行っているのですが、最後のフォームの詳細なカスタマイズの箇所で、アノテーションで指定している form_theme の使い方がわかりません。

app/Customize/Entity/BaseInfoTrait.php
<?php

namespace Customize\Entity;

use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation as Eccube;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @Eccube\EntityExtension("Eccube\Entity\BaseInfo")
 */
trait BaseInfoTrait
{
    /**
     * @ORM\Column(name="company_name_it", type="string", length=255, nullable=true)
     * @Assert\NotBlank(message="入力してください")
     * @Eccube\FormAppend(
     *     auto_render=false,
     *     form_theme="Form/company_name_it.twig",
     *     type="\Symfony\Component\Form\Extension\Core\Type\TextType",
     *     options={
     *          "required": true,
     *          "label": "会社名(IT)"
     *     })
     */
    public $company_name_it;
}


おそらく次のようなファイルを用意するのかと思いますが、ここでどのようなコードを書けばよいのでしょうか?

app/Customize/Form/company_name_it.twig
?


app/template/admin/Setting/Shop/shop_master.twig
                            ...
                            <div class="row">
                                <div class="col-3"><span>会社名(IT)</span></div>
                                <div class="col mb-2">
                                    {{ form_widget(form.company_name_it) }}
                                    {{ form_errors(form.company_name_it) }}
                                </div>
                            </div>
                            ...
nanasess
投稿日時: 2018/9/21 9:51
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1835
Re: form_theme の使い方
app/template/admin/Setting/Shop/shop_master.twig に記載している内容を app/Customize/Form/company_name_it.twig に記載すれば大丈夫です。

本カスタマイズは、テンプレートをオーバーライドしなくても、フォーム項目の追加を実現できます


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

h_tanaka
投稿日時: 2018/9/21 10:09
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 588
Re: form_theme の使い方
nanasess 様

すみません、よくわからないのですが。。

app/template/admin/Setting/Shop/shop_master.twig に、
{{ form_widget(form.company_name_it) }}

を記載することで入力フォームが表示されました。
項目の保存も成功します。

ただ、app/Customize/Form/company_name_it.twig には何を記載しても反映されませんでした。
このファイルの存在意義はあるのでしょうか?


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

nanasess
投稿日時: 2018/9/21 10:33
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1835
Re: form_theme の使い方

@Eccube\FormAppend(
     *     auto_render=false,


この部分の auto_render=true にすることで、 app/Customize/Form/company_name_it.twig の内容が反映されませんでしょうか??

shop_master.twig の中に、 {# エンティティ拡張の自動出力 #} と書かれたロジックがあると思いますが、 ここに自動出力されます。

app/template/admin/Setting/Shop/shop_master.twig を作ってしまうと、バージョンアップ時に src/Eccube/Resource/template/admin/Setting/Shop/shop_master.twig の内容が反映されなくなってしまう問題が発生します。
本カスタマイズを利用することで、 app/template 以下に twig ファイルを作成しなくても、フォームを拡張することが可能になります。


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

h_tanaka
投稿日時: 2018/9/28 12:11
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 588
Re: form_theme の使い方
auto_render=true にすることで app/template/admin/Setting/Shop/shop_master.twig なしでもフォームがレンダリングされました。

マニュアル通りの実装でフォームが出力されなかったので app/template/admin/Setting/Shop/shop_master.twig を作成したのですが、マニュアルが間違っていたのですね。。

■誤

    /**
     * @ORM\Column(name="company_name_vn", type="string", length=255, nullable=true)
     * @Eccube\FormAppend
     * @Assert\NotBlank(message="にゅうりょくしてくださいね!!!")
     */
    public $company_name_vn;


■正

    /**
     * @ORM\Column(name="company_name_vn", type="string", length=255, nullable=true)
     * @Eccube\FormAppend(auto_render=true)
     * @Assert\NotBlank(message="にゅうりょくしてくださいね!!!")
     */
    public $company_name_vn;


app/template/admin/Setting/Shop/shop_master.twig を削除したのですが、フォームを詳細にカスタマイズした $company_name_it はレンダリングされません。
なにか間違っているのでしょうか?

app/Customize/Entity/BaseInfoTrait.php
<?php

namespace Customize\Entity;

use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation as Eccube;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @Eccube\EntityExtension("Eccube\Entity\BaseInfo")
 */
trait BaseInfoTrait
{
    /**
     * @ORM\Column(name="company_name_vn", type="string", length=255, nullable=true)
     * @Eccube\FormAppend(auto_render=true)
     * @Assert\NotBlank(message="にゅうりょくしてくださいね!!!")
     */
    public $company_name_vn;

    /**
     * @ORM\Column(name="company_name_it", type="string", length=255, nullable=true)
     * @Assert\NotBlank(message="入力してください")
     * @Eccube\FormAppend(
     *     auto_render=false,
     *     form_theme="Form/company_name_it.twig",
     *     type="\Symfony\Component\Form\Extension\Core\Type\TextType",
     *     options={
     *          "required": true,
     *          "label": "会社名(IT)"
     *     })
     */
    public $company_name_it;
}


app/Customize/Form/company_name_it.twig
<div class="row">
    <div class="col-3"><span>会社名(IT)</span></div>
    <div class="col mb-2">
        {{ form_widget(form.company_name_it) }}
        {{ form_errors(form.company_name_it) }}
    </div>
</div>


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は35,097名です
総投稿数は88,193件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1835
4
yuh
1521
5
468
1287
6
red
1186
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
588
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.