function tzs_validate_pr_search_parameters() { $errors = array(); $res = array(); // Проверим защиту nonce if (isset($_POST['type_id_nonce']) && wp_verify_nonce($_POST['type_id_nonce'], 'type_id')) { // get parameters from _POST $form_type = get_param_def('form_type', ''); $type_id = get_param_def('type_id', '0'); $cur_type_id = get_param_def('cur_type_id', '0'); $rootcategory = get_param_def('rootcategory', '0'); $sale_or_purchase = get_param_def('sale_or_purchase', '0'); $fixed_or_tender = get_param_def('fixed_or_tender', '0'); $payment = get_param_def('payment', '0'); $nds = get_param_def('nds', '0'); $country_from = get_param_def('country_from', '0'); $region_from = get_param_def('region_from', '0'); $cityname_from = get_param('cityname_from'); $pr_title = get_param('pr_title'); $price_from = get_param_def('price_from', '0'); $price_to = get_param_def('price_to', '0'); $data_from = get_param_def('data_from', null); $data_to = get_param_def('data_to', null); $auction_type = get_param_def('auction_type', '0'); $rate_from = get_param_def('rate_from', '0'); $rate_to = get_param_def('rate_to', '0'); // validate and parse parameters if (is_valid_num_zero($country_from)) { // use float not int because ID can be long $country_from = floatval($country_from); } else { array_push($errors, "Неверно выбрана страна"); } if (is_valid_num_zero($region_from)) { // use float not int because ID can be long $region_from = floatval($region_from); } else { array_push($errors, "Неверно выбран регион"); } if (is_valid_num_zero($price_from)) { $price_from = floatval($price_from); } else { array_push($errors, "Неверно указано начальное значение стоимости"); } if (is_valid_num_zero($price_to)) { $price_to = floatval($price_to); } else { array_push($errors, "Неверно указано конечное значение стоимости"); } if (is_valid_num_zero($rate_from)) { $rate_from = floatval($rate_from); } else { array_push($errors, "Неверно указано начальное значение ставки"); } if (is_valid_num_zero($rate_to)) { $rate_to = floatval($rate_to); } else { array_push($errors, "Неверно указано конечное значение ставки"); } if (is_valid_num_zero($type_id)) { $type_id = intval($type_id); } else { array_push($errors, "Неверно выбрана категория"); } if (is_valid_num_zero($cur_type_id)) { $cur_type_id = intval($cur_type_id); } else { array_push($errors, "Неверно выбрана категория"); } if (is_valid_num_zero($rootcategory)) { $rootcategory = intval($rootcategory); } else { array_push($errors, "Неверно выбрана категория"); } if (is_valid_num_zero($auction_type)) { $auction_type = intval($auction_type); } else { array_push($errors, "Неверно выбран тип тендера"); } if (is_valid_num_zero($sale_or_purchase)) { $sale_or_purchase = intval($sale_or_purchase); } else { array_push($errors, "Неверно выбран тип заявки"); } if (is_valid_num_zero($fixed_or_tender)) { $fixed_or_tender = intval($fixed_or_tender); } else { array_push($errors, "Неверно выбран тип тендера"); } if (is_valid_num_zero($payment)) { $payment = intval($payment); } else { array_push($errors, "Неверно выбран форма оплаты"); } if (is_valid_num_zero($nds)) { $nds = intval($nds); } else { array_push($errors, "Неверно выбран НДС"); } if ($cityname_from != null && strlen($cityname_from) == 0) { $cityname_from = null; } if ($pr_title != null && strlen($pr_title) == 0) { $pr_title = null; } if ($data_from != null && strlen($data_from) > 0) { $data_from = is_valid_date($data_from); if ($data_from == null) { array_push($errors, "Неверный формат даты (с)"); } } else { $data_from = null; } if ($data_to != null && strlen($data_to) > 0) { $data_to = is_valid_date($data_to); if ($data_to == null) { array_push($errors, "Неверный формат даты (по)"); } } else { $data_to = null; } $cityname_from_ids = null; if ($cityname_from != null && count($errors) == 0) { $r = tzs_city_to_ids($cityname_from, 0, 0); if (isset($r['error'])) { array_push($errors, $r['error']); } else { $cityname_from_ids = isset($r['ids']) ? $r['ids'] : null; } } // Если нет ошибок - то заполняем результирующий массив if (count($errors) == 0) { if ($country_from > 0) { $res['country_from'] = $country_from; } if ($region_from > 0) { $res['region_from'] = $region_from; } if ($cityname_from != null) { $res['cityname_from'] = $cityname_from; } if ($pr_title != null) { $res['pr_title'] = $pr_title; } if ($data_from != null) { $res['data_from'] = $data_from; $res['data_from_str'] = get_param('data_from'); } if ($data_to != null) { $res['data_to'] = $data_to; $res['data_to_str'] = get_param('data_to'); } if ($price_from > 0) { $res['price_from'] = $price_from; } if ($price_to > 0) { $res['price_to'] = $price_to; } if ($rate_from > 0) { $res['rate_from'] = $rate_from; } if ($rate_to > 0) { $res['rate_to'] = $rate_to; } if ($auction_type > 0) { $res['auction_type'] = $auction_type; } if ($type_id > 0) { $res['type_id'] = $type_id; } if ($cur_type_id > 0) { $res['cur_type_id'] = $cur_type_id; } if ($rootcategory > 0) { $res['rootcategory'] = $rootcategory; } if ($sale_or_purchase > 0) { $res['sale_or_purchase'] = $sale_or_purchase; } if ($fixed_or_tender > 0) { $res['fixed_or_tender'] = $fixed_or_tender; } if ($payment > 0) { $res['payment'] = $payment; } if ($nds > 0) { $res['nds'] = $nds; } if ($cityname_from_ids != null) { $res['cityname_from_ids'] = $cityname_from_ids; } } } else { array_push($errors, "Проверка формы не пройдена. Свяжитесь, пожалуйста, с администрацией сайта."); } $res['errors'] = $errors; return $res; }
function tzs_validate_search_parameters() { $errors = array(); $res = array(); // get parameters from _POST $country_from = get_param_def('country_from', '0'); $country_to = get_param_def('country_to', '0'); $region_from = get_param_def('region_from', '0'); $region_to = get_param_def('region_to', '0'); $cargo_city_from = isset($_POST['cargo_city_from']); $cargo_city_to = isset($_POST['cargo_city_to']); $cargo_cityname_from = $cargo_city_from ? get_param('cargo_cityname_from') : null; $cargo_cityname_to = $cargo_city_to ? get_param('cargo_cityname_to') : null; $data_from = get_param_def('data_from', null); $data_to = get_param_def('data_to', null); $weight_from = get_param_def('weight_from', '0'); $weight_to = get_param_def('weight_to', '0'); $volume_from = get_param_def('volume_from', '0'); $volume_to = get_param_def('volume_to', '0'); $trans_type = get_param_def('trans_type', '0'); $sh_type = get_param_def('sh_type', '0'); $cargo_city_from_radius_check = isset($_POST['cargo_city_from_radius_check']); $cargo_city_from_radius_value = get_param_def('cargo_city_from_radius_value', 0); $price_from = get_param_def('price_from', '0'); $price_to = get_param_def('price_to', '0'); $price_km_from = get_param_def('price_km_from', '0'); $price_km_to = get_param_def('price_km_to', '0'); $sh_descr = get_param('sh_descr'); // validate and parse parameters if (is_valid_num_zero($cargo_city_from_radius_value)) { $cargo_city_from_radius_value = intval($cargo_city_from_radius_value); } else { array_push($errors, "Неверно выбран радиус"); } if (is_valid_num_zero($country_from)) { // use float not int because ID can be long $country_from = floatval($country_from); } else { array_push($errors, "Неверно выбрана страна погрузки"); } if (is_valid_num_zero($country_to)) { // use float not int because ID can be long $country_to = floatval($country_to); } else { array_push($errors, "Неверно выбрана страна выгрузки"); } if (is_valid_num_zero($region_from)) { // use float not int because ID can be long $region_from = floatval($region_from); } else { array_push($errors, "Неверно выбран регион погрузки"); } if (is_valid_num_zero($region_to)) { // use float not int because ID can be long $region_to = floatval($region_to); } else { array_push($errors, "Неверно выбран регион выгрузки"); } if ($cargo_cityname_from != null && strlen($cargo_cityname_from) == 0) { $cargo_cityname_from = null; } if ($cargo_cityname_to != null && strlen($cargo_cityname_to) == 0) { $cargo_cityname_to = null; } if ($data_from != null && strlen($data_from) > 0) { $data_from = is_valid_date($data_from); if ($data_from == null) { array_push($errors, "Неверный формат даты (с)"); } } else { $data_from = null; } if ($data_to != null && strlen($data_to) > 0) { $data_to = is_valid_date($data_to); if ($data_to == null) { array_push($errors, "Неверный формат даты (по)"); } } else { $data_to = null; } if (is_valid_num_zero($weight_from)) { $weight_from = intval($weight_from); } else { array_push($errors, "Неверно выбрана масса (от)"); } if (is_valid_num_zero($weight_to)) { $weight_to = intval($weight_to); } else { array_push($errors, "Неверно выбрана масса (до)"); } if (is_valid_num_zero($volume_from)) { $volume_from = intval($volume_from); } else { array_push($errors, "Неверно выбран объем (от)"); } if (is_valid_num_zero($volume_to)) { $volume_to = intval($volume_to); } else { array_push($errors, "Неверно выбран объем (до)"); } if (is_valid_num_zero($trans_type)) { $trans_type = intval($trans_type); } else { array_push($errors, "Неверно выбран тип транспорта"); } if (is_valid_num_zero($sh_type)) { $sh_type = intval($sh_type); } else { array_push($errors, "Неверно выбран тип груза"); } $cargo_cityname_from_ids = null; if ($cargo_cityname_from != null && count($errors) == 0) { $r = tzs_city_to_ids($cargo_cityname_from, $region_from, $country_from); if (isset($r['error'])) { array_push($errors, $r['error']); } else { $cargo_cityname_from_ids = isset($r['ids']) ? $r['ids'] : null; } } if (is_valid_num_zero($price_from)) { $price_from = intval($price_from); } else { array_push($errors, "Неверно выбрана стоимость (от)"); } if (is_valid_num_zero($price_to)) { $price_to = intval($price_to); } else { array_push($errors, "Неверно выбрана стоимость (до)"); } if (is_valid_num_zero($price_km_from)) { $price_km_from = intval($price_km_from); } else { array_push($errors, "Неверно выбрана цена 1 км (от)"); } if (is_valid_num_zero($price_km_to)) { $price_km_to = intval($price_km_to); } else { array_push($errors, "Неверно выбрана цена 1 км (до)"); } // KSK - добавляем выбор ids для городов в радиусе $cargo_city_from_radius_ids = null; if ($cargo_city_from_radius_check && $cargo_cityname_from != null && count($errors) == 0) { $r = tzs_city_from_radius_to_ids($cargo_cityname_from, $region_from, $country_from, $cargo_city_from_radius_value); if (isset($r['error'])) { array_push($errors, $r['error']); } else { $cargo_city_from_radius_ids = isset($r['ids']) ? $r['ids'] : null; } } $cargo_cityname_to_ids = null; if ($cargo_cityname_to != null && count($errors) == 0) { $r = tzs_city_to_ids($cargo_cityname_to, $region_to, $country_to); if (isset($r['error'])) { array_push($errors, $r['error']); } else { $cargo_cityname_to_ids = isset($r['ids']) ? $r['ids'] : null; } } if ($sh_descr != null && strlen($sh_descr) == 0) { $sh_descr = null; } if (count($errors) == 0) { if ($country_from > 0) { $res['country_from'] = $country_from; } if ($country_to > 0) { $res['country_to'] = $country_to; } if ($region_from > 0) { $res['region_from'] = $region_from; } if ($region_to > 0) { $res['region_to'] = $region_to; } if ($cargo_cityname_from != null) { $res['cargo_cityname_from'] = $cargo_cityname_from; } if ($cargo_cityname_to != null) { $res['cargo_cityname_to'] = $cargo_cityname_to; } if ($data_from != null) { $res['data_from'] = $data_from; $res['data_from_str'] = get_param('data_from'); } if ($data_to != null) { $res['data_to'] = $data_to; $res['data_to_str'] = get_param('data_to'); } if ($weight_from > 0) { $res['weight_from'] = $weight_from; } if ($weight_to > 0) { $res['weight_to'] = $weight_to; } if ($volume_from > 0) { $res['volume_from'] = $volume_from; } if ($volume_to > 0) { $res['volume_to'] = $volume_to; } if ($trans_type > 0) { $res['trans_type'] = $trans_type; } if ($sh_type > 0) { $res['sh_type'] = $sh_type; } if ($cargo_cityname_from_ids != null) { $res['cargo_cityname_from_ids'] = $cargo_cityname_from_ids; } if ($cargo_cityname_to_ids != null) { $res['cargo_cityname_to_ids'] = $cargo_cityname_to_ids; } if ($cargo_city_from_radius_ids != null) { $res['cargo_city_from_radius_ids'] = $cargo_city_from_radius_ids; } if ($cargo_city_from_radius_value != null) { $res['cargo_city_from_radius_value'] = $cargo_city_from_radius_value; } if ($price_from > 0) { $res['price_from'] = $price_from; } if ($price_to > 0) { $res['price_to'] = $price_to; } if ($price_km_from > 0) { $res['price_km_from'] = $price_km_from; } if ($price_km_to > 0) { $res['price_km_to'] = $price_km_to; } if ($sh_descr != null) { $res['sh_descr'] = $sh_descr; } } $res['errors'] = $errors; return $res; }