Set
Описание и параметры
mixed CForm::Set( array fields, mixed form_id = false, string check_rights = "Y" )
Добавляет новую веб-форму или обновляет заданную. Возвращает ID обновленной или добавленной веб-формы в случае положительного результата, в противном случае - "false". Метод нестатический.
Примечание
При обновлении существующей веб-формы (или при добавлении новой веб-формы), автоматически обновляется тип почтового события (либо создаётся новый тип).
Параметры метода
| Параметр | Описание |
|---|---|
| fields | Массив значений полей; в качестве ключей массива допустимы:
|
| form_id | ID обновляемой веб-формы. Параметр необязательный. По умолчанию - "false" (добавление новой веб-формы). |
| check_rights | Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить). |
Смотрите также
Примеры использования
<?
/*************************************************
Добавление веб-формы
*************************************************/
// создадим массив описывающий изображение
// находящееся в файле на сервере
$arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/web_form.gif");
$arIMAGE["MODULE_ID"] = "form";
$arFields = array(
"NAME" => "Анкета посетителя",
"SID" => "VISITOR_FORM",
"C_SORT" => 300,
"BUTTON" => "Сохранить",
"DESCRIPTION" => "Заполните пож-та анкету",
"DESCRIPTION_TYPE" => "text",
"STAT_EVENT1" => "form",
"STAT_EVENT2" => "visitor_form",
"arSITE" => array("r1"),
"arMENU" => array("ru" => "Анкета посетителя", "en" => "Visitor Form"),
"arGROUP" => array("2" => "15", "3" => "20"),
"arIMAGE" => $arIMAGE
);
// добавим новую веб-форму
$NEW_ID = CForm::Set($arFields);
if ($NEW_ID>0) echo "Добавлена веб-форма с ID=".$NEW_ID;
else // ошибка
{
// выводим текст ошибки
global $strError;
echo $strError;
}
?>
<?
// пример обновления веб-формы параметры которой были визуально
// отредактированы в административной части
$w = CGroup::GetList($v1, $v2, Array("ADMIN"=>"N"), $v3);
$arGroups = array();
while ($wr=$w->Fetch()) $arGroups[] = array("ID"=>$wr["ID"], "NAME"=>$wr["NAME"]);
$z = CLanguage::GetList($v1, $v2, array("ACTIVE" => "Y"));
$arFormMenuLang = array();
while ($zr=$z->Fetch()) $arFormMenuLang[] = array("LID"=>$zr["LID"], "NAME"=>$zr["NAME"]);
$rs = CSite::GetList(($by="sort"), ($order="asc"));
while ($ar = $rs->Fetch())
{
if ($ar["DEF"]=="Y") $def_site_id = $ar["ID"];
$arrSites[$ar["ID"]] = $ar;
}
if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST")
{
$arIMAGE_ID = $HTTP_POST_FILES["IMAGE_ID"];
$arIMAGE_ID["MODULE_ID"] = "form";
$arIMAGE_ID["del"] = ${"IMAGE_ID_del"};
$arFields = array(
"NAME" => $NAME,
"SID" => $SID,
"C_SORT" => $C_SORT,
"BUTTON" => $BUTTON,
"DESCRIPTION" => $DESCRIPTION,
"DESCRIPTION_TYPE" => $DESCRIPTION_TYPE,
"FILTER_RESULT_TEMPLATE" => $FILTER_RESULT_TEMPLATE,
"TABLE_RESULT_TEMPLATE" => $TABLE_RESULT_TEMPLATE,
"STAT_EVENT1" => $STAT_EVENT1,
"STAT_EVENT2" => $STAT_EVENT2,
"STAT_EVENT3" => $STAT_EVENT3,
"arIMAGE" => $arIMAGE_ID,
"arSITE" => $arSITE,
"arMAIL_TEMPLATE" => $arMAIL_TEMPLATE
);
// меню
$arMENU = array();
reset($arFormMenuLang);
while (list(,$arrL)=each($arFormMenuLang))
{
$var = "MENU_".$arrL["LID"];
global $$var;
$arMENU[$arrL["LID"]] = $$var;
}
$arFields["arMENU"] = $arMENU;
// права доступа
$arGROUP = array();
reset($arGroups);
while (list(,$arrG)=each($arGroups))
{
$var = "PERMISSION_".$arrG["ID"];
global $$var;
$arGROUP[$arrG["ID"]] = $$var;
}
$arFields["arGROUP"] = $arGROUP;
if ($ID = CForm::Set($arFields, $ID))
{
if (strlen($strError)<=0)
{
if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
else LocalRedirect("form_edit.php?ID=".$ID."〈=".LANGUAGE_ID);
}
}
$DB->PrepareFields("b_form");
}
?>
© «Битрикс», 2001-2025, «1С-Битрикс», 2025