[EC-CUBE4]FormType 고유한form을 사용하여 buildForm 사용자 정의

6798 단어 eccube4EC-CUBE

컨디션


・Eccube4.0.3

대상


• Eccube4 플러그인 개발 초보자 대상

개요


참조Eccube4 공식 개발 문서의 샘플 플러그인 플러그인 개발 시
FormType & buildForm에서 기존 화면의 독자적인 형식에 대한 설정 방법을 몰라 난감했던 일이 있어 이번에 보도됐다.
기존 화면과 플러그인 생성 프로그램에 창을 추가합니다. 아래 공식 문서의 페이지를 참고하십시오.
  [EC-CUBE 4.0 개발자용 문서] 플러그인 사양
  [EC-CUBE4.0 개발자용 문서] FormType의 사용자 정의

플러그인 내용


플러그인으로 추가된 기능
· 상품 등록에 항목 및 양식 추가
· 상품 일람의 검색 항목에 플러그인 항목 추가

상품 등록



상품 검색



문제는 상품 검색에서 자동으로 생성되는 추가 형식이 너무 길다는 점이다.
적어도 지금보다 반은 큰 사이즈.

창을 만들고 설정하기


공식 문서에서 Enity 맞춤형 @FormAppend 근사 설정form 사용
이 글에서 포맷을 설정하려면FormType의buildForm을 사용하십시오.
[EC-CUBE4.0 개발자용 문서] Enity의 사용자 정의

단독으로 폼을 작성하는 트위터 파일 만들기


Plugin\SamplePlugin\template\admin\Product\form\search_product_sample_form.twig
{%- block form_row -%}
  <div class="col">
    <div>
      {{ form_label(form) }}
      <div class="row">
        <div class="col-5">
          {{ form_widget(form) }}
          {{ form_errors(form) }}
        </div>
        <div class="col-7"></div>
      </div>
    </div>
  </div>
{%- endblock form_row -%}
독립된 창을 만드는 트위터 파일입니다.
블록 사이에 입력된 내용을 표시합니다.

트위터 파일을buildForm으로 설정하기


Plugin\SamplePlugin\Form\Type\Extension\SearchProductTypeExtension.php

    public function getExtendedType()
    {
        return SearchProductType::class; // 拡張するフォーム
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
       $builder->add('sample', SampleMasterType::class, [
            'label' => 'サンプルセレクトボックス',
            'required' => false,
            'eccube_form_options' => [
                'auto_render' => true, // 自動表示フラグ
                'form_theme' => '@SamplePlugin/admin/Product/form/search_product_sample_form.twig' // 表示したいtwigファイル
            ]
        ]);
    }
builder를 만들 때의 옵션으로 설정합니다.
 'auto_render' => true, // 自動表示フラグ      
{%- block form_row -%} {%- endblock form_row -%}는 확장 목표가 추가 창을 표시할 지 여부의 설정 항목입니다.
초기 설정에서 가짜나 숨기기를 설정했기 때문에 진짜를 설정합니다.
 'form_theme' => '@SamplePlugin/admin/Product/form/search_product_sample_form.twig' // 表示したいtwigファイル
auto_render에 생성된 Twig을 지정합니다.지정하지 않은 경우자동 생성 설계가 적용됩니다.

혼자 적응해서



이상적인 형식의 사이즈를 실현하였다.

엔지니어링 트리

app/Plugin/SamplePlugin
├── Entity
│   ├── Extension
│   │   └── ProductTrait.php
│   └── Master
│       └── SampleMaster.php
├── Form
│   └── Type
│       ├── Extension
│       │   ├── ProductTypeExtension.php
│       │   └── SearchProductTypeExtension.php
│       └── Master
│           └── SampleMasterType.php
├── Repository
│   ├── Master
│   │   └── SampleMasterRepository.php
│   ├── ProductSearchWhereCustomizer.php
│   └── SampleRepository.php
├── Resource
│   └── template
│       └── admin
│           └── Product
│               └── form
│                   └── search_product_sample_form.twig
├── composer.json
└── PluginManager.php

좋은 웹페이지 즐겨찾기