Your IP : 18.224.32.173


Current Path : /var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/components/slam/easyform/
Upload File :
Current File : /var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/components/slam/easyform/.parameters.php

<?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Web\Json;
use Bitrix\Main\Loader;

Loc::loadMessages(__FILE__);

global $arComponentParameters;

//GET SITE IDs
$arSiteId = array();
$rsSite = CSite::GetList($by = 'sort', $order = 'asc', Array('ACTIVE' => 'Y'));
while ($arSite = $rsSite->fetch()) {
    $arSiteId[] = $arSite['LID'];
}

//CREATE POST EVENT
$arEventTypeFields = array(
    0 => array(
        'LID' => 'ru',
        'EVENT_NAME' => 'SLAM_EASYFORM',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_RU_NAME'),
        'DESCRIPTION' => Loc::getMessage('SLAM_EASYFORM_RU_DESCRIPTION'),
    ),
    1 => array(
        'LID' => 'en',
        'EVENT_NAME' => 'SLAM_EASYFORM',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_RU_NAME'),
        'DESCRIPTION' => Loc::getMessage('SLAM_EASYFORM_RU_DESCRIPTION'),
    ),
);
$eventType = new CEventType;
foreach ($arEventTypeFields as $arField) {
    $rsET = $eventType->GetByID($arField['EVENT_NAME'], $arField['LID']);
    $arET = $rsET->Fetch();

    if (!$arET) {
        $eventType->Add($arField);
        $installSendTemplates = true;
    }
}
unset($rsET, $arET, $arField);

//CREATE POST TEMPLATE
if (($installSendTemplates) && ($arCurrentValues['ENABLE_SEND_MAIL'] != 'N')) {
    $arEventMessFields = array(
        0 => array(
            'ACTIVE' => 'Y',
            'EVENT_NAME' => 'SLAM_EASYFORM',
            'LID' => $arSiteId,
            'EMAIL_FROM' => Loc::getMessage('SLAM_EASYFORM_EMAIL_FROM'),
            'EMAIL_TO' => Loc::getMessage('SLAM_EASYFORM_EVEN_EMAIL_TO'),
            'BCC' => Loc::getMessage('SLAM_EASYFORM_EVEN_BCC'),
            'SUBJECT' => Loc::getMessage('SLAM_EASYFORM_SUBJECT'),
            'BODY_TYPE' => 'html',
            'MESSAGE' => Loc::getMessage('SLAM_EASYFORM_MESSAGE'),
        )
    );

    $eventM = new CEventMessage;
    foreach ($arEventMessFields as $arField) {
        $eventM->Add($arField);
    }

}

//FIELDS FOR EXAMPLE
$arFields = array(
    'TITLE' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_TITLE'),
        'TYPE' => 'text',
    ),

    'EMAIL' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_EMAIL'),
        'TYPE' => 'email',
    ),
    'PHONE' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_PHONE'),
        'TYPE' => 'tel',
    ),
    'MALE' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_MALE'),
        'TYPE' => 'radio',
        'DEFAULT_VALUE' => array(Loc::getMessage('SLAM_EASYFORM_FIELD_MALE_VAL_1'), Loc::getMessage('SLAM_EASYFORM_FIELD_MALE_VAL_2')),
    ),
    'BUDGET' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_BUDGET'),
        'TYPE' => 'select',
        'DEFAULT_VALUE' => array(Loc::getMessage('SLAM_EASYFORM_FIELD_BUDGET_VAL_1'), Loc::getMessage('SLAM_EASYFORM_FIELD_BUDGET_VAL_2')),
    ),
    'SERVICES' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_SERVICES'),
        'TYPE' => 'checkbox',
        'DEFAULT_VALUE' => array(Loc::getMessage('SLAM_EASYFORM_FIELD_SERVICES_VAL_1'), Loc::getMessage('SLAM_EASYFORM_FIELD_SERVICES_VAL_2')),
    ),
    'MESSAGE' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_MESSAGE'),
        'TYPE' => 'textarea',
    ),
    'DOCS' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_DOCS'),
        'TYPE' => 'file',
    ),
    'ACCEPT' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_ACCEPT'),
        'TYPE' => 'accept',
        'DEFAULT_VALUE' => Loc::getMessage('SLAM_EASYFORM_FIELD_ACCEPT_VAL'),
    ),
    'HIDDEN' => array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_HIDDEN'),
        'TYPE' => 'hidden',
    )
);


$defaultFields = array('TITLE', 'EMAIL', 'PHONE', 'MESSAGE');
$defaultFieldsForReq = array();
$arFieldsResult = array();
$arFieldsResultType = array();
foreach ($arFields as $key => $arField) {
    $arFieldsResult[$key] = $arField['NAME'];
    $arFieldsResultType[$key] = $arField['NAME'].' ['.$arField['TYPE'].']';
    if (in_array($key, $defaultFields)) {
        $defaultFieldsForReq[$key] = $arField['NAME'];
    }
}


if (is_array($arCurrentValues['DISPLAY_FIELDS'])) {
    foreach ($arCurrentValues['DISPLAY_FIELDS'] as $key => $arVal) {
        if (!empty($arVal)) {
            if ($arFieldsResult[$arVal]) {
                $fieldName = $arFieldsResult[$arVal];
            } else {
                $fieldName = $arVal;
            }
            $arReqFields[$arVal] = $fieldName;
        }
    }
}

$curFields = !empty($arReqFields) ? $arReqFields : $defaultFieldsForReq;

$arComponentParameters = array(
    'GROUPS' => array(
        'SUBMIT' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_SUBMIT'),
            'SORT' => 200,
        ),
        'MAIL' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_MAIL'),
            'SORT' => 300,
        ),
        'CAPTCHA' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_CAPTCHA'),
            'SORT' => 1350,
        ),
        'IBLOCK_WRITE' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_WRITE_IB'),
            'SORT' => 450,
        ),
        'PERSONAL_DATA' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_PERSONAL_DATA'),
            'SORT' => 1350,
        ),
        'JS_VALIDATE_SETTINGS' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUPS_JS_VALIDATE_SETTINGS'),
            'SORT' => 1370,
        ),
        'JS_LIB_SETTINGS' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUPS_JS_LIB_SETTINGS'),
            'SORT' => 1400,
        )

    ),

    'PARAMETERS' => array(
        'FORM_ID' => Array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_UNIQUE_FORM_ID'),
            'TYPE' => 'STRING',
            'DEFAULT' => 'FORM' . mt_rand(1, 10),
            'PARENT' => 'BASE',
        ),
        'FORM_NAME' => Array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_FORM_NAME'),
            'TYPE' => 'STRING',
            'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_FORM_NAME_DEFAULT') . mt_rand(1, 10),
            'PARENT' => 'BASE',
        ),
        'WIDTH_FORM' => Array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_WIDTH_FORM'),
            'TYPE' => 'STRING',
            'DEFAULT' => '500px',
            'PARENT' => 'BASE',
        ),
        'DISPLAY_FIELDS' => array(
            'PARENT' => 'BASE',
            'NAME' => Loc::getMessage('SLAM_EASYFORM_DISPLAY_FIELDS'),
            'TYPE' => 'LIST',
            'MULTIPLE' => 'Y',
            'REFRESH' => 'Y',
            'VALUES' => $arFieldsResultType,
            'ADDITIONAL_VALUES' => 'Y',
            'SIZE' => 8,
            'DEFAULT' => $defaultFields,
        ),
        'REQUIRED_FIELDS' => Array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_REQUIRED_FIELDS'),
            'TYPE' => 'LIST',
            'MULTIPLE' => 'Y',
            'VALUES' => $curFields,
            'SIZE' => count($curFields),
            'REFRESH' => 'Y',
            'DEFAULT' => array('EMAIL'),
            'PARENT' => 'BASE',
        ),
        'FIELDS_ORDER' => Array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELDS_ORDER'),
            'PARENT' => 'BASE',
            'TYPE' => 'CUSTOM',
            'JS_FILE' => $componentPath."/lib/settings/dragdrop_order/script.js",
            'JS_EVENT' => 'initDraggableOrderControl',
            'JS_DATA' => Json::encode($curFields),
            'TEXT_FIELD_ADD' => Loc::getMessage('SLAM_EASYFORM_FIELD_ADD'),
            'DEFAULT' => 'TITLE,EMAIL,PHONE,MESSAGE'
        ),
        'USE_FORMVALIDATION_JS' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_FORMVALIDATION_JS'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'Y',
            'REFRESH' => 'Y',
            'PARENT' => 'JS_VALIDATE_SETTINGS',
        ),
        'FORM_AUTOCOMPLETE' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_FORM_AUTOCOMPLETE'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'Y',
            'PARENT' => 'BASE',
        ),
        'HIDE_FIELD_NAME' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_HIDE_FIELD_NAME'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => '',
            'PARENT' => 'BASE',
        ),
        'HIDE_ASTERISK' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_HIDE_ASTERISK'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => '',
            'PARENT' => 'BASE',
        ),
        'FORM_SUBMIT_VALUE' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_FORM_SUBMIT_VALUE'),
            'TYPE' => 'STRING',
            'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_FORM_SUBMIT_VALUE_DEFAULT'),
            'COLS' => 50,
            'PARENT' => 'BASE',
        ),
        'ENABLE_SEND_MAIL' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_ENABLE_SEND_MAIL'),
            'TYPE' => 'CHECKBOX',
            'REFRESH' => 'Y',
            'DEFAULT' => 'Y',
            'PARENT' => 'MAIL',
        ),
        'USE_CAPTCHA' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_CAPTCHA'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'N',
            'PARENT' => 'CAPTCHA',
            'REFRESH' => 'Y',
        ),
        'USE_IBLOCK_WRITE' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_IBLOCK_WRITE'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'N',
            'PARENT' => 'IBLOCK_WRITE',
            'REFRESH' => 'Y',
        ),

        'USE_JQUERY' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_INCLUDE_JQUERY'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'N',
            'PARENT' => 'JS_LIB_SETTINGS',
        ),
        'USE_BOOTSRAP_CSS' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_BOOTSRAP_CSS'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'Y',
            'PARENT' => 'JS_LIB_SETTINGS',
        ),
        'USE_BOOTSRAP_JS' => array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_BOOTSRAP_JS'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'N',
            'PARENT' => 'JS_LIB_SETTINGS',
        ),
    ),
);

if ($arCurrentValues['USE_FORMVALIDATION_JS'] != 'N') {
    $arComponentParameters['PARAMETERS']['HIDE_FORMVALIDATION_TEXT'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_HIDE_FORMVALIDATION_TEXT'),
        'TYPE' => 'CHECKBOX',
        'DEFAULT' => 'N',
        'REFRESH' => 'Y',
        'PARENT' => 'JS_VALIDATE_SETTINGS',
    );
    $arComponentParameters['PARAMETERS']['INCLUDE_BOOTSRAP_JS'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_INCLUDE_FORMVALIDATION_LIBS'),
        'TYPE' => 'CHECKBOX',
        'DEFAULT' => 'Y',
        'REFRESH' => 'N',
        'PARENT' => 'JS_VALIDATE_SETTINGS',
    );
}


//PERSONAL DATA PARAMS
$includeModuleSlam = Loader::includeModule("slam.easyform");
if ($includeModuleSlam) {
    $arComponentParameters['PARAMETERS']['USE_MODULE_VARNING'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_MODULE_VARNING'),
        'TYPE' => 'CHECKBOX',
        'DEFAULT' => 'Y',
        'REFRESH' => 'Y',
        'PARENT' => 'PERSONAL_DATA',
    );
}
if ($arCurrentValues['USE_MODULE_VARNING'] != 'Y' || !$includeModuleSlam) {
    $arComponentParameters['PARAMETERS']['FORM_SUBMIT_VARNING'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FORM_SUBMIT_VARNING'),
        'TYPE' => 'STRING',
        'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_FORM_SUBMIT_VARNING_DEFAULT'),
        'COLS' => 50,
        'ROWS' => 7,
        'PARENT' => 'PERSONAL_DATA',
    );
}

//SEND AJAX PARAMS
$arComponentParameters['PARAMETERS']['SEND_AJAX'] = array(
    'NAME' => Loc::getMessage('SLAM_EASYFORM_SEND_AJAX'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'Y',
    'PARENT' => 'SUBMIT',
    'REFRESH' => 'Y',
);
if ($arCurrentValues['SEND_AJAX'] != 'N') {
    $arComponentParameters['PARAMETERS']['SHOW_MODAL'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_SHOW_MODAL'),
        'TYPE' => 'CHECKBOX',
        'DEFAULT' => 'N',
        'PARENT' => 'SUBMIT',
        'REFRESH' => 'Y',
    );
    $arComponentParameters['PARAMETERS']['_CALLBACKS'] = array(
        'PARENT' => 'SUBMIT',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FUNCTION_CALLBACKS_SUCCESS'),
        'TYPE' => 'STRING',
        'DEFAULT' => '',
    );
}

//MODAL PARAMS
if ($arCurrentValues['SHOW_MODAL'] != 'N') {
	$arComponentParameters['PARAMETERS']['TITLE_SHOW_MODAL'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_TITLE_SHOW_MODAL'),
        'TYPE' => 'STRING',
        'DEFAULT' =>  Loc::getMessage('SLAM_EASYFORM_DEFAULT_TITLE_SHOW_MODAL'),
        'PARENT' => 'SUBMIT',
    );
}
	

$arComponentParameters['PARAMETERS']['OK_TEXT'] = array(
    'NAME' => Loc::getMessage('SLAM_EASYFORM_OK_MESSAGE'),
    'TYPE' => 'STRING',
    'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_OK_TEXT'),
    'PARENT' => 'SUBMIT',
    'COLS' => 47,
    'ROWS' => 4,
);
$arComponentParameters['PARAMETERS']['ERROR_TEXT'] = array(
    'NAME' => Loc::getMessage('SLAM_EASYFORM_ERROR_MESSAGE'),
    'TYPE' => 'STRING',
    'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_ERROR_TEXT'),
    'PARENT' => 'SUBMIT',
    'COLS' => 47,
    'ROWS' => 4,
);


//IBLOCK_WRITE
if ($arCurrentValues['USE_IBLOCK_WRITE'] == 'Y' && CModule::IncludeModule('iblock')) {

    $arTypesEx = CIBlockParameters::GetIBlockTypes(Array('-' => ' '));

    $arIBlocks = Array();
    $res_iblock = CIBlock::GetList(Array('SORT' => 'ASC'), Array('TYPE' => ($arCurrentValues['IBLOCK_TYPE'] != '-' ? $arCurrentValues['IBLOCK_TYPE'] : '')));
    while ($arRes = $res_iblock->Fetch()) {
        $arIBlocks[$arRes['ID']] = $arRes['NAME'];
    }

    if ($arCurrentValues['CREATE_IBLOCK'] == 'Y' && !array_key_exists('formresult', $arTypesEx)) {

        $arNewTypeIBFields = Array(
            'ID' => 'formresult',
            'SECTIONS' => 'N',
            'IN_RSS' => 'N',
            'SORT' => 1000,
            'LANG' => Array(
                'ru' => Array(
                    'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_LANG_RU_NAME'),
                    'SECTION_NAME' => '',
                    'ELEMENT_NAME' => ''
                ),
                'en' => Array(
                    'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_LANG_EN_NAME'),
                    'SECTION_NAME' => '',
                    'ELEMENT_NAME' => ''
                )
            )
        );
        $obBlocktype = new CIBlockType;
        $res = $obBlocktype->Add($arNewTypeIBFields);

        $ib = new CIBlock;
        $arNewIBFields = Array(
            'ACTIVE' => 'Y',
            'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_LANG_RU_NAME'),
            'CODE' => 'form-result',
            'LIST_PAGE_URL' => '',
            'DETAIL_PAGE_URL' => '',
            'IBLOCK_TYPE_ID' => 'formresult',
            'SITE_ID' => $arSiteId,
            'SORT' => '500',
            'VERSION' => '2',
            'GROUP_ID' => Array('2' => 'R')
        );
        $ID = $ib->Add($arNewIBFields);

        $arTypesEx = CIBlockParameters::GetIBlockTypes(Array('-' => ' '));

        $arIBlocks = Array();
        $res_iblock = CIBlock::GetList(Array('SORT' => 'ASC'), Array('TYPE' => ($arCurrentValues['IBLOCK_TYPE'] != '-' ? $arCurrentValues['IBLOCK_TYPE'] : '')));
        while ($arRes = $res_iblock->Fetch()) {
            $arIBlocks[$arRes['ID']] = $arRes['NAME'];
        }
    }




    $arComponentParameters['PARAMETERS']['CREATE_IBLOCK'] = array(
        'PARENT' => 'IBLOCK_WRITE',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_PROP_ADD_NAME'),
        'TYPE' => 'CUSTOM',
        'DEFAULT' => '',
        'JS_FILE' => '/bitrix/components/slam/easyform/lib/settings/button_send_script.js',
        'JS_EVENT' => 'initCreateSendIblock',
        "JS_DATA" => Loc::getMessage('SLAM_EASYFORM_CREATE_SEND_IBLOCK_BUTTON'),
    );


    $arComponentParameters['PARAMETERS']['IBLOCK_TYPE'] = array(
        'PARENT' => 'IBLOCK_WRITE',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_DESC_LIST_TYPE'),
        'TYPE' => 'LIST',
        'VALUES' => $arTypesEx,
        'DEFAULT' => 'news',
        'REFRESH' => 'Y',
    );
    $arComponentParameters['PARAMETERS']['IBLOCK_ID'] = array(
        'PARENT' => 'IBLOCK_WRITE',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_DESC_LIST_ID'),
        'TYPE' => 'LIST',
        'VALUES' => $arIBlocks,
        'DEFAULT' => '',
        'ADDITIONAL_VALUES' => 'Y',
        'REFRESH' => 'Y',
    );

    if ($arCurrentValues['IBLOCK_ID'] > 0) {
        $arComponentParameters['PARAMETERS']['ACTIVE_ELEMENT'] = Array(
            'PARENT' => 'IBLOCK_WRITE',
            'NAME' => Loc::getMessage('SLAM_EASYFORM_ACTIVE_ELEMENT'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'N',
            'REFRESH' => 'Y',
        );
    }
}

//CAPTCHA
if ($arCurrentValues['USE_CAPTCHA'] == 'Y') {

    if($includeModuleSlam){
        $arComponentParameters["PARAMETERS"]['CUSTOM_FORM'] = array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_CAPTCHA_BUTTON_NAME'),
            "PARENT" => "CAPTCHA",
            'TYPE' => 'CUSTOM',
            'JS_FILE' => $componentPath.'/lib/settings/captcha_btn.js',
            'JS_EVENT' => 'JCCustomFormOpen',
            'JS_DATA' => Json::encode(array(
                'LANG' => LANGUAGE_ID,
                'BUTTON_NAME' => Loc::getMessage('SLAM_EASYFORM_CAPTCHA_BUTTON_NAME'),
                'COMPONENT_PATH' => $componentPath
            )),
        );
    }else{
        $arComponentParameters['PARAMETERS']['CAPTCHA_KEY'] = array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_CAPTCHA_KEY'),
            'TYPE' => 'STRING',
            'DEFAULT' => '',
            'PARENT' => 'CAPTCHA',
        );
        $arComponentParameters['PARAMETERS']['CAPTCHA_SECRET_KEY'] = array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_CAPTCHA_SECRET_KEY'),
            'TYPE' => 'STRING',
            'DEFAULT' => '',
            'PARENT' => 'CAPTCHA',
        );
    }



  
    $arComponentParameters['PARAMETERS']['CAPTCHA_TITLE'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_CAPTCHA_TITLE'),
        'TYPE' => 'STRING',
        'DEFAULT' => '',
        'PARENT' => 'CAPTCHA',
    );
}

//SEND EMAIL PARAMS
if (empty($arCurrentValues['ENABLE_SEND_MAIL']) || $arCurrentValues['ENABLE_SEND_MAIL'] != 'N') {
    $arEvent = Array();
    $arFilter = Array('TYPE_ID' => 'SLAM_EASYFORM', 'ACTIVE' => 'Y');
    $dbType = CEventMessage::GetList($by = 'ID', $order = 'DESC', $arFilter);
    while ($arType = $dbType->GetNext()) {
        $arEvent[$arType['ID']] = '[' . $arType['ID'] . '] ' . $arType['SUBJECT'];
    }


    $arComponentParameters['PARAMETERS']['CREATE_SEND_MAIL'] = array(
        'PARENT' => 'MAIL',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_CREATE_SEND_MAIL_BUTTON'),
        'TYPE' => 'CUSTOM',
        'DEFAULT' => '',
        'JS_FILE' => '/bitrix/components/slam/easyform/lib/settings/button_send_script.js',
        'JS_EVENT' => 'initCreateSendMail',
        "JS_DATA" => Loc::getMessage('SLAM_EASYFORM_CREATE_SEND_MAIL'),
    );


    $arComponentParameters['PARAMETERS']['EVENT_MESSAGE_ID'] = array(
        'PARENT' => 'MAIL',
        'NAME' => Loc::getMessage('SLAM_EASYFORM_EMAIL_TEMPLATES'),
        'TYPE' => 'LIST',
        'VALUES' => $arEvent,
        'DEFAULT' => '',
        'MULTIPLE' => 'Y',
        'COLS' => 15,
    );
    
    $arComponentParameters['PARAMETERS']['EMAIL_TO'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_EMAIL_TO'),
        'TYPE' => 'STRING',
        'DEFAULT' => '',
        'PARENT' => 'MAIL',
    );
    $arComponentParameters['PARAMETERS']['EMAIL_BCC'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_BCC'),
        'TYPE' => 'STRING',
        'DEFAULT' => '',
        'PARENT' => 'MAIL',
    );

    $arComponentParameters['PARAMETERS']['MAIL_SUBJECT_ADMIN'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_MAIL_SUBJECT_ADMIN'),
        'TYPE' => 'STRING',
        'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_MAIL_SUBJECT_ADMIN_DEFAULT'),
        'COLS' => 50,
        'PARENT' => 'MAIL',
    );


    $arComponentParameters['PARAMETERS']['EMAIL_FILE'] = array(
        'NAME' => Loc::getMessage('SLAM_EASYFORM_SEND_EMAIL_FILE'),
        'TYPE' => 'CHECKBOX',
        'DEFAULT' => 'N',
        'REFRESH' => 'N',
        'PARENT' => 'MAIL',
    );


    if(!empty($arCurrentValues['DISPLAY_FIELDS']) && in_array('EMAIL', $arCurrentValues['DISPLAY_FIELDS'])) {
        $arComponentParameters['PARAMETERS']['EMAIL_SEND_FROM'] = array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_SEND_FROM'),
            'TYPE' => 'CHECKBOX',
            'DEFAULT' => 'N',
            'REFRESH' => 'Y',
            'PARENT' => 'MAIL',
        );

        if($arCurrentValues['EMAIL_SEND_FROM'] == 'Y') {
            $arComponentParameters['PARAMETERS']['CREATE_SEND_MAIL_SENDER'] = array(
                'PARENT' => 'MAIL',
                'NAME' => Loc::getMessage('SLAM_EASYFORM_CREATE_SEND_MAIL_BUTTON'),
                'TYPE' => 'CUSTOM',
                'DEFAULT' => '',
                'JS_FILE' => '/bitrix/components/slam/easyform/lib/settings/button_send_script.js',
                'JS_EVENT' => 'initCreateSendMail',
                "JS_DATA" => Loc::getMessage('SLAM_EASYFORM_CREATE_SEND_MAIL'),
            );


            $arComponentParameters['PARAMETERS']['EVENT_MESSAGE_ID_SENDER'] = array(
                'PARENT' => 'MAIL',
                'NAME' => Loc::getMessage('SLAM_EASYFORM_EMAIL_TEMPLATES_SENDER'),
                'TYPE' => 'LIST',
                'VALUES' => $arEvent,
                'DEFAULT' => '',
                'MULTIPLE' => 'Y',
                'COLS' => 15,
            );
        
        $arComponentParameters['PARAMETERS']['EMAIL_BCC_SENDER'] = array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_BCC'),
            'TYPE' => 'STRING',
            'DEFAULT' => '',
            'PARENT' => 'MAIL',
        );
        
        $arComponentParameters['PARAMETERS']['MAIL_SUBJECT_SENDER'] = array(
            'NAME' => Loc::getMessage('SLAM_EASYFORM_MAIL_SUBJECT_SENDER'),
            'TYPE' => 'STRING',
            'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_MAIL_SUBJECT_SENDER_DEFAULT'),
            'COLS' => 50,
            'PARENT' => 'MAIL',
        );
        }
    }

}

if (!empty($arCurrentValues['DISPLAY_FIELDS'])) {
    $arDisplayFields = array_diff((array)$arCurrentValues['DISPLAY_FIELDS'], array(''));
    if (strlen($arCurrentValues['FIELDS_ORDER']) > 0) {
        $arSortField = explode(',', $arCurrentValues['FIELDS_ORDER']);
    }
    if (false) {
        $arFormFields = $arSortField;
    } else {
        $arFormFields = $arDisplayFields;
    }
} else {
    $arFormFields = $defaultFields;
}



if (is_array($arFormFields)) {
    $sort = 480;

    if (($arCurrentValues['USE_IBLOCK_WRITE'] == 'Y' || $arCurrentValues['IBLOCK_ID'] > 0) && CModule::IncludeModule('iblock')) {
        $arProperty_LINK = array();
        $rsProp = CIBlockProperty::GetList(array('sort' => 'asc', 'name' => 'asc'), array('IBLOCK_ID' => $arCurrentValues['IBLOCK_ID'], 'ACTIVE' => 'Y'));

        while ($arr = $rsProp->Fetch()) {
            if (in_array($arr['PROPERTY_TYPE'], array('L', 'N', 'S', 'F'))) {
                $arProperty_LINK[$arr['CODE']] = '[' . $arr['CODE'] . '] ' . $arr['NAME'];
            }
        }
        $useWriteIntoIblock = true;
    }
	
	if(empty($arCurrentValues['REQUIRED_FIELDS'])){
        $arCurrentValues['REQUIRED_FIELDS'] = array();
    }
    if(empty($arComponentParameters['PARAMETERS']['REQUIRED_FIELDS']['DEFAULT'])){
        $arComponentParameters['PARAMETERS']['REQUIRED_FIELDS']['DEFAULT']= array();
    }
	
	$mask = false;
	
    foreach ($arFormFields as $arVal) {

        $fieldName = $arFieldsResult[$arVal] ? $arFieldsResult[$arVal] : $arVal;
        $defaultFieldType = $arFields[$arVal]['TYPE'] ? $arFields[$arVal]['TYPE'] : 'text';
        $defaultValue = $arFields[$arVal]['DEFAULT_VALUE'] ? $arFields[$arVal]['DEFAULT_VALUE'] : false;
        $isFieldReq = in_array($arVal, $arCurrentValues['REQUIRED_FIELDS']) ? 'Y' :  ( !empty( $arReqFields ) ? 'N' : (in_array($arVal, $arComponentParameters['PARAMETERS']['REQUIRED_FIELDS']['DEFAULT']) ? 'Y' : 'N'));
        $typeField = $arCurrentValues['CATEGORY_' . $arVal . '_TYPE'] ? $arCurrentValues['CATEGORY_' . $arVal . '_TYPE'] : $arFields[$arVal]['TYPE'];

        $isMultipleVal = 'N';
        if (in_array($typeField, array('select', 'checkbox', 'radio'))) {
            $isMultipleVal = 'Y';
        }


        $arComponentParameters['GROUPS']['CATEGORY_' . $arVal] = array(
            'NAME' => $fieldName . Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_TITLE'),
            'SORT' => $sort,
        );
        $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_TITLE'] = array(
            'PARENT' => 'CATEGORY_' . $arVal,
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_NAME'),
            'TYPE' => 'STRING',
            'DEFAULT' => $fieldName,
        );

        $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_TYPE'] = array(
            'PARENT' => 'CATEGORY_' . $arVal,
            'NAME' => Loc::getMessage('SLAM_EASYFORM_TYPE_FIELD'),
            'TYPE' => 'LIST',
            'VALUES' => array(
                'text' => 'text',
                'email' => 'email',
                'tel' => 'tel',
                'textarea' => 'textarea',
                'select' => 'select',
                'file' => 'file',
                'checkbox' => 'checkbox',
                'accept' => 'checkbox '.Loc::getMessage('SLAM_EASYFORM_TYPE_FIELD_ACCEPT'),
                'radio' => 'radio',
                'url' => 'url',
                'number' => 'number',
                'date' => 'date',
                'datetime-local' => 'datetime-local',
                'month' => 'month',
                'week' => 'week',
                'time' => 'time',
                'hidden' => 'hidden',
                //'iblock_select' => 'iblock_select',
                //'stars' => 'stars',
            ),
            'REFRESH' => 'Y',
            'DEFAULT' => $defaultFieldType,
            'ADDITIONAL_VALUES' => 'N',
        );

        //PLACEHOLDER
        if (!in_array($typeField, array('select', 'checkbox', 'radio', 'hidden', 'accept', 'file'))) {
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_PLACEHOLDER'] = array(
                'PARENT' => 'CATEGORY_' . $arVal,
                'NAME' => 'Placeholder',
                'TYPE' => 'STRING',
            );
        }

        //VALUE
        $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_VALUE'] = array(
            'PARENT' => 'CATEGORY_' . $arVal,
            'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_VALUE'),
            'TYPE' => 'STRING',
            'MULTIPLE' => $isMultipleVal,
            'DEFAULT' => $defaultValue,
            'ADDITIONAL_VALUES' => 'N',
        );

        //SELECT, MULTISELECT
        if($typeField == "select"){
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_ADD_VAL'] = array(
                'PARENT' => 'CATEGORY_' . $arVal,
                'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_SELECT_ADD'),
                'TYPE' => 'STRING',
                'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_SELECT_ADD_DEF'),
                'ADDITIONAL_VALUES' => 'N',
                'HIDDEN' => $arCurrentValues['CATEGORY_' . $arVal . '_MULTISELECT'] != 'Y' ? 'N' : 'Y',
            );
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_MULTISELECT'] = array(
                'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_SELECTMULTISELECT_ADD'),
                'TYPE' => 'CHECKBOX',
                'DEFAULT' => 'N',
                'REFRESH' => 'Y',
                'PARENT' => 'CATEGORY_' . $arVal,
            );
        }else {
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_ADD_VAL']);
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_MULTISELECT']);
        }

        //CHECKBOX, RADIO
        if ($typeField == "checkbox" || $typeField == "radio") {
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_SHOW_INLINE'] = array(
                'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_VIEW'),
                'TYPE' => 'CHECKBOX',
                'DEFAULT' => 'Y',
                'REFRESH' => 'N',
                'PARENT' => 'CATEGORY_' . $arVal,
            );
        } else {
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_SHOW_INLINE']);
        }

        //JS VALIDATION
        if($arCurrentValues['USE_FORMVALIDATION_JS'] != 'N' && $arCurrentValues['HIDE_FORMVALIDATION_TEXT'] != 'Y'){
            if ($isFieldReq == 'Y') {
                $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_VALIDATION_MESSAGE'] = Array(
                    'PARENT' => 'CATEGORY_' . $arVal,
                    'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_VALIDATION_MESSAGE'),
                    'TYPE' => 'STRING',
                    'DEFAULT' => Loc::getMessage('SLAM_EASYFORM_FIELD_VALIDATION_MESSAGE_DEFAULT'),
                );
            }

            $defReqStr = '';
            if ($typeField == 'email') {
                $defReqStr = 'data-bv-emailaddress-message="' . Loc::getMessage('SLAM_EASYFORM_FIELD_VALIDATION_MESSAGE_EMAIL_DEFAULT') . '"';
            }

            if ($typeField != 'hidden' && $typeField != 'file') {
                $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_VALIDATION_ADDITIONALLY_MESSAGE'] = Array(
                    'PARENT' => 'CATEGORY_' . $arVal,
                    'NAME' => Loc::getMessage('SLAM_EASYFORM_FIELD_VALIDATION_ADDITIONALLY_MESSAGE'),
                    'TYPE' => 'STRING',
                    'DEFAULT' => $defReqStr
                );
            } else {
                unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_VALIDATION_ADDITIONALLY_MESSAGE']);
            }
        }
		
		//FILE
        if ($typeField == 'file') {
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_FILE_EXTENSION'] = array(
                'PARENT' => 'CATEGORY_' . $arVal,
                'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_FILE_EXTENSION'),
                'TYPE' => 'STRING',
                'DEFAULT' => 'doc, docx, xls, xlsx, txt, rtf, pdf, png, jpeg, jpg, gif',
            );
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_FILE_MAX_SIZE'] = array(
                'PARENT' => 'CATEGORY_' . $arVal,
                'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_FILE_MAX_SIZE'),
                'TYPE' => 'INT',
                'DEFAULT' => '20971520', //20Mb
            );

            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_DROPZONE_INCLUDE'] = array(
                'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_DROPZONE_JS'),
                'TYPE' => 'CHECKBOX',
                'DEFAULT' => 'Y',
                'PARENT' => 'CATEGORY_' . $arVal,
            );

            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_VALUE']);
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_TYPE_VALIDATION']);
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_PLACEHOLDER']);
			
        }

        //INPUTMASK
        if($typeField == 'tel') {
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_INPUTMASK'] = array(
                'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_INPUTMASK'),
                'TYPE' => 'CHECKBOX',
                'DEFAULT' => 'N',
                'REFRESH' => 'Y',
                'PARENT' => 'CATEGORY_' . $arVal,
            );
            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_INPUTMASK_TEMP'] = Array(
                'PARENT' => 'CATEGORY_' . $arVal,
                'NAME' => Loc::getMessage('SLAM_EASYFORM_GROUP_FIELD_INPUTMASK_TEMP'),
                'TYPE' => 'STRING',
                'DEFAULT' => '+7 (999) 999-9999',
                'REFRESH' => 'Y',
                'HIDDEN' =>  !(isset($arCurrentValues['CATEGORY_' . $arVal . '_INPUTMASK']) && $arCurrentValues['CATEGORY_' . $arVal . '_INPUTMASK'] === 'N')  ? 'N' : 'Y',
            );
            if($arCurrentValues['CATEGORY_' . $arVal . '_INPUTMASK'] == 'Y') {
                $mask = true;
            }
        } else{
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_INPUTMASK']);
            unset($arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_INPUTMASK_TEMP']);
        }

       
        //IBLOCK WRITE
        if ($useWriteIntoIblock) {

            if ($arVal == 'TITLE') {
                $iblockFieldDefault = 'NAME';
            } elseif ($arVal == 'MESSAGE') {
                $iblockFieldDefault = 'PREVIEW_TEXT';
            } else {
                $iblockFieldDefault = 'FORM_' . $arVal;
            }

            $arComponentParameters['PARAMETERS']['CATEGORY_' . $arVal . '_IBLOCK_FIELD'] = array(
                'PARENT' => 'CATEGORY_' . $arVal,
                'NAME' => Loc::getMessage('SLAM_EASYFORM_CATEGORY_IBLOCK_FIELD'),
                'TYPE' => 'LIST',
                'MULTIPLE' => 'N',
                'REFRESH' => 'Y',
                'VALUES' => array_merge(
                    array(
                        'NO_WRITE' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_FIELD_NO_WRITE'),
                        'NAME' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_FIELD_NAME'),
                        'DETAIL_TEXT' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_FIELD_DETAIL_TEXT'),
                        'PREVIEW_TEXT' => Loc::getMessage('SLAM_EASYFORM_IBLOCK_FIELD_PREVIEW_TEXT'),
                        'FORM_' . $arVal => Loc::getMessage('SLAM_EASYFORM_IBLOCK_FIELD_FORM'),
                    ), $arProperty_LINK),
                'ADDITIONAL_VALUES' => 'N',
                'DEFAULT' => $iblockFieldDefault,
            );
        }

        $sort++;
    }

	if($mask)
		$arComponentParameters['PARAMETERS']['USE_INPUTMASK_JS'] = array(
			'NAME' => Loc::getMessage('SLAM_EASYFORM_USE_INPUTMASK_JS'),
			'TYPE' => 'CHECKBOX',
			'DEFAULT' => 'Y',
			'PARENT' => 'JS_LIB_SETTINGS',
	);
}
?>