/** * <p>Вставка полей ответа на вопрос в шаблон. Параметры поля ввода задаются в настройках вопроса.</p> * * * @param string $FIELD_SID Строковой идентификатор поля вопроса. Обязательный параметр. * * @param $string CSS-класс для подписи к полю ввода. Необязательный параметр. * * @param mixed $CSSClass = ""] * * @return string <p>Возвращается HTML-код для вставки полей формы</p> <a * name="examples"></a><h4>Использование</h4> <pre class="syntax"> <?=$FORM->ShowInput('MYFIELD_5')?> * </pre> * * <h4>See Also</h4> * <menu> <li><a href="http://dev.1c-bitrix.ru/api_help/form/classes/cformoutput/index.php">Класс CFormOutput</a></li> * <li><a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformoutput/showinputcaption.php">CFormOutput::ShowInputCaption</a></li> * <li><a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformoutput/showinputcaptionimage.php">CFormOutput::ShowInputCaptionImage</a></li> * </menu></b<br><br> * * * @static * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformoutput/showinput.php * @author Bitrix */ public function ShowInput($FIELD_SID, $caption_css_class = '') { $arrVALUES = $this->arrVALUES; if (is_array($this->arAnswers[$FIELD_SID])) { $res = ""; reset($this->arAnswers[$FIELD_SID]); if (is_array($this->arDropDown[$FIELD_SID])) { reset($this->arDropDown[$FIELD_SID]); } if (is_array($this->arMutiselect[$FIELD_SID])) { reset($this->arMutiselect[$FIELD_SID]); } while (list($key, $arAnswer) = each($this->arAnswers[$FIELD_SID])) { if ($arAnswer["FIELD_TYPE"] == "dropdown" && $show_dropdown == "Y") { continue; } if ($arAnswer["FIELD_TYPE"] == "multiselect" && $show_multiselect == "Y") { continue; } if ($key > 0) { $res .= "<br />"; } switch ($arAnswer["FIELD_TYPE"]) { case "radio": $ans_id = "form_checkbox_" . $FIELD_SID . "_" . $arAnswer['ID']; $arAnswer['FIELD_PARAM'] .= ' id="' . $ans_id . '"'; $value = CForm::GetRadioValue($FIELD_SID, $arAnswer, $arrVALUES); $input = CForm::GetRadioField($FIELD_SID, $arAnswer["ID"], $value, $arAnswer["FIELD_PARAM"]); if (strlen($ans_id) > 0) { $res .= $input; $res .= "<label for=\"" . $ans_id . "\">"; $res .= "<span class=\"" . $caption_css_class . "\"> " . $arAnswer["MESSAGE"] . "</span></label>"; } else { $res .= "<label>"; $res .= $input; $res .= "<span class=\"" . $caption_css_class . "\"> " . $arAnswer["MESSAGE"] . "</span></label>"; } break; case "checkbox": $ans_id = "form_checkbox_" . $FIELD_SID . "_" . $arAnswer['ID']; $arAnswer['FIELD_PARAM'] .= ' id="' . $ans_id . '"'; $value = CForm::GetCheckBoxValue($FIELD_SID, $arAnswer, $arrVALUES); $input = CForm::GetCheckBoxField($FIELD_SID, $arAnswer["ID"], $value, $arAnswer["FIELD_PARAM"]); if (strlen($ans_id) > 0) { $res .= $input; $res .= "<label for=\"" . $ans_id . "\">"; $res .= "<span class=\"" . $caption_css_class . "\"> " . $arAnswer["MESSAGE"] . "</span></label>"; } else { $res .= "<label>"; $res .= $input; $res .= "<span class=\"" . $caption_css_class . "\"> " . $arAnswer["MESSAGE"] . "</span></label>"; } break; case "dropdown": if ($show_dropdown != "Y") { $value = CForm::GetDropDownValue($FIELD_SID, $this->arDropDown, $arrVALUES); $res .= CForm::GetDropDownField($FIELD_SID, $this->arDropDown[$FIELD_SID], $value, $arAnswer["FIELD_PARAM"]); $show_dropdown = "Y"; } break; case "multiselect": if ($show_multiselect != "Y") { $value = CForm::GetMultiSelectValue($FIELD_SID, $this->arMultiSelect, $arrVALUES); $res .= CForm::GetMultiSelectField($FIELD_SID, $this->arMultiSelect[$FIELD_SID], $value, $arAnswer["FIELD_HEIGHT"], $arAnswer["FIELD_PARAM"]); $show_multiselect = "Y"; } break; case "text": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } $value = CForm::GetTextValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetTextField($arAnswer["ID"], $value, $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_PARAM"]); break; case "hidden": /* if (strlen(trim($arAnswer["MESSAGE"]))>0) { $res .= "<span class=\"".$caption_css_class."\">".$arAnswer["MESSAGE"]."</span><br />"; } */ $value = CForm::GetHiddenValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetHiddenField($arAnswer["ID"], $value, $arAnswer["FIELD_PARAM"]); break; case "password": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } $value = CForm::GetPasswordValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetPasswordField($arAnswer["ID"], $value, $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_PARAM"]); break; case "email": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } $value = CForm::GetEmailValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetEmailField($arAnswer["ID"], $value, $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_PARAM"]); break; case "url": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } $value = CForm::GetUrlValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetUrlField($arAnswer["ID"], $value, $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_PARAM"]); break; case "textarea": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } $value = CForm::GetTextAreaValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetTextAreaField($arAnswer["ID"], $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_HEIGHT"], $arAnswer["FIELD_PARAM"], $value); break; case "date": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . " (" . CSite::GetDateFormat("SHORT") . ")</span><br />"; } $value = CForm::GetDateValue($arAnswer["ID"], $arAnswer, $arrVALUES); $res .= CForm::GetDateField($arAnswer["ID"], $this->arForm["SID"], $value, $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_PARAM"]); break; case "image": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } if ($this->RESULT_ID) { if ($arFile = CFormResult::GetFileByAnswerID($this->RESULT_ID, $arAnswer["ID"])) { if (intval($arFile["USER_FILE_ID"]) > 0) { if ($arFile["USER_FILE_IS_IMAGE"] == "Y") { $res .= CFile::ShowImage($arFile["USER_FILE_ID"], 0, 0, "border=0", "", true); $res .= "<br />"; } //endif; } //endif; } // endif } // endif $res .= CForm::GetFileField($arAnswer["ID"], $arAnswer["FIELD_WIDTH"], "IMAGE", 0, "", $arAnswer["FIELD_PARAM"]); break; case "file": if (strlen(trim($arAnswer["MESSAGE"])) > 0) { $res .= "<span class=\"" . $caption_css_class . "\">" . $arAnswer["MESSAGE"] . "</span><br />"; } if ($this->RESULT_ID) { if ($arFile = CFormResult::GetFileByAnswerID($this->RESULT_ID, $arAnswer["ID"])) { if (intval($arFile["USER_FILE_ID"]) > 0) { $res .= "<a title=\"" . GetMessage("FORM_VIEW_FILE") . "\" target=\"_blank\" class=\"tablebodylink\" href=\"/bitrix/tools/form_show_file.php?rid=" . $this->RESULT_ID . "&hash=" . $arFile["USER_FILE_HASH"] . "&lang=" . LANGUAGE_ID . "\">" . htmlspecialcharsbx($arFile["USER_FILE_NAME"]) . "</a> ("; $res .= CFile::FormatSize($arFile["USER_FILE_SIZE"]); $res .= ") [ <a title=\"" . str_replace("#FILE_NAME#", $arFile["USER_FILE_NAME"], GetMessage("FORM_DOWNLOAD_FILE")) . "\" class=\"tablebodylink\" href=\"/bitrix/tools/form_show_file.php?rid=" . $this->RESULT_ID . "&hash=" . $arFile["USER_FILE_HASH"] . "&lang=" . LANGUAGE_ID . "&action=download\">" . GetMessage("FORM_DOWNLOAD") . "</a> ]"; $res .= "<br /><br />"; } //endif; } //endif; } $res .= CForm::GetFileField($arAnswer["ID"], $arAnswer["FIELD_WIDTH"], "FILE", 0, "", $arAnswer["FIELD_PARAM"]); break; } //endswitch; } //endwhile; return $res; } elseif (is_array($this->arQuestions[$FIELD_SID]) && $this->arQuestions[$FIELD_SID]["ADDITIONAL"] == "Y") { $res = ""; switch ($this->arQuestions[$FIELD_SID]["FIELD_TYPE"]) { case "text": $value = CForm::GetTextAreaValue("ADDITIONAL_" . $this->arQuestions[$FIELD_SID]["ID"], array(), $this->arrVALUES); $res .= CForm::GetTextAreaField("ADDITIONAL_" . $this->arQuestions[$FIELD_SID]["ID"], "60", "5", "", $value); break; case "integer": $value = CForm::GetTextValue("ADDITIONAL_" . $this->arQuestions[$FIELD_SID]["ID"], array(), $this->arrVALUES); $res .= CForm::GetTextField("ADDITIONAL_" . $this->arQuestions[$FIELD_SID]["ID"], $value); break; case "date": $value = CForm::GetDateValue("ADDITIONAL_" . $this->arQuestions[$FIELD_SID]["ID"], array(), $this->arrVALUES); $res .= CForm::GetDateField("ADDITIONAL_" . $this->arQuestions[$FIELD_SID]["ID"], $arForm["SID"], $value); break; } //endswitch; return $res; } else { return ""; } }
$arAnswer["FIELD_PARAM"] .= " id=\"" . $arAnswer['ID'] . "\""; $value = CForm::GetRadioValue($FIELD_SID, $arAnswer, $arrVALUES); $input = CForm::GetRadioField($FIELD_SID, $arAnswer["ID"], $value, $arAnswer["FIELD_PARAM"]); echo $input; echo "<label for=\"" . $arAnswer['ID'] . "\">" . $arAnswer["MESSAGE"] . "</label><br />"; break; case "checkbox": $arAnswer["FIELD_PARAM"] .= " id=\"" . $arAnswer['ID'] . "\""; $value = CForm::GetCheckBoxValue($FIELD_SID, $arAnswer, $arrVALUES); $input = CForm::GetCheckBoxField($FIELD_SID, $arAnswer["ID"], $value, $arAnswer["FIELD_PARAM"]); echo $input . "<label for=\"" . $arAnswer['ID'] . "\">" . $arAnswer["MESSAGE"] . "</label><br />"; break; case "dropdown": if ($show_dropdown != "Y") { $value = CForm::GetDropDownValue($FIELD_SID, $arDropDown, $arrVALUES); echo CForm::GetDropDownField($FIELD_SID, $arDropDown[$FIELD_SID], $value, $arAnswer["FIELD_PARAM"]) . '<br />'; $show_dropdown = "Y"; } break; case "multiselect": if ($show_multiselect != "Y") { $value = CForm::GetMultiSelectValue($FIELD_SID, $arMultiSelect, $arrVALUES); echo CForm::GetMultiSelectField($FIELD_SID, $arMultiSelect[$FIELD_SID], $value, $arAnswer["FIELD_HEIGHT"], $arAnswer["FIELD_PARAM"]) . '<br />'; $show_multiselect = "Y"; } break; case "text": echo $arAnswer["MESSAGE"] ? $arAnswer['MESSAGE'] . '<br />' : ''; $value = CForm::GetTextValue($arAnswer["ID"], $arAnswer, $arrVALUES); echo CForm::GetTextField($arAnswer["ID"], $value, $arAnswer["FIELD_WIDTH"], $arAnswer["FIELD_PARAM"]) . '<br />'; break;
if ($show_dropdown!="Y") { $value = CForm::GetDropDownValue($FIELD_SID, $arResult["arDropDown"], $arResult["arrVALUES"]); if (strlen($arResult["FORM_ERROR"]) > 0) { $c = count($arDropDown[$FIELD_SID]["param"])-1; for ($i=0;$i<=$c;$i++) { $arDropDown[$FIELD_SID]["param"][$i] = preg_replace("/checked|selected/i", "", $arDropDown[$FIELD_SID]["param"][$i]); } } $res .= CForm::GetDropDownField( $FIELD_SID, $arResult["arDropDown"][$FIELD_SID], $value, $arAnswer["FIELD_PARAM"]); $show_dropdown = "Y"; } $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"][] = $res; break; case "multiselect": if ($show_multiselect!="Y") { $value = CForm::GetMultiSelectValue($FIELD_SID, $arResult["arMultiSelect"], $arResult["arrVALUES"]); if (strlen($arResult["FORM_ERROR"]) > 0) {
} if ($arResult["arForm"]["SID"] == "SERVICE_ORDER") { $current_value = intval($_REQUEST['form_type']); $question_sid = 'REQUEST_TYPE'; if ($GLOBALS['USER']->IsAdmin()) { foreach ($arResult['arDropDown'][$question_sid]['reference'] as $key => $MESSAGE) { $arResult['arDropDown'][$question_sid]['reference'][$key] = '[' . $arResult['arDropDown'][$question_sid]['reference_id'][$key] . '] ' . $MESSAGE; } } $arResult['QUESTIONS'][$question_sid]['HTML_CODE'] = CForm::GetDropDownField($question_sid, $arResult["arDropDown"][$question_sid], $current_value); } if ($arResult["arForm"]["SID"] == "TROUBLESHOOTING") { $current_value = intval($_REQUEST['form_type']); $question_sid = 'REQUEST_TYPE'; if ($GLOBALS['USER']->IsAdmin()) { foreach ($arResult['arDropDown'][$question_sid]['reference'] as $key => $MESSAGE) { $arResult['arDropDown'][$question_sid]['reference'][$key] = '[' . $arResult['arDropDown'][$question_sid]['reference_id'][$key] . '] ' . $MESSAGE; } } $arResult['QUESTIONS'][$question_sid]['HTML_CODE'] = CForm::GetDropDownField($question_sid, $arResult["arDropDown"][$question_sid], $current_value); } if ($arResult["arForm"]["SID"] == "DIRECTION") { $current_value = intval($_REQUEST['form_type']); $question_sid = 'REQUEST_TYPE'; if ($GLOBALS['USER']->IsAdmin()) { foreach ($arResult['arDropDown'][$question_sid]['reference'] as $key => $MESSAGE) { $arResult['arDropDown'][$question_sid]['reference'][$key] = '[' . $arResult['arDropDown'][$question_sid]['reference_id'][$key] . '] ' . $MESSAGE; } } $arResult['QUESTIONS'][$question_sid]['HTML_CODE'] = CForm::GetDropDownField($question_sid, $arResult["arDropDown"][$question_sid], $current_value); }