Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.37 KB | None | 0 0
  1. <?php
  2. if(!defined("B_PROLOG_INCLUDED")||B_PROLOG_INCLUDED!==true)die();
  3.  
  4. /**
  5.  * Bitrix vars
  6.  *
  7.  * @var array $arParams
  8.  * @var array $arResult
  9.  * @var CBitrixComponent $this
  10.  * @global CMain $APPLICATION
  11.  * @global CUser $USER
  12.  */
  13.  
  14. $arResult["PARAMS_HASH"] = md5(serialize($arParams).$this->GetTemplateName());
  15.  
  16. $arParams["USE_CAPTCHA"] = (($arParams["USE_CAPTCHA"] != "N" && !$USER->IsAuthorized()) ? "Y" : "N");
  17. $arParams["EVENT_NAME"] = trim($arParams["EVENT_NAME"]);
  18. if($arParams["EVENT_NAME"] == '')
  19.     $arParams["EVENT_NAME"] = "FEEDBACK_FORM";
  20. $arParams["EMAIL_TO"] = trim($arParams["EMAIL_TO"]);
  21. if($arParams["EMAIL_TO"] == '')
  22.     $arParams["EMAIL_TO"] = COption::GetOptionString("main", "email_from");
  23. $arParams["OK_TEXT"] = trim($arParams["OK_TEXT"]);
  24. if($arParams["OK_TEXT"] == '')
  25.     $arParams["OK_TEXT"] = GetMessage("MF_OK_MESSAGE");
  26. /*
  27. if(isset($_REQUEST["s1ajax"]) && $_REQUEST["s1ajax"] === "y") {
  28.     $APPLICATION->RestartBuffer();
  29. }*/
  30.  
  31.  
  32.  
  33.  
  34.  
  35. if($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["submit"] <> '' && (!isset($_POST["PARAMS_HASH"]) || $arResult["PARAMS_HASH"] === $_POST["PARAMS_HASH"]))
  36. {
  37.     $lang_par = GetMessage("MF_LANG");
  38.     $event_id = "S1_FEEDBACK_FORM";
  39.     $arFilter = array(
  40.         "TYPE_ID" => $event_id,
  41.         "LID"     => $lang_par,
  42.     );
  43.     $rsET = CEventType::GetList($arFilter);
  44.     if (!($rsET->Fetch())) {
  45.         $arFields = array(
  46.             "EVENT_NAME"  => $event_id,
  47.             "NAME"        => GetMessage("MF_ET_NAME"),
  48.             "LID"     => $lang_par,
  49.             "DESCRIPTION" => "#EMAIL_FROM# - ".GetMessage("MF_ET_EMAIL_FROM").
  50.                 "\n#EMAIL_TO# - ".GetMessage("MF_ET_EMAIL_TO").
  51.                 "\n#TEXT# - ".GetMessage("MF_ET_TEXT").
  52.                 "\n#E_THEME# - ".GetMessage("MF_ET_THEME")//.
  53.                 //"\n#DIR_FILE# - ".GetMessage("MF_ET_DIR_FILE").
  54.                 //"\n#AR_FILE# - ".GetMessage("MF_ET_AR_FILE").
  55.                 //"\n#DEL_FILE# - ".GetMessage("MF_ET_DEL_FILE")
  56.         );
  57.         $obEventType = new CEventType;
  58.         $obEventType->Add($arFields);
  59.     }
  60.     $arFilter = array(
  61.         "TYPE_ID" => $event_id,
  62.         "ACTIVE"  => "Y",
  63.         "SITE_ID" => SITE_ID,
  64.     );
  65.     $rsMess = CEventMessage::GetList($by="id", $order="desc", $arFilter);
  66.     if ($arMess = $rsMess->Fetch())
  67.         $template_id = $arMess["ID"];
  68.     else {
  69.         $arFields = array(
  70.             "ACTIVE"     => "Y",
  71.             "EVENT_NAME" => $event_id,
  72.             "LID"        => SITE_ID,
  73.             "EMAIL_FROM" => '#EMAIL_FROM#',
  74.             "EMAIL_TO"   => '#EMAIL_TO#',
  75.             "SUBJECT"    => '#E_THEME#',
  76.             "BODY_TYPE"  => 'text',
  77.             "MESSAGE"    => '#TEXT#',
  78.         );
  79.         $obTemplate = new CEventMessage;
  80.         $template_id = $obTemplate->Add($arFields);
  81.     }
  82.  
  83.  
  84.     $arResult["ERROR_MESSAGE"] = array();
  85.     if(check_bitrix_sessid())
  86.     {
  87.         if(empty($arParams["REQUIRED_FIELDS"]) || !in_array("NONE", $arParams["REQUIRED_FIELDS"]))
  88.         {
  89.             if((empty($arParams["REQUIRED_FIELDS"]) || in_array("NAME", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["user_name"]) <= 1){
  90.                 $arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_NAME");
  91.                 $arResult["ERROR_FIELD"][] = 'user_name';
  92.             }
  93.  
  94.             if((empty($arParams["REQUIRED_FIELDS"]) || in_array("EMAIL", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["user_email"]) <= 1){
  95.                 $arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_EMAIL");
  96.                 $arResult["ERROR_FIELD"][] = 'user_email';
  97.             }
  98.             if((empty($arParams["REQUIRED_FIELDS"]) || in_array("MESSAGE", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["MESSAGE"]) <= 3)
  99.             {
  100.                 $arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_MESSAGE");
  101.                 $arResult["ERROR_FIELD"][] = 'MESSAGE';
  102.             }
  103.  
  104.             if((empty($arParams["REQUIRED_FIELDS"]) || in_array("PHONE", $arParams["REQUIRED_FIELDS"])) && strlen($_POST["user_phone"]) <= 1)
  105.             {
  106.                 $arResult["ERROR_MESSAGE"][] = GetMessage("MF_REQ_PHONE");
  107.                 $arResult["ERROR_FIELD"][] = 'user_phone';
  108.             }
  109.  
  110.         }
  111.         if(strlen($_POST["user_email"]) > 1 && !check_email($_POST["user_email"]))
  112.             $arResult["ERROR_MESSAGE"][] = GetMessage("MF_EMAIL_NOT_VALID");
  113.         if($arParams["USE_CAPTCHA"] == "Y")
  114.         {
  115.             $recaptcha = new \ReCaptcha\ReCaptcha(RE_SEC_KEY);
  116.             $resp = $recaptcha->verify($_REQUEST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
  117.  
  118.             if (!$resp->isSuccess())
  119.                 $arResult["ERROR_MESSAGE"][] = GetMessage("MF_CAPTCHA_WRONG");
  120.  
  121.         }          
  122.         if(empty($arResult["ERROR_MESSAGE"]))
  123.         {
  124.             $arFields = Array(
  125.                 "AUTHOR" =>   htmlspecialcharsEx($_REQUEST["user_name"]),
  126.                 "AUTHOR_EMAIL" => htmlspecialcharsEx($_REQUEST["user_email"]),
  127.                 "AUTHOR_PHONE" => htmlspecialcharsEx($_REQUEST["user_phone"]),
  128.                 "EMAIL_TO" => $arParams["EMAIL_TO"],
  129.                 "TEXT" => htmlspecialcharsEx($_REQUEST["MESSAGE"]),
  130.             );
  131.  
  132.             $rsSites = CSite::GetByID(SITE_ID);
  133.             $arSite = $rsSites->Fetch();
  134.             $arFieldss = array();
  135.             $arFieldss["EMAIL_FROM"] = ($arFields['AUTHOR_EMAIL'] != "") ? $arFields['AUTHOR_EMAIL'] : COption::GetOptionString("main", "email_from");
  136.             $arFieldss["EMAIL_TO"] = $arFields['EMAIL_TO'];//empty($Email) ? (isset($copy_email) ? $copy_email : COption::GetOptionString("main", "email_from")) : implode(",",$Email);
  137.             $arFieldss["E_THEME"] = GetMessage('MF_ET_THEME_DEF').$arSite["NAME"];
  138.             $arFieldss["TEXT"] = '';
  139.  
  140.             foreach($arFields as $key => $val){
  141.                 if($key != 'EMAIL_TO')
  142.                     $arFieldss["TEXT"] .= "\n\n".GetMessage('MF_F_'.$key).":\n".$val;
  143.             }
  144.  
  145.             if(strlen($template_id) > 0)
  146.                 CEvent::Send($event_id, SITE_ID, $arFieldss, "N", $template_id);
  147.             else
  148.                 CEvent::Send($event_id, SITE_ID, $arFieldss, "N");
  149. /*
  150.             if(!empty($arParams["EVENT_MESSAGE_ID"]))
  151.             {
  152.                 foreach($arParams["EVENT_MESSAGE_ID"] as $v)
  153.                     if(IntVal($v) > 0)
  154.                         CEvent::Send($event_id, SITE_ID, $arFieldss, "N", IntVal($v));
  155.             }
  156.             else
  157.                 CEvent::Send($event_id, SITE_ID, $arFieldss);
  158. */
  159.             $_SESSION["MF_NAME"] = htmlspecialcharsbx($_POST["user_name"]);
  160.             $_SESSION["MF_EMAIL"] = htmlspecialcharsbx($_POST["user_email"]);
  161.             LocalRedirect($APPLICATION->GetCurPageParam("success=".$arResult["PARAMS_HASH"], Array("success")));
  162.             $arResult["SUCCESS"] = 1;
  163.         }
  164.        
  165.         $arResult["MESSAGE"] = htmlspecialcharsbx($_POST["MESSAGE"]);
  166.         $arResult["AUTHOR_NAME"] = htmlspecialcharsbx($_POST["user_name"]);
  167.         $arResult["AUTHOR_EMAIL"] = htmlspecialcharsbx($_POST["user_email"]);
  168.     }
  169.     else
  170.         $arResult["ERROR_MESSAGE"][] = GetMessage("MF_SESS_EXP");
  171. }
  172. elseif($_REQUEST["success"] == $arResult["PARAMS_HASH"])
  173. {
  174.     $arResult["OK_MESSAGE"] = $arParams["OK_TEXT"];
  175. }
  176.  
  177. if(empty($arResult["ERROR_MESSAGE"]))
  178. {
  179.     if($USER->IsAuthorized())
  180.     {
  181.         $arResult["AUTHOR_NAME"] = $USER->GetFormattedName(false);
  182.         $arResult["AUTHOR_EMAIL"] = htmlspecialcharsbx($USER->GetEmail());
  183.     }
  184.     else
  185.     {
  186.         if(strlen($_SESSION["MF_NAME"]) > 0)
  187.             $arResult["AUTHOR_NAME"] = htmlspecialcharsbx($_SESSION["MF_NAME"]);
  188.         if(strlen($_SESSION["MF_EMAIL"]) > 0)
  189.             $arResult["AUTHOR_EMAIL"] = htmlspecialcharsbx($_SESSION["MF_EMAIL"]);
  190.     }
  191.     $arResult["SUCCESS"] = 1;
  192. }
  193.  
  194. if($arParams["USE_CAPTCHA"] == "Y")
  195.     $arResult["capCode"] =  htmlspecialcharsbx($APPLICATION->CaptchaGetCode());
  196.  
  197. //echo print_r($_REQUEST, true);
  198. /*
  199. if(isset($_REQUEST["s1ajax"]) && $_REQUEST["s1ajax"] === "y")
  200. {
  201.     $this->setFrameMode(false);
  202.     //$APPLICATION->RestartBuffer();
  203.     $this->IncludeComponentTemplate("ajax");
  204.     //require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php");
  205.     die();
  206. }
  207. else
  208. {*/
  209.     $this->IncludeComponentTemplate();
  210. /*}*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement