public static function PrepareFormData($arrFS) { $out = ""; $i = 0; if (is_array($arrFS)) { foreach ($arrFS as $key => $arField) { if ($arField['isNew'] == "Y") { $arField["CAPTION"] = $arField["isHTMLCaption"] == "Y" ? $arField["CAPTION_UNFORM"] : "<span class=\"tablebodytext\">" . $arField["CAPTION_UNFORM"] . "</span>" . ($arField["isRequired"] ? CFormOutput::ShowRequired() : ""); } ?> arrInputObjects[<?php echo $i++; ?> ] = new CFormAnswer( '<?php echo $arField["FIELD_SID"]; ?> ', '<?php echo CUtil::JSEscape($arField["CAPTION"]); ?> ', '<?php echo $arField["isHTMLCaption"]; ?> ', '<?php echo CUtil::JSEscape("'", "\\'", $arField["CAPTION_UNFORM"]); ?> ', '<?php echo $arField["isRequired"]; ?> ', '<?php echo $arField["type"]; ?> ', [<?php foreach ($arField["structure"] as $key => $arQuestion) { $arr = array(); $cnt = 0; foreach ($arQuestion as $q_key => $value) { $arr[] = $q_key . ":'" . ($q_key == "ANS_NEW" ? $value == "Y" ? 'true' : 'false' : str_replace("'", "\\'", $value)) . "'"; if ($q_key == "ANS_NEW" && $value) { $cnt++; } } if ($key != 0) { echo ","; } echo "{"; echo implode(",", $arr); echo "}"; } ?> ], <?php echo $arField["isNew"] == "Y" ? 'true' : 'false'; ?> , <?php echo $arField["ID"] ? $arField["ID"] : '_global_newinput_counter++'; ?> , '<?php echo $arField["inResultsTable"]; ?> ', '<?php echo $arField["inExcelTable"]; ?> ' ); <?php if ($cnt > 0) { echo "_global_newanswer_counter += " . $cnt . ";\n"; } } } }
) ? "Y" : "N"; if ($arResult['isFormErrors'] == 'Y') { unset($arResult['FORM_RESULT']); unset($arResult['FORM_NOTE']); } // ************************************************************* // // output // // ************************************************************* // if ($arParams["IGNORE_CUSTOM_TEMPLATE"] == "N" && $arResult["arForm"]["USE_DEFAULT_TEMPLATE"] == "N" && strlen($arResult["arForm"]["FORM_TEMPLATE"]) > 0) { $FORM = new CFormOutput(); // initialize template $FORM->InitializeTemplate($arParams, $arResult); // get template if ($strReturn = $FORM->IncludeFormCustomTemplate()) { // add icons $back_url = $_SERVER['REQUEST_URI']; $editor = "/freetrix/admin/fileman_file_edit.php?full_src=Y&site=".SITE_ID."&"; $href = "javascript:window.location='".$editor."path=".urlencode($path)."&lang=".LANGUAGE_ID."&back_url=".urlencode($back_url)."'"; if ($arParams['USE_EXTENDED_ERRORS'] == 'Y') $APPLICATION->SetAdditionalCSS($this->GetPath()."/error.css");
$aMenu[] = array("TEXT" => GetMessage("FORM_CP"), "TITLE" => GetMessage("FORM_COPY"), "ICON" => "btn_copy", "LINK" => "form_edit.php?copy_id=" . $ID . "&ID=" . $ID . "&lang=" . LANGUAGE_ID . "&" . bitrix_sessid_get()); } if ($F_RIGHT >= 30) { $aMenu[] = array("TEXT" => GetMessage("FORM_DELETE_RESULTS"), "TITLE" => GetMessage("FORM_DELETE_RESULTS_TITLE"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('" . GetMessage("FORM_CONFIRM_DELETE_RESULTS") . "'))window.location='form_edit.php?ID=" . $ID . "&reset_id=" . $ID . "&" . bitrix_sessid_get() . "&lang=" . LANGUAGE_ID . "';"); } if (CForm::IsAdmin()) { $aMenu[] = array("ICON" => "btn_delete", "TEXT" => GetMessage("FORM_DELETE_TEXT"), "TITLE" => GetMessage("FORM_DELETE_TITLE"), "LINK" => "javascript:if(confirm('" . GetMessage("FORM_CONFIRM_DELETE") . "'))window.location='form_list.php?action=delete&ID=" . $ID . "&" . bitrix_sessid_get() . "&lang=" . LANGUAGE_ID . "';"); } } if (count($aMenu) > 0) { $context = new CAdminContextMenu($aMenu); $context->Show(); } } // (!defined('BX_PUBLIC_MODE') || BX_PUBLIC_MODE != 1) $FORM = new CFormOutput(); //initialize&check form $FORM->Init(array("WEB_FORM_ID" => $ID), true); if ($strError) { $aMsg = array(); $arrErr = explode("<br>", $strError); reset($arrErr); while (list(, $err) = each($arrErr)) { $aMsg[]['text'] = $err; } $e = new CAdminException($aMsg); $GLOBALS["APPLICATION"]->ThrowException($e); $message = new CAdminMessage(GetMessage("FORM_ERROR_SAVE"), $e); echo $message->Show(); } echo ShowNote($strNote);
"EDIT_URL" => "result_edit.php", "CHAIN_ITEM_TEXT" => "Forms List", "CHAIN_ITEM_LINK" => "result_list.php?WEB_FORM_ID=".$_REQUEST["WEB_FORM_ID"] )); Parameters: $WEB_FORM_ID - web-form ID $LIST_URL - page URL for redirecting user after "Save" button press (if empty, there is no redirecting) $EDIT_URL - page URL for redirecting user after "Apply" button press (if empty, there is no redirecting) $CHAIN_ITEM_TEXT - additional item name in the navigation chain (if empty, no item is added) $CHAIN_ITEM_LINK - additional item link in the navigation chain ***********************************************************************/ global $USER, $APPLICATION; $APPLICATION->SetTemplateCSS("form/form.css"); if (CModule::IncludeModule("form")) { IncludeTemplateLangFile(__FILE__); // create form output class $FORM = new CFormOutput(); //initialize&check form if ($FORM->Init($arParams)) { // output form $FORM->Out(); } else { echo ShowError(GetMessage($FORM->ShowErrorMsg())); } } else { echo ShowError(GetMessage("FORM_MODULE_NOT_INSTALLED")); } //endif (CModule::IncludeModule("form"));
if ($arParams["IGNORE_CUSTOM_TEMPLATE"] == "N" && $arResult["arForm"]["USE_DEFAULT_TEMPLATE"] == "N" && strlen($arResult["arForm"]["FORM_TEMPLATE"]) > 0) { // use visual template if (!$bCache || $bCache && !$bVarsFromCache) { if ($bCache) { $obFormCache->StartDataCache(); $GLOBALS['CACHE_MANAGER']->StartTagCache($CACHE_PATH); $GLOBALS['CACHE_MANAGER']->RegisterTag('forms'); $GLOBALS['CACHE_MANAGER']->RegisterTag('form_'.$arParams['WEB_FORM_ID']); } // initialize template $FORM = new CFormOutput(); $FORM->InitializeTemplate($arParams, $arResult); // cache image files paths $FORM->ShowFormImage(); $FORM->getFormImagePath(); if ($bCache) { $GLOBALS['CACHE_MANAGER']->EndTagCache(); $obFormCache->EndDataCache( array( "arResult" => $arResult, "FORM" => $FORM, )
} } // create CPHPCache class instance $cache_form = new CPHPCache(); // create cache ID and path $CACHE_ID = SITE_ID . "|" . $componentName . "|" . md5(serialize($arCacheParams)) . "|" . $USER->GetGroups(); $CACHE_PATH = "/" . SITE_ID . CComponentEngine::MakeComponentPath($componentName); } // initialize cache if ($bCache && $cache_form->InitCache($arParams["CACHE_TIME"], $CACHE_ID, $CACHE_PATH)) { // if cache already exists - get vars $vars = $cache_form->GetVars(); $FORM = $vars["FORM"]; } else { // process form $FORM = new CFormOutput(); //$res = $FORM->Init($arParams); /*************************************************************/ $FORM->bSimple = COption::GetOptionString("form", "SIMPLE", "Y") == "Y" ? true : false; $FORM->comp2 = true; $FORM->SHOW_INCLUDE_AREAS = $APPLICATION->GetShowIncludeAreas(); $FORM->arParams = $arParams; if (intval($FORM->WEB_FORM_ID) <= 0) { $FORM->WEB_FORM_ID = intval($arParams["WEB_FORM_ID"]); } // if there's no WEB_FORM_ID, try to get it from $_REQUEST; if (intval($FORM->WEB_FORM_ID) <= 0) { $FORM->WEB_FORM_ID = intval($_REQUEST["WEB_FORM_ID"]); } // check WEB_FORM_ID and get web form data $FORM->WEB_FORM_ID = CForm::GetDataByID($FORM->WEB_FORM_ID, $FORM->arForm, $FORM->arQuestions, $FORM->arAnswers, $FORM->arDropDown, $FORM->arMultiSelect, "N", $FORM->arParams["SHOW_ADDITIONAL"] == "Y" || $FORM->arParams["EDIT_ADDITIONAL"] == "Y" ? "Y" : "N");