<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Eccube\Form\Type\Front;
use Eccube\Common\EccubeConfig;
use Eccube\Form\Type\AddressType;
use Eccube\Form\Type\KanaType;
use Eccube\Form\Type\NameType;
use Eccube\Form\Type\PhoneNumberType;
use Eccube\Form\Type\PostalType;
use Eccube\Form\Validator\Email;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
class ContactType extends AbstractType
{
/**
* @var EccubeConfig
*/
protected $eccubeConfig;
/**
* ContactType constructor.
*
* @param EccubeConfig $eccubeConfig
*/
public function __construct(EccubeConfig $eccubeConfig)
{
$this->eccubeConfig = $eccubeConfig;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', NameType::class, [
'required' => true,
])
->add(
'country',ChoiceType::class,
[
'choices' => array(
'Albania' => 'Albania',
'Algeria' => 'Algeria',
'Argentina' => 'Argentina',
'Aruba' => 'Aruba',
'Australia' => 'Australia',
'Austria' => 'Austria',
'Bangladesh' => 'Bangladesh',
'Barbados' => 'Barbados',
'Belgium' => 'Belgium',
'Benin' => 'Benin',
'Botswana' => 'Botswana',
'Bulgaria' => 'Bulgaria',
'Burkina Faso' => 'Burkina Faso',
'Cambodia' => 'Cambodia',
'Canada' => 'Canada',
'Cayman Islands' => 'Cayman Islands',
'Central African Republic' => 'Central African Republic',
'Chile' => 'Chile',
'China' => 'China',
'Cote d\'Ivoire' => 'Cote d\'Ivoire',
'Cuba' => 'Cuba',
'Curacao' => 'Curacao',
'Cyprus' => 'Cyprus',
'Czech Republic' => 'Czech Republic',
'Democratic Republic of the Congo' => 'Democratic Republic of the Congo',
'Denmark' => 'Denmark',
'Dominican' => 'Dominican',
'Ecuador' => 'Ecuador',
'Egypt' => 'Egypt',
'Fiji' => 'Fiji',
'Finland' => 'Finland',
'France' => 'France',
'French Overseas Territories' => 'French Overseas Territories',
'Georgia' => 'Georgia',
'Ghana' => 'Ghana',
'Gibraltar' => 'Gibraltar',
'Greece' => 'Greece',
'Guatemala' => 'Guatemala',
'Guernsey' => 'Guernsey',
'Haiti' => 'Haiti',
'Hong Kong' => 'Hong Kong',
'Hungary' => 'Hungary',
'Iceland' => 'Iceland',
'India' => 'India',
'Ireland' => 'Ireland',
'Isle of Man' => 'Isle of Man',
'Israel' => 'Israel',
'Italy' => 'Italy',
'Jamaica' => 'Jamaica',
'Japan' => 'Japan',
'Jersey' => 'Jersey',
'Jordan' => 'Jordan',
'Kyrgyz Republic' => 'Kyrgyz Republic',
'Laos' => 'Laos',
'Lebanon' => 'Lebanon',
'Lesotho' => 'Lesotho',
'Luxembourg' => 'Luxembourg',
'Macao' => 'Macao',
'Madagascar' => 'Madagascar',
'Malawi' => 'Malawi',
'Malaysia' => 'Malaysia',
'Mali' => 'Mali',
'Malta' => 'Malta',
'Monaco' => 'Monaco',
'Montenegro' => 'Montenegro',
'Morocco' => 'Morocco',
'Namibia' => 'Namibia',
'Netherlands' => 'Netherlands',
'New Zealand' => 'New Zealand',
'Niger' => 'Niger',
'Nigeria' => 'Nigeria',
'Norway' => 'Norway',
'Papua New Guinea' => 'Papua New Guinea',
'Paraguay' => 'Paraguay',
'Peru' => 'Peru',
'Philippines' => 'Philippines',
'Poland' => 'Poland',
'Portugal' => 'Portugal',
'Republic of Korea' => 'Republic of Korea',
'Republic of Lithuania' => 'Republic of Lithuania',
'Republic of the Congo' => 'Republic of the Congo',
'Romania' => 'Romania',
'Russia' => 'Russia',
'Rwanda' => 'Rwanda',
'Saint Martin' => 'Saint Martin',
'San Marino' => 'San Marino',
'Senegal' => 'Senegal',
'Serbia' => 'Serbia',
'Sierra Leone' => 'Sierra Leone',
'Singapore' => 'Singapore',
'Slovakia' => 'Slovakia',
'Slovenia' => 'Slovenia',
'South Africa' => 'South Africa',
'Spain' => 'Spain',
'Sri Lanka' => 'Sri Lanka',
'Sweden' => 'Sweden',
'Syrian' => 'Syrian',
'Territories of the United States' => 'Territories of the United States',
'Thailand' => 'Thailand',
'Togo' => 'Togo',
'Trinidad and Tobago' => 'Trinidad and Tobago',
'Tunisia' => 'Tunisia',
'Turkey' => 'Turkey',
'Uganda' => 'Uganda',
'United Arab Emirates' => 'United Arab Emirates',
'United Kingdom' => 'United Kingdom',
'United States' => 'United States',
'Vatican' => 'Vatican',
'Venezuela' => 'Venezuela',
'Zimbabwe' => 'Zimbabwe',
'Other' => 'Other',
),
'required' => true,
]
)
->add('phone_number', PhoneNumberType::class, [
'required' => false,
])
->add('email', EmailType::class, [
'constraints' => [
new Assert\NotBlank(),
new Email(null, null, $this->eccubeConfig['eccube_rfc_email_check'] ? 'strict' : null),
],
])
->add('inquiry_category', ChoiceType::class,[
'choices' => [
trans('admin.contact.inquiry_category1') => 1,
trans('admin.contact.inquiry_category2') => 2,
trans('admin.contact.inquiry_category3') => 3,
trans('admin.contact.inquiry_category4') => 4,
trans('admin.contact.inquiry_category5') => 5,
],
'required' => false,
'expanded' => true,
'label' => trans('admin.contact.inquiry_category'),
])
->add('use_car1',ChoiceType::class,
[
'choices' => $this->getCarList(),
'required' => false,
]
)
->add('use_car2',ChoiceType::class,
[
'choices' => $this->getCarList(),
'required' => false,
]
)
->add('use_car3',ChoiceType::class,
[
'choices' => $this->getCarList(),
'required' => false,
]
)
->add('date_start', DateType::class, [
'label' => 'admin.order.order_date__start',
'required' => false,
'input' => 'datetime',
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'placeholder' => ['year' => '----', 'month' => '--', 'day' => '--'],
'attr' => [
'class' => 'datetimepicker-input',
'data-target' => '#'.$this->getBlockPrefix().'_order_date_start',
'data-toggle' => 'datetimepicker',
],
])
->add('date_end', DateType::class, [
'label' => 'admin.order.order_date__start',
'required' => false,
'input' => 'datetime',
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'placeholder' => ['year' => '----', 'month' => '--', 'day' => '--'],
'attr' => [
'class' => 'datetimepicker-input',
'data-target' => '#'.$this->getBlockPrefix().'_order_date_start',
'data-toggle' => 'datetimepicker',
],
])
->add('contents', TextareaType::class, [
'constraints' => [
new Assert\NotBlank(),
new Assert\Length([
'max' => $this->eccubeConfig['eccube_lltext_len'],
])
],
]);
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'contact';
}
private function getCarList() {
return array(
'Alpha Romeo 8C' => 'Alpha Romeo 8C',
'AQUA RIVA 33' => 'AQUA RIVA 33',
'Aston Martin DB11 volante' => 'Aston Martin DB11 volante',
'AW109' => 'AW109',
'AZIMUT 80' => 'AZIMUT 80',
'Bell 505' => 'Bell 505',
'Bentley Bentayga' => 'Bentley Bentayga',
'Chevrolet Corvet Grand Sports' => 'Chevrolet Corvet Grand Sports',
'Ferrari 488 Pista' => 'Ferrari 488 Pista',
'Ferrari California T' => 'Ferrari California T',
'Ferrari Dino 308 GT4' => 'Ferrari Dino 308 GT4',
'Honda S2000 2.2' => 'Honda S2000 2.2',
'Jaguar E type sl.1' => 'Jaguar E type sl.1',
'Lamborghini Huracan EVO' => 'Lamborghini Huracan EVO',
'Lamborghini Huracan Spyder' => 'Lamborghini Huracan Spyder',
'Lamborghini Urus' => 'Lamborghini Urus',
'McLaren GT' => 'McLaren GT',
'Mercedes Benz AMG G63' => 'Mercedes Benz AMG G63',
'Mercedes Benz AMG G63' => 'Mercedes Benz AMG G63',
'Mercedes Benz AMG SLS' => 'Mercedes Benz AMG SLS',
'Mercedes Benz G350D' => 'Mercedes Benz G350D',
'Mercedes Benz MAYBACH S650' => 'Mercedes Benz MAYBACH S650',
'Mercedes G63 BRABUS WIDE STAR' => 'Mercedes G63 BRABUS WIDE STAR',
'Mercedes-Benz 280SL' => 'Mercedes-Benz 280SL',
'Mersedes Benz Maclaren SLR' => 'Mersedes Benz Maclaren SLR',
'NISSAN GT-R NISMO' => 'NISSAN GT-R NISMO',
'PORCHE 911' => 'PORCHE 911',
'Porche 997 Speed Star' => 'Porche 997 Speed Star',
'Porche Cayen S' => 'Porche Cayen S',
'Porche Cayen Turbo' => 'Porche Cayen Turbo',
'Porche GT3' => 'Porche GT3',
'Porche Panamera GTS' => 'Porche Panamera GTS',
'Porsche 356A/1600super' => 'Porsche 356A/1600super',
'PRINCESS F49' => 'PRINCESS F49',
'Sun seeker 86' => 'Sun seeker 86',
);
}
}