HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: /virtual/nagasaki/public_html/ec/app/Plugin/GmoEpsilon/Form/Type/Admin/ConfigType.php
<?php

namespace Plugin\GmoEpsilon\Form\Type\Admin;

use Plugin\GmoEpsilon\Util\PaymentUtil;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints as Assert;

class ConfigType extends AbstractType
{
    private $app;
    private $subData;

    public function __construct(\Eccube\Application $app, $subData = null)
    {
        $this->app = $app;
        $this->subData = $subData;
    }

    /**
     * Build config type form
     *
     * @param FormBuilderInterface $builder
     * @param array $options
     * @return type
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $objUtil = new PaymentUtil($this->app);
        if (empty($this->subData)) {
            $this->subData = array(
                'contract_code' => null,
                'destination_url' => null,
                'info_conf_url' => null,
                'ssl_version' => 6,
                'use_payment' => array(),
                'use_convenience' => array(),
                'regular' => 0,
            );
        } else if (!isset($this->subData['ssl_version'])) {
        	$this->subData['ssl_version'] = 6;
        }
        $arrPayments = $objUtil->getPaymentNames();
        $arrConveniences = $objUtil->getConvenienceNames();
        $arrSSLVersion_number = $objUtil->getSSLVersionNumber();

        $builder
            ->add('contract_code', 'text', array(
                'label' => '契約コード',
                'attr' => array(
                    'class' => 'lockon_card_row',
                ),
                'constraints' => array(
                    new Assert\NotBlank(array('message' => '※ 契約コードが入力されていません。')),
                ),
                'data' => $this->subData['contract_code'],
            ))

            ->add('destination_url', 'text', array(
                'label' => '接続先URL',
                'required' => false,
                'attr' => array(
                    'class' => 'lockon_card_row',
                ),
                'data' => $this->subData['destination_url'],
                'constraints' => array(
                    new Assert\NotBlank(array('message' => '※ 接続先URLが入力されていません。')),
                    new Assert\Url(),
                ),
            ))

            ->add('info_conf_url', 'text', array(
                'label' => '情報確認URL',
                'required' => false,
                'attr' => array(
                    'class' => 'lockon_card_row',
                ),
                'data' => $this->subData['info_conf_url'],
                'constraints' => array(
                    new Assert\NotBlank(array('message' => '※ 情報確認URLが入力されていません。')),
                    new Assert\Url(),
                ),
            ))

            ->add('ssl_version', 'choice', array(
            		'label' => 'SSLバージョン選択',
            		'choices' => $arrSSLVersion_number,
            		'expanded' => false,
            		'multiple' => false,
            		'data' => $this->subData['ssl_version'],
            ))

            ->add('use_payment', 'choice', array(
                'label' => '利用決済方法',
                'choices' => $arrPayments,
                'expanded' => true,
                'multiple' => true,
                'data' => $this->subData['use_payment'],
                'constraints' => array(
                    new Assert\NotBlank(array('message' => '※ 利用決済方法が選択されていません。')),
                ),
            ))

            ->add('use_convenience', 'choice', array(
                'label' => '利用コンビニ',
                'choices' => $arrConveniences,
                'expanded' => true,
                'multiple' => true,
                'data' => $this->subData['use_convenience'],

            ))

            ->add('regular', 'choice', array(
                'choices' => array(
                    0 => '利用しない',
                    1 => '利用する',
                ),
                'data' => $this->subData['regular'],
                'multiple' => false,
                'expanded' => true,
            ))

            ->addEventSubscriber(new \Eccube\Event\FormEventSubscriber());
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'config';
    }
}