function Set($arFields, $FORM_ID = false, $CHECK_RIGHTS = "Y") { $err_mess = CAllForm::err_mess() . "<br>Function: Set<br>Line: "; global $DB, $USER, $strError, $APPLICATION; $FORM_ID = intval($FORM_ID); if (CForm::CheckFields($arFields, $FORM_ID, $CHECK_RIGHTS)) { $arFields_i = array(); if (strlen(trim($arFields["SID"])) > 0) { $arFields["VARNAME"] = $arFields["SID"]; } elseif (strlen($arFields["VARNAME"]) > 0) { $arFields["SID"] = $arFields["VARNAME"]; } //$arFields_i["TIMESTAMP_X"] = $DB->GetNowFunction(); $arFields_i["TIMESTAMP_X"] = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), time() + CTimeZone::GetOffset()); if (is_set($arFields, "NAME")) { $arFields_i["NAME"] = $arFields['NAME']; } //"'".$DB->ForSql($arFields["NAME"],255)."'"; if (is_set($arFields, "SID")) { $arFields_i["SID"] = $arFields['SID']; } //"'".$DB->ForSql($arFields["SID"],255)."'"; if (is_set($arFields, "DESCRIPTION")) { $arFields_i["DESCRIPTION"] = $arFields['DESCRIPTION']; } //"'".$DB->ForSql($arFields["DESCRIPTION"],2000)."'"; if (is_set($arFields, "C_SORT")) { $arFields_i["C_SORT"] = intval($arFields["C_SORT"]); } //"'".intval($arFields["C_SORT"])."'"; if (is_array($arrSITE)) { reset($arrSITE); list($k, $arFields["FIRST_SITE_ID"]) = each($arrSITE); } if (is_set($arFields, "BUTTON")) { $arFields_i["BUTTON"] = $arFields['BUTTON']; } //"'".$DB->ForSql($arFields["BUTTON"],255)."'"; if (is_set($arFields, "USE_CAPTCHA")) { $arFields_i["USE_CAPTCHA"] = $arFields["USE_CAPTCHA"] == "Y" ? "Y" : "N"; } // "'Y'" : "'N'"; if (is_set($arFields, "DESCRIPTION_TYPE")) { $arFields_i["DESCRIPTION_TYPE"] = $arFields["DESCRIPTION_TYPE"] == "html" ? "html" : "text"; } //"'html'" : "'text'"; if (is_set($arFields, "FORM_TEMPLATE")) { $arFields_i["FORM_TEMPLATE"] = $arFields['FORM_TEMPLATE']; } //"'".$DB->ForSql($arFields["FORM_TEMPLATE"])."'"; if (is_set($arFields, "USE_DEFAULT_TEMPLATE")) { $arFields_i["USE_DEFAULT_TEMPLATE"] = $arFields["USE_DEFAULT_TEMPLATE"] == "Y" ? "Y" : "N"; } //"'Y'" : "'N'"; if (is_set($arFields, "SHOW_TEMPLATE")) { $arFields_i["SHOW_TEMPLATE"] = $arFields['SHOW_TEMPLATE']; } //"'".$DB->ForSql($arFields["SHOW_TEMPLATE"],255)."'"; if (is_set($arFields, "SHOW_RESULT_TEMPLATE")) { $arFields_i["SHOW_RESULT_TEMPLATE"] = $arFields['SHOW_RESULT_TEMPLATE']; } //"'".$DB->ForSql($arFields["SHOW_RESULT_TEMPLATE"],255)."'"; if (is_set($arFields, "PRINT_RESULT_TEMPLATE")) { $arFields_i["PRINT_RESULT_TEMPLATE"] = $arFields['PRINT_RESULT_TEMPLATE']; } //"'".$DB->ForSql($arFields["PRINT_RESULT_TEMPLATE"],255)."'"; if (is_set($arFields, "EDIT_RESULT_TEMPLATE")) { $arFields_i["EDIT_RESULT_TEMPLATE"] = $arFields['EDIT_RESULT_TEMPLATE']; } //"'".$DB->ForSql($arFields["EDIT_RESULT_TEMPLATE"],255)."'"; if (is_set($arFields, "FILTER_RESULT_TEMPLATE")) { $arFields_i["FILTER_RESULT_TEMPLATE"] = $arFields['FILTER_RESULT_TEMPLATE']; } //"'".$DB->ForSql($arFields["FILTER_RESULT_TEMPLATE"],255)."'"; if (is_set($arFields, "TABLE_RESULT_TEMPLATE")) { $arFields_i["TABLE_RESULT_TEMPLATE"] = $arFields['TABLE_RESULT_TEMPLATE']; } //"'".$DB->ForSql($arFields["TABLE_RESULT_TEMPLATE"],255)."'"; if (is_set($arFields, "USE_RESTRICTIONS")) { $arFields_i["USE_RESTRICTIONS"] = $arFields["USE_RESTRICTIONS"] == "Y" ? "Y" : "N"; } //"'Y'" : "'N'"; if (is_set($arFields, "RESTRICT_USER")) { $arFields_i["RESTRICT_USER"] = intval($arFields["RESTRICT_USER"]); } //"'".intval($arFields["RESTRICT_USER"])."'"; if (is_set($arFields, "RESTRICT_TIME")) { $arFields_i["RESTRICT_TIME"] = intval($arFields["RESTRICT_TIME"]); } //"'".intval($arFields["RESTRICT_TIME"])."'"; if (is_set($arFields, "arRESTRICT_STATUS")) { $arFields_i["RESTRICT_STATUS"] = implode(",", $arFields["arRESTRICT_STATUS"]); } //"'".$DB->ForSql(implode(",", $arFields["arRESTRICT_STATUS"]))."'"; if (is_set($arFields, "STAT_EVENT1")) { $arFields_i["STAT_EVENT1"] = $arFields['STAT_EVENT1']; } //"'".$DB->ForSql($arFields["STAT_EVENT1"],255)."'"; if (is_set($arFields, "STAT_EVENT2")) { $arFields_i["STAT_EVENT2"] = $arFields['STAT_EVENT2']; } //"'".$DB->ForSql($arFields["STAT_EVENT2"],255)."'"; if (is_set($arFields, "STAT_EVENT3")) { $arFields_i["STAT_EVENT3"] = $arFields['STAT_EVENT3']; } //"'".$DB->ForSql($arFields["STAT_EVENT3"],255)."'"; if (CForm::IsOldVersion() != "Y") { unset($arFields_i["SHOW_TEMPLATE"]); unset($arFields_i["SHOW_RESULT_TEMPLATE"]); unset($arFields_i["PRINT_RESULT_TEMPLATE"]); unset($arFields_i["EDIT_RESULT_TEMPLATE"]); } $z = $DB->Query("SELECT IMAGE_ID, SID, SID as VARNAME FROM b_form WHERE ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); $zr = $z->Fetch(); $oldSID = $zr["SID"]; if (strlen($arFields["arIMAGE"]["name"]) > 0 || strlen($arFields["arIMAGE"]["del"]) > 0) { if (intval($zr["IMAGE_ID"]) > 0) { $arFields["arIMAGE"]["old_file"] = $zr["IMAGE_ID"]; } if (!array_key_exists("MODULE_ID", $arFields["arIMAGE"]) || strlen($arFields["arIMAGE"]["MODULE_ID"]) <= 0) { $arFields["arIMAGE"]["MODULE_ID"] = "form"; } $fid = CFile::SaveFile($arFields["arIMAGE"], "form"); if (intval($fid) > 0) { $arFields_i["IMAGE_ID"] = intval($fid); } else { $arFields_i["IMAGE_ID"] = "null"; } } if ($arFields['SID']) { $arFields_i["MAIL_EVENT_TYPE"] = "FORM_FILLING_" . $arFields["SID"]; } else { $arFields_i["MAIL_EVENT_TYPE"] = "FORM_FILLING_" . $oldSID; } if ($FORM_ID > 0) { $strUpdate = $DB->PrepareUpdate('b_form', $arFields_i); if ($strUpdate != '') { $query = 'UPDATE b_form SET ' . $strUpdate . " WHERE ID='" . $FORM_ID . "'"; $arBinds = array('FORM_TEMPLATE' => $arFields_i['FORM_TEMPLATE']); $DB->QueryBind($query, $arBinds); } //$DB->Update("b_form", $arFields_i, "WHERE ID='".$FORM_ID."'", $err_mess.__LINE__); CForm::SetMailTemplate($FORM_ID, "N", $oldSID); } else { //$FORM_ID = $DB->Insert("b_form", $arFields_i, $err_mess.__LINE__); $FORM_ID = $DB->Add("b_form", $arFields_i, array('FORM_TEMPLATE')); CForm::SetMailTemplate($FORM_ID, "N"); } $FORM_ID = intval($FORM_ID); if ($FORM_ID > 0) { // сайты if (is_set($arFields, "arSITE")) { $DB->Query("DELETE FROM b_form_2_site WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arSITE"])) { reset($arFields["arSITE"]); foreach ($arFields["arSITE"] as $sid) { $strSql = "\n\t\t\t\t\t\t\t\tINSERT INTO b_form_2_site (FORM_ID, SITE_ID) VALUES (\n\t\t\t\t\t\t\t\t\t{$FORM_ID},\n\t\t\t\t\t\t\t\t\t'" . $DB->ForSql($sid, 2) . "'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t"; $DB->Query($strSql, false, $err_mess . __LINE__); } } } // меню if (is_set($arFields, "arMENU")) { $DB->Query("DELETE FROM b_form_menu WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arMENU"])) { reset($arFields["arMENU"]); while (list($lid, $menu) = each($arFields["arMENU"])) { $arFields_i = array("FORM_ID" => $FORM_ID, "LID" => "'" . $DB->ForSql($lid, 2) . "'", "MENU" => "'" . $DB->ForSql($menu, 50) . "'"); $DB->Insert("b_form_menu", $arFields_i, $err_mess . __LINE__); } } } // почтовые шаблоны if (is_set($arFields, "arMAIL_TEMPLATE")) { $DB->Query("DELETE FROM b_form_2_mail_template WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arMAIL_TEMPLATE"])) { reset($arFields["arMAIL_TEMPLATE"]); foreach ($arFields["arMAIL_TEMPLATE"] as $mid) { $strSql = "\n\t\t\t\t\t\t\t\tINSERT INTO b_form_2_mail_template (FORM_ID, MAIL_TEMPLATE_ID) VALUES (\n\t\t\t\t\t\t\t\t\t{$FORM_ID},\n\t\t\t\t\t\t\t\t\t'" . intval($mid) . "'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t"; $DB->Query($strSql, false, $err_mess . __LINE__); } } } // группы if (is_set($arFields, "arGROUP")) { $DB->Query("DELETE FROM b_form_2_group WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arGROUP"])) { reset($arFields["arGROUP"]); while (list($group_id, $perm) = each($arFields["arGROUP"])) { if (intval($perm) > 0) { $arFields_i = array("FORM_ID" => $FORM_ID, "GROUP_ID" => "'" . intval($group_id) . "'", "PERMISSION" => "'" . intval($perm) . "'"); $DB->Insert("b_form_2_group", $arFields_i, $err_mess . __LINE__); } } } } } return $FORM_ID; } return false; }
if ($FORM_RIGHT <= "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } CModule::IncludeModule("form"); ClearVars(); $strError = ''; IncludeModuleLangFile(__FILE__); $additional = $_REQUEST['additional']; InitBVar($additional); $err_mess = "File: " . __FILE__ . "<br>Line: "; if ($additional != "Y") { define("HELP_FILE", "form_question_list.php"); } else { define("HELP_FILE", "form_field_list.php"); } $old_module_version = CForm::IsOldVersion(); $aTabs = array(); $aTabs[] = array("DIV" => "edit1", "TAB" => GetMessage("FORM_PROP"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_PROP_TITLE")); if ($additional != "Y") { $aTabs[] = array("DIV" => "edit2", "TAB" => GetMessage("FORM_QUESTION"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_TITLE")); $aTabs[] = array("DIV" => "edit3", "TAB" => GetMessage("FORM_ANSWER"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_ANSWER_LIST")); $aTabs[] = array("DIV" => "edit7", "TAB" => GetMessage("FORM_VAL"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_VAL_TITLE")); } $aTabs[] = array("DIV" => "edit4", "TAB" => GetMessage("FORM_RESULTS"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_RESULTS_SHOW")); $aTabs[] = array("DIV" => "edit5", "TAB" => GetMessage("FORM_FILTER"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_FILTER_TYPE")); $aTabs[] = array("DIV" => "edit6", "TAB" => GetMessage("FORM_COMMENT_TOP"), "ICON" => "form_edit", "TITLE" => GetMessage("FORM_COMMENTS")); $tabControl = new CAdminTabControl("tabControl", $aTabs); $message = null; /*************************************************************************** GET | POST processing ***************************************************************************/
function Set($arFields, $FORM_ID = false, $CHECK_RIGHTS = "Y") { $err_mess = CAllForm::err_mess() . "<br>Function: Set<br>Line: "; global $DB, $USER, $strError, $APPLICATION; if (CForm::CheckFields($arFields, $FORM_ID, $CHECK_RIGHTS)) { $arFields_i = array(); if (strlen(trim($arFields["SID"])) > 0) { $arFields["VARNAME"] = $arFields["SID"]; } elseif (strlen($arFields["VARNAME"]) > 0) { $arFields["SID"] = $arFields["VARNAME"]; } $arFields_i["TIMESTAMP_X"] = $DB->GetNowFunction(); if (is_set($arFields, "NAME")) { $arFields_i["NAME"] = "'" . $DB->ForSql($arFields["NAME"], 255) . "'"; } if (is_set($arFields, "SID")) { $arFields_i["SID"] = "'" . $DB->ForSql($arFields["SID"], 255) . "'"; } if (is_set($arFields, "DESCRIPTION")) { $arFields_i["DESCRIPTION"] = "'" . $DB->ForSql($arFields["DESCRIPTION"], 2000) . "'"; } if (is_set($arFields, "C_SORT")) { $arFields_i["C_SORT"] = "'" . intval($arFields["C_SORT"]) . "'"; } if (is_array($arrSITE)) { reset($arrSITE); list($k, $arFields["FIRST_SITE_ID"]) = each($arrSITE); } if (is_set($arFields, "BUTTON")) { $arFields_i["BUTTON"] = "'" . $DB->ForSql($arFields["BUTTON"], 255) . "'"; } if (is_set($arFields, "DESCRIPTION_TYPE")) { $arFields_i["DESCRIPTION_TYPE"] = $arFields["DESCRIPTION_TYPE"] == "html" ? "'html'" : "'text'"; } if (is_set($arFields, "SHOW_TEMPLATE")) { $arFields_i["SHOW_TEMPLATE"] = "'" . $DB->ForSql($arFields["SHOW_TEMPLATE"], 255) . "'"; } if (is_set($arFields, "SHOW_RESULT_TEMPLATE")) { $arFields_i["SHOW_RESULT_TEMPLATE"] = "'" . $DB->ForSql($arFields["SHOW_RESULT_TEMPLATE"], 255) . "'"; } if (is_set($arFields, "PRINT_RESULT_TEMPLATE")) { $arFields_i["PRINT_RESULT_TEMPLATE"] = "'" . $DB->ForSql($arFields["PRINT_RESULT_TEMPLATE"], 255) . "'"; } if (is_set($arFields, "EDIT_RESULT_TEMPLATE")) { $arFields_i["EDIT_RESULT_TEMPLATE"] = "'" . $DB->ForSql($arFields["EDIT_RESULT_TEMPLATE"], 255) . "'"; } if (is_set($arFields, "FILTER_RESULT_TEMPLATE")) { $arFields_i["FILTER_RESULT_TEMPLATE"] = "'" . $DB->ForSql($arFields["FILTER_RESULT_TEMPLATE"], 255) . "'"; } if (is_set($arFields, "TABLE_RESULT_TEMPLATE")) { $arFields_i["TABLE_RESULT_TEMPLATE"] = "'" . $DB->ForSql($arFields["TABLE_RESULT_TEMPLATE"], 255) . "'"; } if (is_set($arFields, "STAT_EVENT1")) { $arFields_i["STAT_EVENT1"] = "'" . $DB->ForSql($arFields["STAT_EVENT1"], 255) . "'"; } if (is_set($arFields, "STAT_EVENT2")) { $arFields_i["STAT_EVENT2"] = "'" . $DB->ForSql($arFields["STAT_EVENT2"], 255) . "'"; } if (is_set($arFields, "STAT_EVENT3")) { $arFields_i["STAT_EVENT3"] = "'" . $DB->ForSql($arFields["STAT_EVENT3"], 255) . "'"; } if (CForm::IsOldVersion() != "Y") { unset($arFields_i["SHOW_TEMPLATE"]); unset($arFields_i["SHOW_RESULT_TEMPLATE"]); unset($arFields_i["PRINT_RESULT_TEMPLATE"]); unset($arFields_i["EDIT_RESULT_TEMPLATE"]); } $z = $DB->Query("SELECT IMAGE_ID, SID, SID as VARNAME FROM b_form WHERE ID='{$FORM_ID}'", false, $err_mess . __LINE__); $zr = $z->Fetch(); $oldSID = $zr["SID"]; if (strlen($arFields["arIMAGE"]["name"]) > 0 || strlen($arFields["arIMAGE"]["del"]) > 0) { $fid = CFile::SaveFile($arFields["arIMAGE"], "form"); if (intval($fid) > 0) { $arFields_i["IMAGE_ID"] = intval($fid); } else { $arFields_i["IMAGE_ID"] = "null"; } } $arFields_i["MAIL_EVENT_TYPE"] = "'" . $DB->ForSql("FORM_FILLING_" . $arFields["SID"], 50) . "'"; if ($FORM_ID > 0) { $DB->Update("b_form", $arFields_i, "WHERE ID='" . $FORM_ID . "'", $err_mess . __LINE__); CForm::SetMailTemplate($FORM_ID, "N", $oldSID); } else { $FORM_ID = $DB->Insert("b_form", $arFields_i, $err_mess . __LINE__); CForm::SetMailTemplate($FORM_ID, "N"); } $FORM_ID = intval($FORM_ID); if ($FORM_ID > 0) { // сайты if (is_set($arFields, "arSITE")) { $DB->Query("DELETE FROM b_form_2_site WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arSITE"])) { reset($arFields["arSITE"]); foreach ($arFields["arSITE"] as $sid) { $strSql = "\r\n\t\t\t\t\t\t\t\tINSERT INTO b_form_2_site (FORM_ID, SITE_ID) VALUES (\r\n\t\t\t\t\t\t\t\t\t{$FORM_ID},\r\n\t\t\t\t\t\t\t\t\t'" . $DB->ForSql($sid, 2) . "'\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t"; $DB->Query($strSql, false, $err_mess . __LINE__); } } } // меню if (is_set($arFields, "arMENU")) { $DB->Query("DELETE FROM b_form_menu WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arMENU"])) { reset($arFields["arMENU"]); while (list($lid, $menu) = each($arFields["arMENU"])) { $arFields_i = array("FORM_ID" => $FORM_ID, "LID" => "'" . $DB->ForSql($lid, 2) . "'", "MENU" => "'" . $DB->ForSql($menu, 50) . "'"); $DB->Insert("b_form_menu", $arFields_i, $err_mess . __LINE__); } } } // почтовые шаблоны if (is_set($arFields, "arMAIL_TEMPLATE")) { $DB->Query("DELETE FROM b_form_2_mail_template WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arMAIL_TEMPLATE"])) { reset($arFields["arMAIL_TEMPLATE"]); foreach ($arFields["arMAIL_TEMPLATE"] as $mid) { $strSql = "\r\n\t\t\t\t\t\t\t\tINSERT INTO b_form_2_mail_template (FORM_ID, MAIL_TEMPLATE_ID) VALUES (\r\n\t\t\t\t\t\t\t\t\t{$FORM_ID},\r\n\t\t\t\t\t\t\t\t\t'" . intval($mid) . "'\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t"; $DB->Query($strSql, false, $err_mess . __LINE__); } } } // группы if (is_set($arFields, "arGROUP")) { $DB->Query("DELETE FROM b_form_2_group WHERE FORM_ID='" . $FORM_ID . "'", false, $err_mess . __LINE__); if (is_array($arFields["arGROUP"])) { reset($arFields["arGROUP"]); while (list($group_id, $perm) = each($arFields["arGROUP"])) { if (intval($perm) > 0) { $arFields_i = array("FORM_ID" => $FORM_ID, "GROUP_ID" => "'" . intval($group_id) . "'", "PERMISSION" => "'" . intval($perm) . "'"); $DB->Insert("b_form_2_group", $arFields_i, $err_mess . __LINE__); } } } } } return $FORM_ID; } return false; }