function __getList($arFilter = array(), &$by, &$order) { global $DB; $arBy = array("ACTIVE", "C_SORT", "VALIDATOR_SID", "FIELD_ID"); $by = strtoupper($by); if (!in_array($by, $arBy)) { $by = "C_SORT"; } $order = strtoupper($order); if ($order != "ASC" && $order != "DESC") { $order = "ASC"; } $arWhere = array(); foreach ($arFilter as $key => $value) { switch ($key) { case "WEB_FORM_ID": $arWhere[] = "FORM_ID='" . intval($value) . "'"; break; case "FIELD_ID": $arWhere[] = "FIELD_ID='" . intval($value) . "'"; break; case "ACTIVE": $arWhere[] = "ACTIVE='" . ($value == "N" ? "N" : "Y") . "'"; break; case "NAME": $arWhere[] = "VALIDATOR_SID='" . $DB->ForSql($value) . "'"; break; } } if (count($arWhere) > 0) { $strWhere = "WHERE " . implode(" AND ", $arWhere); } else { $strWhere = ""; } $query = "SELECT * FROM b_form_field_validator " . $strWhere . " ORDER BY " . $by . " " . $order; $rsList = $DB->Query($query, false, __LINE__); $arCurrentValidators = array(); $rsFullList = CFormValidator::GetAllList(); $arFullList = $rsFullList->arResult; while ($arCurVal = $rsList->Fetch()) { foreach ($arFullList as $key => $arVal) { if ($arVal["NAME"] == $arCurVal["VALIDATOR_SID"]) { $arCurVal["NAME"] = $arVal["NAME"]; unset($arCurVal["VALIDATOR_SID"]); if (strlen($arCurVal["PARAMS"]) > 0) { $arCurVal["PARAMS"] = CFormValidator::GetSettingsArray($arVal, $arCurVal["PARAMS"]); $arCurVal["PARAMS_FULL"] = CFormValidator::GetSettings($arVal); } $arCurrentValidators[] = $arCurVal; break; } } } unset($rsList); $rsList = new CDBResult(); $rsList->InitFromArray($arCurrentValidators); return $rsList; }