EC-CUBE4 – 新規会員登録 会社名 必須化

EC-CUBE4の新規会員登録ページの必須項目をカスタマイズしました。
復習を兼ねてその手順をシェアします。
ちょっとPHPいじれるレベルの方向けです。

追加したファイルは1つ。(ファイル名は任意、但し中身と合致させる)

  1. /app/Customize/Form/Extension/CompanyNameRequiredExtension.php

 

/app/Customize/Form/Extension/CompanyNameRequiredExtension.php

<?php

namespace Customize\Form\Extension;

use Eccube\Form\Type\Front\EntryType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\NotBlank;

class CompanyNameRequiredExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$options = $builder->get(‘company_name’)->getOptions();

$options[‘required’] = true;
$options[‘constraints’] = [ new NotBlank() ];
$options[‘attr’][‘placeholder’] = ‘会社名’;

$builder->add(‘company_name’, TextType::class, $options);
}

/**
* {@inheritdoc}
*/
public function getExtendedType()
{
return EntryType::class;
}

/**
* {@inheritdoc}
*/
public static function getExtendedTypes(): iterable
{
yield EntryType::class;
}
}

※赤文字部分はファイル名と合致
※今回はクローズドなシステムですので利用規約の必須をこの方法で無効化したいんですが、まだ実現していません。まあ追々と。

 

最後の〆


管理画面「コンテンツ管理」-「キャッシュ管理」-「キャッシュ削除」

キャッシュ削除します。

 

参考サイト


FormTypeのカスタマイズ

 

以上です。

当サイトでは何の保証もいたしませんので、十分にテストされてから本番環境に実装してください。
コピペする際にはアポストロフィの形状に気をつけてください。
何か不備を発見の際はご教示いただければ幸いです。

Follow me!