Your IP : 172.28.240.42


Current Path : /var/www/html/clients/biblio.e-nkama.ru/bitrix/components/vabank/form.lite/
Upload File :
Current File : /var/www/html/clients/biblio.e-nkama.ru/bitrix/components/vabank/form.lite/component.php

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

/**
 * Bitrix vars
 *
 * @var array $arParams
 * @var array $arResult
 * @var CBitrixComponent $this
 * @global CMain $APPLICATION
 * @global CUser $USER
 */
CModule::IncludeModule("iblock");
$arResult["PARAMS_HASH"] = md5(serialize($arParams).$this->GetTemplateName());

$arParams["USE_CAPTCHA"] = (($arParams["USE_CAPTCHA"] != "N" && !$USER->IsAuthorized()) ? "Y" : "N"); //N
$arParams["EVENT_NAME"] = trim($arParams["EVENT_NAME"]);
if($arParams["EVENT_NAME"] == '')
	$arParams["EVENT_NAME"] = "FEEDBACK_FORM";
$arParams["EMAIL_TO"] = trim($arParams["EMAIL_TO"]);
if($arParams["EMAIL_TO"] == '')
	$arParams["EMAIL_TO"] = COption::GetOptionString("main", "email_from");
$arParams["OK_TEXT"] = trim($arParams["OK_TEXT"]);
if($arParams["OK_TEXT"] == '')
	$arParams["OK_TEXT"] = GetMessage("MF_OK_MESSAGE");

if($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["submit"] <> '' && (!isset($_POST["PARAMS_HASH"]) || $arResult["PARAMS_HASH"] === $_POST["PARAMS_HASH"]))
{
	$arResult["ERROR_MESSAGE"] = array();
	if(check_bitrix_sessid())
	{
		if(empty($arParams["REQUIRED_FIELDS"]) || !in_array("NONE", $arParams["REQUIRED_FIELDS"]))
		{
			if((empty($arParams["REQUIRED_FIELDS"]) || in_array("NAME", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["user_name"]) <= 1)
				$arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_NAME");		
			if((empty($arParams["REQUIRED_FIELDS"]) || in_array("EMAIL", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["user_email"]) <= 1)
				$arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_EMAIL");
			if((empty($arParams["REQUIRED_FIELDS"]) || in_array("MESSAGE", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["MESSAGE"]) <= 3)
				$arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_MESSAGE");
		}
		if(strlen($_POST["user_email"]) > 1 && !check_email($_POST["user_email"]))
			$arResult["ERROR_MESSAGE"][] = GetMessage("MF_EMAIL_NOT_VALID");
		if($arParams["USE_CAPTCHA"] == "Y")
		{
			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("MF_CAPTCHA_WRONG");
			}
			else
				$arResult["ERROR_MESSAGE"][] = GetMessage("MF_CAPTHCA_EMPTY");

		}
		// ID инфоблока
		$arIBLOCK = CIBlock::GetList(array(), array('TYPE' => 'vabank', 'SITE_ID' => SITE_ID, 'CHECK_PERMISSIONS' => 'N', '=CODE' => 'vabank.form.lite'), false, array('nTopCount' => 1), array('IBLOCK_ID'))->Fetch();
		// типы разрешенных к загрузке файлов
		$arFileType = CIBlock::GetProperties($arIBLOCK["ID"], Array(), Array("CODE"=>"FILE"))->Fetch();
		// файл выбран

		$FileCheck = false;
		if (!empty($_FILES['FILE']))
		{
			$arrFile = array_merge($_FILES['FILE'], array("del" => "N", "MODULE_ID" => "vabank.form.lite"));
			$FileError = CFile::CheckFile($arrFile, 0, false, $arFileType['FILE_TYPE']);
			if ($FileError)
			{
				$arResult["ERROR_MESSAGE"][] = $FileError.'<br />Разрешены: '.$arFileType['FILE_TYPE'].'';
			}
			else
			{
				$FileCheck = true;
			}
		}

		if(empty($arResult["ERROR_MESSAGE"]) && !empty($arResult["PARAMS_HASH"]))
		{
			if (empty($_POST["user_name"]))
			{
				$_POST["user_name"] = 'Не указано';
			}
			if (empty($_POST["EMAIL"]))
			{
				$_POST["EMAIL"] = 'Не указан';
			}
			// добавляем элемент в инфоблок
			$el = new CIBlockElement;
			$PROP = array();
			$PROP['EMAIL'] = $_POST["user_email"];
			$arLoadProductArray = Array(
				"IBLOCK_ID" => $arIBLOCK["ID"],
				"PROPERTY_VALUES" => $PROP,
				"NAME" => $_POST["user_name"],
				"ACTIVE_FROM" => ConvertTimeStamp(time(), "FULL"),
				"DATE_CREATE" => ConvertTimeStamp(time(), "FULL"),
				"DETAIL_TEXT" => $_POST["MESSAGE"]
			);
			$ELEMENT_ID = $el->Add($arLoadProductArray);
			// проверка загрузки файла
			if($FileCheck == true)
			{
				$arr_type = explode("/", $arrFile['type']);
				$arFile = CFile::MakeFileArray($_FILES['FILE']['tmp_name']);
				$arFile["MODULE_ID"] = "vabank.form.lite";
				$arFile["del"] = "Y";
				$arFile["name"] = $ELEMENT_ID.'_'.$_FILES['FILE']['tmp_name'];
				$fid = CFile::SaveFile($arFile, "vabank.form.lite");
				if (intval($fid) > 0)
				{
					$arMakeFile = CFile::MakeFileArray($fid);
					CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $arIBLOCK["ID"], array("FILE" => $arMakeFile));
				}
			}

			// отправляем сообщение
			$arFields = Array(
				"AUTHOR" => $_POST["user_name"],
				"AUTHOR_EMAIL" => $_POST["user_email"],
				"EMAIL_TO" => $arParams["EMAIL_TO"],
				"TEXT" => $_POST["MESSAGE"],
			);
			if(!empty($arParams["EVENT_MESSAGE_ID"]))
			{
				foreach($arParams["EVENT_MESSAGE_ID"] as $v)
					if(IntVal($v) > 0)
						CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, "N", IntVal($v));
			}
			else
				CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields);
			$_SESSION["MF_NAME"] = htmlspecialcharsbx($_POST["user_name"]);
			$_SESSION["MF_EMAIL"] = htmlspecialcharsbx($_POST["user_email"]);
			LocalRedirect($APPLICATION->GetCurPageParam("success=".$arResult["PARAMS_HASH"], Array("success")));
		}
		
		$arResult["MESSAGE"] = htmlspecialcharsbx($_POST["MESSAGE"]);
		$arResult["AUTHOR_NAME"] = htmlspecialcharsbx($_POST["user_name"]);
		$arResult["AUTHOR_EMAIL"] = htmlspecialcharsbx($_POST["user_email"]);
	}
	else
		$arResult["ERROR_MESSAGE"][] = GetMessage("MF_SESS_EXP");
}
elseif($_REQUEST["success"] == $arResult["PARAMS_HASH"])
{
	$arResult["OK_MESSAGE"] = $arParams["OK_TEXT"];
}

if(empty($arResult["ERROR_MESSAGE"]))
{
	if($USER->IsAuthorized())
	{
		$arResult["AUTHOR_NAME"] = $USER->GetFormattedName(false);
		$arResult["AUTHOR_EMAIL"] = htmlspecialcharsbx($USER->GetEmail());
	}
	else
	{
		if(strlen($_SESSION["MF_NAME"]) > 0)
			$arResult["AUTHOR_NAME"] = htmlspecialcharsbx($_SESSION["MF_NAME"]);
		if(strlen($_SESSION["MF_EMAIL"]) > 0)
			$arResult["AUTHOR_EMAIL"] = htmlspecialcharsbx($_SESSION["MF_EMAIL"]);
	}
}

if($arParams["USE_CAPTCHA"] == "Y")
	$arResult["capCode"] =  htmlspecialcharsbx($APPLICATION->CaptchaGetCode());

$this->IncludeComponentTemplate();