. */ /* */ /*************************************************************************************/ namespace CmCIC\Form; use CmCIC\CmCIC; use Symfony\Component\Validator\Constraints\NotBlank; use Thelia\Core\Translation\Translator; use Thelia\Form\BaseForm; class ConfigureCmCIC extends BaseForm { public function getName() { return "configurecmcic"; } protected function buildForm() { $values = null; $path = __DIR__ . "/../" . CmCIC::JSON_CONFIG_PATH; if (is_readable($path)) { $values = json_decode(file_get_contents($path), true); } $this->formBuilder ->add('com_key', 'text', array( 'label' => Translator::getInstance()->trans('Merchant key', [], CmCIC::DOMAIN_NAME), 'label_attr' => array( 'for' => 'com_key' ), 'data' => (null === $values ? '' : $values["CMCIC_KEY"]), 'constraints' => array( new NotBlank() ) )) ->add('TPE', 'text', array( 'label' => Translator::getInstance()->trans('TPE', [], CmCIC::DOMAIN_NAME), 'label_attr' => array( 'for' => 'TPE' ), 'data' => (null === $values ? '' : $values["CMCIC_TPE"]), 'constraints' => array( new NotBlank() ) )) ->add('com_soc', 'text', array( 'label' => Translator::getInstance()->trans('Society code', [], CmCIC::DOMAIN_NAME), 'label_attr' => array( 'for' => 'com_soc' ), 'data' => (null === $values ? '' : $values["CMCIC_CODESOCIETE"]), 'constraints' => array( new NotBlank() ) )) ->add('server', 'choice', array( 'label' => Translator::getInstance()->trans('server', [], CmCIC::DOMAIN_NAME), 'choices' => array( "cic" => "CIC", "cm" => "Crédit Mutuel", "obc" => "OBC", "mon" => "MONETICO" ), 'required' => 'true', 'expanded' => true, 'multiple' => false, 'data' => (null === $values ? '' : (preg_match("#cic-banques#i", $values["CMCIC_SERVER"]) ? "cic" : (preg_match("#creditmutuel#i", $values["CMCIC_SERVER"]) ? "cm" : (preg_match("#banque-obc#i", $values["CMCIC_SERVER"]) ? "obc" : (preg_match("#monetico#i", $values["CMCIC_SERVER"]) ? "mon" : "" ) ) ) ) ), 'label_attr' => array( 'help' => Translator::getInstance()->trans( "The module may be used with several banks. Please select your bank here.", [], CmCIC::DOMAIN_NAME ) ), )) ->add('page', 'text', array( 'label' => Translator::getInstance()->trans('page', [], CmCIC::DOMAIN_NAME), 'label_attr' => array( 'help' => Translator::getInstance()->trans( "The page invoked on the payment server. The default should be OK in most cases.", [], CmCIC::DOMAIN_NAME ) ), 'data' => (null === $values ? '' : $values["CMCIC_PAGE"]), 'constraints' => array( new NotBlank() ) )) ->add('debug', 'checkbox', array( 'label' => Translator::getInstance()->trans('Run in test mode', [], CmCIC::DOMAIN_NAME), 'required' => false, 'label_attr' => array( 'for' => 'debug', 'help' => Translator::getInstance()->trans( "Check this box to test the payment system, using test credit cards to simulate various situations.", [], CmCIC::DOMAIN_NAME ) ), 'data' => boolval(CmCIC::getConfigValue('debug', false)) )) ->add( 'allowed_ips', 'textarea', array( 'required' => false, 'label' => Translator::getInstance()->trans('Allowed IPs in test mode', [], CmCIC::DOMAIN_NAME), 'data' => CmCIC::getConfigValue('allowed_ips', ''), 'label_attr' => array( 'for' => 'allowed_ips', 'help' => Translator::getInstance()->trans( 'List of IP addresses allowed to use this payment on the front-office when in test mode (your current IP is %ip). One address per line', array('%ip' => $this->getRequest()->getClientIp()), CmCIC::DOMAIN_NAME ), 'rows' => 3 ) ) ) ->add( 'send_confirmation_message_only_if_paid', 'checkbox', [ 'value' => 1, 'data' => ! empty(CmCIC::getConfigValue('send_confirmation_message_only_if_paid', '')), 'required' => false, 'label' => $this->translator->trans('Send order confirmation on payment success', [], CmCIC::DOMAIN_NAME), 'label_attr' => [ 'help' => $this->translator->trans( 'If checked, the order confirmation message is sent to the customer only when the payment is successful. The order notification is always sent to the shop administrator', [], CmCIC::DOMAIN_NAME ) ] ] ) ; } }