Пример #1
0
	public static function PrepareFilter($WEB_FORM_ID, $arFilter)
	{
		$err_mess = (CAllFormResult::err_mess())."<br>Function: PrepareFilter<br>Line: ";
		global $DB, $strError;

		$arrFilterReturn = $arFilter;

		if (array_key_exists("FIELDS", $arFilter))
		{
			$arFilterFields = $arFilter["FIELDS"];

			$rsForm = CForm::GetByID($WEB_FORM_ID);
			$arForm = $rsForm->Fetch();

			$WEB_FORM_NAME = $arForm["SID"];

			if (is_array($arFilterFields) && count($arFilterFields) > 0)
			{
				foreach ($arFilterFields as $arr)
				{
					if (strlen($arr["SID"]) > 0)
						$arr["CODE"] = $arr["SID"];
					else
						$arr["SID"] = $arr["CODE"];

					$FIELD_SID = $arr["SID"];

					$FILTER_TYPE = (strlen($arr["FILTER_TYPE"]) > 0) ? $arr["FILTER_TYPE"] : "text";

					if (strtoupper($FILTER_TYPE) == "ANSWER_ID") $FILTER_TYPE = "dropdown";

					$PARAMETER_NAME = (strlen($arr["PARAMETER_NAME"]) > 0) ? $arr["PARAMETER_NAME"] : "USER";

					$PART = $arr["PART"];

					$FILTER_KEY = $arForm["SID"]."_".$FIELD_SID."_".$PARAMETER_NAME."_".$FILTER_TYPE;
					if (strlen($PART) > 0) $FILTER_KEY .= "_".intval($PART);

					$arrFilterReturn[$FILTER_KEY] = $arr["VALUE"];

					if ($FILTER_TYPE=="text")
					{
						$EXACT_MATCH = ($arr["EXACT_MATCH"]=="Y") ? "Y" : "N";
						$arrFilterReturn[$FILTER_KEY."_exact_match"] = $EXACT_MATCH;
					}
				}
			}
			unset($arrFilterReturn["FIELDS"]);
		}
		return $arrFilterReturn;
	}
Пример #2
0
 function Show($RESULT_ID, $TEMPLATE = "", $TEMPLATE_TYPE = "show", $SHOW_ADDITIONAL = "N", $SHOW_ANSWER_VALUE = "Y", $SHOW_STATUS = "N")
 {
     global $DB, $MESS, $APPLICATION, $USER, $HTTP_POST_VARS, $HTTP_GET_VARS, $arrRESULT_PERMISSION, $arrFIELDS;
     $err_mess = CAllFormResult::err_mess() . "<br>Function: Show<br>Line: ";
     $z = CFormResult::GetByID($RESULT_ID);
     if ($zr = $z->Fetch()) {
         $arrResult = $zr;
         InitBVar($SHOW_ADDITIONAL);
         $additional = $SHOW_ADDITIONAL == "Y" ? "ALL" : "N";
         $WEB_FORM_ID = $FORM_ID = CForm::GetDataByID($arrResult["FORM_ID"], $arForm, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect, $additional);
         CForm::GetResultAnswerArray($WEB_FORM_ID, $arrResultColumns, $arrResultAnswers, $arrResultAnswersVarname, array("RESULT_ID" => $RESULT_ID));
         $arrResultAnswers = $arrResultAnswers[$RESULT_ID];
         // проверим общие права на результат
         $F_RIGHT = CForm::GetPermission($WEB_FORM_ID);
         if (intval($F_RIGHT) >= 20 || $F_RIGHT >= 15 && $zr["USER_ID"] == $USER->GetID()) {
             // проверим права в зависимости от статуса результата
             $arrRESULT_PERMISSION = CFormResult::GetPermissions($RESULT_ID, $v);
             if (in_array("VIEW", $arrRESULT_PERMISSION)) {
                 if (strlen(trim($TEMPLATE)) > 0) {
                     $template = $TEMPLATE;
                 } else {
                     if ($TEMPLATE_TYPE == "show") {
                         if (strlen($arrResult["SHOW_RESULT_TEMPLATE"]) <= 0) {
                             $template = "default.php";
                         } else {
                             $template = $arrResult["SHOW_RESULT_TEMPLATE"];
                         }
                     } elseif ($TEMPLATE_TYPE == "print") {
                         if (strlen($arrResult["PRINT_RESULT_TEMPLATE"]) <= 0) {
                             $template = "default.php";
                         } else {
                             $template = $arrResult["PRINT_RESULT_TEMPLATE"];
                         }
                     }
                 }
                 require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/include.php";
                 if ($TEMPLATE_TYPE == "show") {
                     $path = COption::GetOptionString("form", "SHOW_RESULT_TEMPLATE_PATH");
                 } elseif ($TEMPLATE_TYPE == "print") {
                     $path = COption::GetOptionString("form", "PRINT_RESULT_TEMPLATE_PATH");
                 }
                 IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/include.php");
                 include GetLangFileName($_SERVER["DOCUMENT_ROOT"] . $path . "lang/", "/" . $template);
                 if ($APPLICATION->GetShowIncludeAreas()) {
                     $arIcons = array();
                     if (CModule::IncludeModule("fileman")) {
                         $arIcons[] = array("URL" => "/bitrix/admin/fileman_file_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&full_src=Y&path=" . urlencode($path . $template), "SRC" => "/bitrix/images/form/panel/edit_template.gif", "ALT" => GetMessage("FORM_PUBLIC_ICON_TEMPLATE"));
                         $arrUrl = parse_url($_SERVER["REQUEST_URI"]);
                         $arIcons[] = array("URL" => "/bitrix/admin/fileman_file_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&full_src=Y&path=" . urlencode($arrUrl["path"]), "SRC" => "/bitrix/images/form/panel/edit_file.gif", "ALT" => GetMessage("FORM_PUBLIC_ICON_HANDLER"));
                     }
                     $arIcons[] = array("URL" => "/bitrix/admin/form_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $WEB_FORM_ID, "SRC" => "/bitrix/images/form/panel/edit_form.gif", "ALT" => GetMessage("FORM_PUBLIC_ICON_SETTINGS"));
                     echo $APPLICATION->IncludeStringBefore($arIcons);
                 }
                 include $_SERVER["DOCUMENT_ROOT"] . $path . $template;
                 if ($APPLICATION->GetShowIncludeAreas()) {
                     echo $APPLICATION->IncludeStringAfter();
                 }
             }
         }
     }
 }
Пример #3
0
 function PrepareFilter($WEB_FORM_ID, $arFilter)
 {
     $err_mess = CAllFormResult::err_mess() . "<br>Function: PrepareFilter<br>Line: ";
     global $DB, $strError;
     $arrFilterReturn = $arFilter;
     $arFilterKeys = array_keys($arFilter);
     if (in_array("FIELDS", $arFilterKeys)) {
         $arFilterFields = $arFilter["FIELDS"];
         $rsForm = CForm::GetByID($WEB_FORM_ID);
         $arForm = $rsForm->Fetch();
         $WEB_FORM_NAME = $arForm["SID"];
         if (is_array($arFilterFields) && count($arFilterFields) > 0) {
             reset($arFilterFields);
             while (list(, $arr) = each($arFilterFields)) {
                 if (strlen($arr["SID"]) > 0) {
                     $arr["CODE"] = $arr["SID"];
                 } else {
                     $arr["SID"] = $arr["CODE"];
                 }
                 $FIELD_SID = $arr["SID"];
                 $FILTER_TYPE = strlen($arr["FILTER_TYPE"]) > 0 ? $arr["FILTER_TYPE"] : "text";
                 if (strtoupper($FILTER_TYPE) == "ANSWER_ID") {
                     $FILTER_TYPE = "dropdown";
                 }
                 $PARAMETER_NAME = strlen($arr["PARAMETER_NAME"]) > 0 ? $arr["PARAMETER_NAME"] : "USER";
                 $PART = $arr["PART"];
                 $FILTER_KEY = $arForm["SID"] . "_" . $FIELD_SID . "_" . $PARAMETER_NAME . "_" . $FILTER_TYPE;
                 if (strlen($PART) > 0) {
                     $FILTER_KEY .= "_" . intval($PART);
                 }
                 $arrFilterReturn[$FILTER_KEY] = $arr["VALUE"];
                 if ($FILTER_TYPE == "text") {
                     $EXACT_MATCH = $arr["EXACT_MATCH"] == "Y" ? "Y" : "N";
                     $arrFilterReturn[$FILTER_KEY . "_exact_match"] = $EXACT_MATCH;
                 }
             }
         }
         unset($arrFilterReturn["FIELDS"]);
     }
     return $arrFilterReturn;
 }