Example #1
0
	public static function GetTemplateList($STATUS_ID)
	{
		$err_mess = (CAllForm::err_mess())."<br>Function: GetTemplateList<br>Line: ";
		global $DB, $strError;

		$STATUS_ID = intval($STATUS_ID);
		if ($STATUS_ID > 0)
		{
			$arrSITE = array();
			$strSql = "
SELECT
	F.MAIL_EVENT_TYPE,
	FS.SITE_ID
FROM b_form_status F
INNER JOIN b_form_2_site FS ON (FS.FORM_ID = F.FORM_ID)
WHERE
	F.ID='".$STATUS_ID."'
";

			//echo '<pre>',$strSql,'</pre>';
			$z = $DB->Query($strSql,false,$err_mess.__LINE__);
			while ($zr = $z->Fetch())
			{
				$MAIL_EVENT_TYPE = $zr["MAIL_EVENT_TYPE"];
				$arrSITE[] = $zr["SITE_ID"];
			}

			if (strlen($MAIL_EVENT_TYPE) <= 0)
				return false;

			$arReferenceId = array();
			$arReference = array();
			$arFilter = Array(
				"ACTIVE"		=> "Y",
				"SITE_ID"		=> $arrSITE,
				"EVENT_NAME"	=> $MAIL_EVENT_TYPE
				);
			$e = CEventMessage::GetList($by="id", $order="asc", $arFilter);
			while ($er=$e->Fetch())
			{
				if (!in_array($er["ID"], $arReferenceId))
				{
					$arReferenceId[] = $er["ID"];
					$arReference[] = "(".$er["LID"].") ".TruncateText($er["SUBJECT"],50);
				}
			}

			$arr = array("reference"=>$arReference,"reference_id"=>$arReferenceId);
			return $arr;
		}
		return false;
	}
 function SetMailTemplate($WEB_FORM_ID, $ADD_NEW_TEMPLATE = "Y", $old_SID = "", $bReturnFullInfo = false)
 {
     global $DB, $MESS, $strError;
     $err_mess = CAllForm::err_mess() . "<br>Function: SetMailTemplates<br>Line: ";
     $arrReturn = array();
     $WEB_FORM_ID = intval($WEB_FORM_ID);
     $q = CForm::GetByID($WEB_FORM_ID);
     if ($arrForm = $q->Fetch()) {
         $MAIL_EVENT_TYPE = "FORM_FILLING_" . $arrForm["SID"];
         if (strlen($old_SID) > 0) {
             $old_MAIL_EVENT_TYPE = "FORM_FILLING_" . $old_SID;
         }
         $et = new CEventType();
         $em = new CEventMessage();
         if (strlen($MAIL_EVENT_TYPE) > 0) {
             $et->Delete($MAIL_EVENT_TYPE);
         }
         $z = CLanguage::GetList($v1, $v2);
         $OLD_MESS = $MESS;
         while ($arLang = $z->Fetch()) {
             IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/admin/form_mail.php", $arLang["LID"]);
             $str = "";
             $str .= "#RS_FORM_ID# - " . GetMessage("FORM_L_FORM_ID") . "\n";
             $str .= "#RS_FORM_NAME# - " . GetMessage("FORM_L_NAME") . "\n";
             $str .= "#RS_FORM_SID# - " . GetMessage("FORM_L_SID") . "\n";
             $str .= "#RS_RESULT_ID# - " . GetMessage("FORM_L_RESULT_ID") . "\n";
             $str .= "#RS_DATE_CREATE# - " . GetMessage("FORM_L_DATE_CREATE") . "\n";
             $str .= "#RS_USER_ID# - " . GetMessage("FORM_L_USER_ID") . "\n";
             $str .= "#RS_USER_EMAIL# - " . GetMessage("FORM_L_USER_EMAIL") . "\n";
             $str .= "#RS_USER_NAME# - " . GetMessage("FORM_L_USER_NAME") . "\n";
             $str .= "#RS_USER_AUTH# - " . GetMessage("FORM_L_USER_AUTH") . "\n";
             $str .= "#RS_STAT_GUEST_ID# - " . GetMessage("FORM_L_STAT_GUEST_ID") . "\n";
             $str .= "#RS_STAT_SESSION_ID# - " . GetMessage("FORM_L_STAT_SESSION_ID") . "\n";
             $strFIELDS = "";
             $w = CFormField::GetList($WEB_FORM_ID, "ALL", $by, $order, array(), $is_filtered);
             while ($wr = $w->Fetch()) {
                 if (strlen($wr["RESULTS_TABLE_TITLE"]) > 0) {
                     $FIELD_TITLE = $wr["RESULTS_TABLE_TITLE"];
                 } elseif (strlen($wr["TITLE"]) > 0) {
                     $FIELD_TITLE = $wr["TITLE_TYPE"] == "html" ? htmlspecialcharsback(strip_tags($wr["TITLE"])) : $wr["TITLE"];
                 } else {
                     $FIELD_TITLE = TrimEx($wr["FILTER_TITLE"], ":");
                 }
                 $str .= "#" . $wr["SID"] . "# - " . $FIELD_TITLE . "\n";
                 $str .= "#" . $wr["SID"] . "_RAW# - " . $FIELD_TITLE . " (" . GetMessage('FORM_L_RAW') . ")\n";
                 $strFIELDS .= $FIELD_TITLE . "\n*******************************\n#" . $wr["SID"] . "#\n\n";
             }
             $et->Add(array("LID" => $arLang["LID"], "EVENT_NAME" => $MAIL_EVENT_TYPE, "NAME" => GetMessage("FORM_FILLING") . " \"" . $arrForm["SID"] . "\"", "DESCRIPTION" => $str));
         }
         // задаем новый тип событи¤ дл¤ старых шаблонов
         if (strlen($old_MAIL_EVENT_TYPE) > 0 && $old_MAIL_EVENT_TYPE != $MAIL_EVENT_TYPE) {
             $e = $em->GetList($by = "id", $order = "desc", array("EVENT_NAME" => $old_MAIL_EVENT_TYPE));
             while ($er = $e->Fetch()) {
                 $em->Update($er["ID"], array("EVENT_NAME" => $MAIL_EVENT_TYPE));
             }
             if (strlen($old_MAIL_EVENT_TYPE) > 0) {
                 $et->Delete($old_MAIL_EVENT_TYPE);
             }
         }
         if ($ADD_NEW_TEMPLATE == "Y") {
             $z = CSite::GetList($v1, $v2);
             while ($arSite = $z->Fetch()) {
                 $arrSiteLang[$arSite["ID"]] = $arSite["LANGUAGE_ID"];
             }
             $arrFormSite = CForm::GetSiteArray($WEB_FORM_ID);
             if (is_array($arrFormSite) && count($arrFormSite) > 0) {
                 foreach ($arrFormSite as $sid) {
                     IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/admin/form_mail.php", $arrSiteLang[$sid]);
                     $SUBJECT = "#SERVER_NAME#: " . GetMessage("FORM_FILLING_S") . " [#RS_FORM_ID#] #RS_FORM_NAME#";
                     $MESSAGE = "#SERVER_NAME#\n\n" . GetMessage("FORM_FILLING") . ": [#RS_FORM_ID#] #RS_FORM_NAME#\n-------------------------------------------------------\n\n" . GetMessage("FORM_DATE_CREATE") . "#RS_DATE_CREATE#\n" . GetMessage("FORM_RESULT_ID") . "#RS_RESULT_ID#\n" . GetMessage("FORM_USER") . "[#RS_USER_ID#] #RS_USER_NAME# #RS_USER_AUTH#\n" . GetMessage("FORM_STAT_GUEST_ID") . "#RS_STAT_GUEST_ID#\n" . GetMessage("FORM_STAT_SESSION_ID") . "#RS_STAT_SESSION_ID#\n\n\n{$strFIELDS}\n" . GetMessage("FORM_VIEW") . "\nhttp://#SERVER_NAME#/bitrix/admin/form_result_view.php?lang=" . $arrSiteLang[$sid] . "&WEB_FORM_ID=#RS_FORM_ID#&RESULT_ID=#RS_RESULT_ID#\n\n-------------------------------------------------------\n" . GetMessage("FORM_GENERATED_AUTOMATICALLY") . "\n\t\t\t\t\t\t";
                     // добавл¤ем новый шаблон
                     $arFields = array("ACTIVE" => "Y", "EVENT_NAME" => $MAIL_EVENT_TYPE, "LID" => $sid, "EMAIL_FROM" => "#DEFAULT_EMAIL_FROM#", "EMAIL_TO" => "#DEFAULT_EMAIL_FROM#", "SUBJECT" => $SUBJECT, "MESSAGE" => $MESSAGE, "BODY_TYPE" => "text");
                     $TEMPLATE_ID = $em->Add($arFields);
                     if ($bReturnFullInfo) {
                         $arrReturn[] = array('ID' => $TEMPLATE_ID, 'FIELDS' => $arFields);
                     } else {
                         $arrReturn[] = $TEMPLATE_ID;
                     }
                 }
             }
         }
         $MESS = $OLD_MESS;
     }
     return $arrReturn;
 }
Example #3
0
 function GetClosedFields($WEB_FORM_ID, $arrFields)
 {
     $err_mess = CAllForm::err_mess() . "<br>Function: GetClosedFields<br>Line: ";
     global $DB;
     $str = "";
     if (is_array($arrFields) && count($arrFields) > 0) {
         $q = CFormField::GetList($WEB_FORM_ID, "N", $by, $order, array("VARNAME" => implode("|", $arrFields)), $is_filtered);
         while ($qr = $q->Fetch()) {
             $str .= "<input type=\"hidden\" name=\"ARR_CLS[]\" value=\"" . htmlspecialchars($qr["ID"]) . "\">\n";
         }
     }
     return $str;
 }