コード例 #1
0
 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;
 }