GetTemplateName());
$arParams["USE_CAPTCHA"] = (($arParams["USE_CAPTCHA"] != "N" && !$USER->IsAuthorized()) ? "Y" : "N");
if ($arParams["OK_MESSAGE"] == '')
$arParams["OK_MESSAGE"] = GetMessage("INNET_FORM_OK_MESSAGE");
$res = CIBlock::GetProperties($arParams['IBLOCK_ID'], array("SORT" => "ASC"), array("ACTIVE" => "Y"));
while ($arProp = $res->Fetch()) {
if (in_array($arProp['CODE'], $arParams['INNET_PROPERTIES_SHOW_FORM'])){
if ($arProp['LIST_TYPE'] == "L" || $arProp['LIST_TYPE'] == "C") {
$property_enums = CIBlockPropertyEnum::GetList(array("DEF" => "DESC", "SORT" => "ASC"), array("IBLOCK_ID" => $arParams['IBLOCK_ID'], "CODE" => $arProp['CODE']));
while ($enum_fields = $property_enums->GetNext()) {
$arProp['PROPERTIES_LIST'][] = $enum_fields;
}
}
$arResult["FIELDS"][$arProp['CODE']] = $arProp;
}
if($arProp['CODE'] == 'FORM_GOAL_ID'){
$arResult["FORM_GOAL_ID"] = $arProp['DEFAULT_VALUE'];
} else if ($arProp['CODE'] == 'FORM_GOAL_NUMBER'){
$arResult["FORM_GOAL_NUMBER"] = $arProp['DEFAULT_VALUE'];
}
if($arProp['CODE'] == 'BUTTON_GOAL_ID'){
$arResult["BUTTON_GOAL_ID"] = $arProp['DEFAULT_VALUE'];
} else if ($arProp['CODE'] == 'BUTTON_GOAL_NUMBER'){
$arResult["BUTTON_GOAL_NUMBER"] = $arProp['DEFAULT_VALUE'];
}
}
$res = CIBlock::GetProperties($arParams['IBLOCK_ID'], array("SORT" => "ASC"));
while ($arProp = $res->Fetch()) {
if ($arProp['CODE'] == 'FORM_HEADER'){
$arResult["FIELDS_DESCRIPTION"]['FORM_HEADER'] = ($arProp['NAME'] ? $arProp['NAME'] : $arProp['DEFAULT_VALUE']);
}
if ($arProp['CODE'] == 'FORM_DESCRIPTION'){
$arResult["FIELDS_DESCRIPTION"]['FORM_DESCRIPTION'] = ($arProp['NAME'] ? $arProp['NAME'] : $arProp['DEFAULT_VALUE']);
}
if ($arProp['CODE'] == 'FORM_BUTTON'){
$arResult["FIELDS_DESCRIPTION"]['FORM_BUTTON'] = ($arProp['NAME'] ? $arProp['NAME'] : $arProp['DEFAULT_VALUE']);
}
}
foreach ($arResult["FIELDS"] as $key => $field){
if ($field['USER_TYPE'] == 'HTML'){
$arFieldsProp[$field['CODE']] = array('VALUE' => array('TYPE' => 'HTML', 'TEXT' => $_POST[$field['CODE']]));
// $arFieldsProp[$field['CODE']] = $_POST[$field['CODE']];
} else {
$arFieldsProp[$field['CODE']] = $_POST[$field['CODE']];
}
$arResult["FIELDS"][$key]['NAME'] = (strlen($field['HINT']) > 0) ? $field['HINT'] : $field['NAME'];
}
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["submit"] <> '' && (!isset($_POST["PARAMS_HASH"]) || $arResult["PARAMS_HASH"] === $_POST["PARAMS_HASH"])) {
if ($arParams["EMAIL_TO"] == '')
$arParams["EMAIL_TO"] = COption::GetOptionString("main", "email_from");
$arResult["ERROR_MESSAGE"] = array();
if (check_bitrix_sessid()) {
if (!empty($arResult["FIELDS"])){
foreach ($arResult["FIELDS"] as $field){
if ($field['IS_REQUIRED'] == 'Y'){
if (empty($_POST[$field['CODE']])){
$field_name = (strlen($field['HINT']) > 0) ? $field['HINT'] : $field['NAME'];
$arResult["ERROR_MESSAGE"][] = GetMessage("INNET_FIELD_EMPTY") . $field_name;
}
}
if ($_FILES[$field['CODE']]) {
if ($field['PROPERTY_TYPE'] == 'F') {
foreach ($_FILES[$field['CODE']]["name"] as $key => $photo) {
$tmpFile = Array(
"name" => $photo,
"size" => $_FILES[$field['CODE']]["size"][$key],
"tmp_name" => $_FILES[$field['CODE']]["tmp_name"][$key],
"type" => $_FILES[$field['CODE']]["type"][$key],
"old_file" => "",
"del" => "y",
"MODULE_ID" => "iblock"
);
$fid = CFile::SaveFile($tmpFile, "/upload/iblock/");
$arFieldsProp[$field['CODE']][] = $fid;
}
}
}
}
}
if ($arParams["USE_CAPTCHA"] == "Y") {
if (COption::GetOptionString($GLOBALS['INNET_MODULE_ID'], "innet_use_google_captcha_" . SITE_ID) == 'Y'){
if (isset($_POST['g-recaptcha-response'])) {
$url_to_google_api = "https://www.google.com/recaptcha/api/siteverify";
$secret_key = COption::GetOptionString($GLOBALS['INNET_MODULE_ID'], "innet_secret_key_" . SITE_ID);
$query = $url_to_google_api . '?secret=' . $secret_key . '&response=' . $_POST['g-recaptcha-response'] . '&remoteip=' . $_SERVER['REMOTE_ADDR'];
$data = json_decode(file_get_contents($query));
if ($data->success) {
} else {
$arResult["ERROR_MESSAGE"][] = GetMessage("INNET_FORM_CAPTHCA_EMPTY");
}
} else {
$arResult["ERROR_MESSAGE"][] = GetMessage("INNET_FORM_RECAPTCHA");
}
} else {
include_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/captcha.php");
$captcha_code = $_POST["captcha_sid"];
$captcha_word = $_POST["captcha_word"];
$cpt = new CCaptcha();
$captchaPass = COption::GetOptionString("main", "captcha_password", "");
if (strlen($captcha_word) > 0 && strlen($captcha_code) > 0) {
if (!$cpt->CheckCodeCrypt($captcha_word, $captcha_code, $captchaPass))
$arResult["ERROR_MESSAGE"][] = GetMessage("INNET_FORM_CAPTCHA_WRONG");
} else {
$arResult["ERROR_MESSAGE"][] = GetMessage("INNET_FORM_CAPTHCA_EMPTY");
}
}
}
if (empty($arResult["ERROR_MESSAGE"])) {
global $USER;
$arFieldsProp['USER_ID'] = $USER->GetID();
$arFieldsProp['ELEMENT_ID'] = $arParams['INNET_ELEMENT_ID'];
$arFieldsProp['LINK'] = $_REQUEST['LINK'];
$arFieldsProp['THEME'] = $arParams['INNET_THEME'];
$arFieldsProp['SITE_TEMPLATE_PATH'] = SITE_SERVER_NAME . SITE_TEMPLATE_PATH;
if (!empty($arParams['INNET_PARAMS_ORDER']['ITEMS'])){
$arFieldsProp['SERIALIZE']['BASKET_TOTAL_PRICE'] = $arParams['INNET_PARAMS_ORDER']['BASKET_TOTAL_PRICE'];
$arFieldsProp['SERIALIZE']['TOTAL_PRICE_DIFF'] = $arParams['INNET_PARAMS_ORDER']['TOTAL_PRICE_DIFF'];
$arFieldsProp['SERIALIZE']['BASKET_TOTAL_COUNT'] = $arParams['INNET_PARAMS_ORDER']['BASKET_TOTAL_COUNT'];
$arFieldsProp['SERIALIZE']['CURRENCY'] = $arParams['INNET_PARAMS_ORDER']['CURRENCY'];
$arFieldsProp['SERIALIZE']['BASKET_TOTAL_PRICE_FORMAT'] = $arParams['INNET_PARAMS_ORDER']['BASKET_TOTAL_PRICE_FORMAT'];
include_once __DIR__ . '/composition_orders.php';
}
if (!empty($arParams['IBLOCK_ID'])) {
$arFieldsAdd = array(
"ACTIVE" => "N",
"IBLOCK_ID" => $arParams['IBLOCK_ID'],
"DATE_ACTIVE_FROM" => ConvertTimeStamp(time(), 'FULL'),
"NAME" => ConvertTimeStamp(time(), 'FULL'),
"CODE" => ConvertTimeStamp(time(), 'FULL'),
"PROPERTY_VALUES" => $arFieldsProp
);
$el = new CIBlockElement();
if (!$el->Add($arFieldsAdd)) {
$arResult["ERROR_MESSAGE"][] = GetMessage("INNET_FORM_ERROR_ADD_IBLOCK");
}
}
$arFieldsProp['COMMENT'] = $arFieldsProp['COMMENT']['VALUE']['TEXT'];
if (!empty($arParams["EVENT_MESSAGE_ID"])) {
foreach ($arParams["EVENT_MESSAGE_ID"] as $v)
if (IntVal($v) > 0)
CEvent::Send($arParams["EVENT_MESSAGE_TYPE"], SITE_ID, $arFieldsProp, "N", IntVal($v));//mail to admin
} else if (!empty($arParams["EVENT_MESSAGE_TYPE"])){
CEvent::Send($arParams["EVENT_MESSAGE_TYPE"], SITE_ID, $arFieldsProp);//mail to admin
}
if (!empty($arParams["EVENT_MESSAGE_TYPE_USER"])){
CEvent::Send($arParams["EVENT_MESSAGE_TYPE_USER"], SITE_ID, $arFieldsProp);//mail to user
}
LocalRedirect($APPLICATION->GetCurPageParam("success=" . $arResult["PARAMS_HASH"], Array("success")));
}
} else {
$arResult["ERROR_MESSAGE"][] = GetMessage("FORM_SESS_EXP");
}
} elseif ($_REQUEST["success"] == $arResult["PARAMS_HASH"]) {
$arResult["OK_MESSAGE"] = $arParams["OK_MESSAGE"];
if ($componentTemplate == 'order'){
foreach ($_SESSION['INNET_BASKET'] as $key => $val) {
if ($val > 0) {
$arItem = explode(":", $key);
$productId = $arItem[1];
$productCount = $val;
if ($arItem[0] == "INNET_BASKET_ELEMENT_ID") {
$arProducts[] = $productId;
$arCount[$productId] = $productCount;
$APPLICATION->set_cookie("INNET_BASKET_ELEMENT_ID:" . $productId, 0, time() + 60 * 60 * 24 * 30);
}
}
}
unset($_SESSION['INNET_BASKET']);
}
}
if (!empty($arFieldsProp)){
foreach ($arFieldsProp as $key => $val){
if (is_array($val)){
$arResult['INNET_FORM'][$key] = $val['VALUE']['TEXT'];
} else {
$arResult['INNET_FORM'][$key] = $val;
}
}
}
if ($arParams["USE_CAPTCHA"] == "Y")
$arResult["capCode"] = htmlspecialcharsbx($APPLICATION->CaptchaGetCode());
$this->IncludeComponentTemplate();