Я не самый крутой 1С-Битрикс разработчик, но разве это нормально делать так?
Сайт с недвижимостью, вверху форма для выбора параметров (район, кол-во комнат, цена и т.п.), форма не компонентом, а просто форма в шаблоне. Форма отправляется в раздел /catalog/, где в файле index.php такой код:
[CODE]
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Каталог");
$_REQUEST["PROPERTY_LC_min_price_left"] = str_replace(' ','',$_REQUEST["PROPERTY_LC_min_price_left"]);
$_REQUEST["PROPERTY_LC_min_price_right"] = str_replace(' ','',$_REQUEST["PROPERTY_LC_min_price_right"]);
$_REQUEST["PROPERTY_LC_flat_squaer_left"] = str_replace(' ','',$_REQUEST["PROPERTY_LC_flat_squaer_left"]);
$_REQUEST["PROPERTY_LC_flat_squaer_right"] = str_replace(' ','',$_REQUEST["PROPERTY_LC_flat_squaer_right"]);
if($_REQUEST["PROPERTY_LC_min_price_left"] != ""){$arr_filter[">=PROPERTY_LC_min_price"] = $_REQUEST["PROPERTY_LC_min_price_left"];}
if($_REQUEST["PROPERTY_LC_min_price_right"] != ""){$arr_filter["<=PROPERTY_LC_min_price"] = $_REQUEST["PROPERTY_LC_min_price_right"];}
if($_REQUEST["PROPERTY_LC_flat_squaer_left"] != ""){$arr_filter[">=PROPERTY_LC_flat_squaer"] = $_REQUEST["PROPERTY_LC_flat_squaer_left"];}
if($_REQUEST["PROPERTY_LC_flat_squaer_right"] != ""){$arr_filter["<=PROPERTY_LC_flat_squaer"] = $_REQUEST["PROPERTY_LC_flat_squaer_right"];}
if($_REQUEST["PROPERTY_LC_min_price_left"] != "" && $_REQUEST["PROPERTY_LC_min_price_right"] != ""){
$LOGIK_OR = array("LOGIC" => "OR");
if($_REQUEST["PROPERTY_LC_min_price_0"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_0" => $_REQUEST["PROPERTY_LC_min_price_left"], "<=PROPERTY_LC_min_price_0" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
if($_REQUEST["PROPERTY_LC_min_price_1"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_1" => $_REQUEST["PROPERTY_LC_min_price_left"], "<=PROPERTY_LC_min_price_1" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
if($_REQUEST["PROPERTY_LC_min_price_2"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_2" => $_REQUEST["PROPERTY_LC_min_price_left"], "<=PROPERTY_LC_min_price_2" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
if($_REQUEST["PROPERTY_LC_min_price_3"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_3" => $_REQUEST["PROPERTY_LC_min_price_left"], "<=PROPERTY_LC_min_price_3" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
}elseif($_REQUEST["PROPERTY_LC_min_price_left"] != ""){
$LOGIK_OR = array("LOGIC" => "OR");
if($_REQUEST["PROPERTY_LC_min_price_0"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_0" => $_REQUEST["PROPERTY_LC_min_price_left"]);}
if($_REQUEST["PROPERTY_LC_min_price_1"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_1" => $_REQUEST["PROPERTY_LC_min_price_left"]);}
if($_REQUEST["PROPERTY_LC_min_price_2"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_2" => $_REQUEST["PROPERTY_LC_min_price_left"]);}
if($_REQUEST["PROPERTY_LC_min_price_3"] != ""){$LOGIK_OR[] = array(">=PROPERTY_LC_min_price_3" => $_REQUEST["PROPERTY_LC_min_price_left"]);}
}elseif($_REQUEST["PROPERTY_LC_min_price_right"] != ""){
$LOGIK_OR = array("LOGIC" => "OR");
if($_REQUEST["PROPERTY_LC_min_price_0"] != ""){$LOGIK_OR[] = array("<=PROPERTY_LC_min_price_0" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
if($_REQUEST["PROPERTY_LC_min_price_1"] != ""){$LOGIK_OR[] = array("<=PROPERTY_LC_min_price_1" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
if($_REQUEST["PROPERTY_LC_min_price_2"] != ""){$LOGIK_OR[] = array("<=PROPERTY_LC_min_price_2" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
if($_REQUEST["PROPERTY_LC_min_price_3"] != ""){$LOGIK_OR[] = array("<=PROPERTY_LC_min_price_3" => $_REQUEST["PROPERTY_LC_min_price_right"]);}
}else{
$LOGIK_OR = array("LOGIC" => "OR");
if($_REQUEST["PROPERTY_LC_min_price_0"] != ""){$LOGIK_OR[] = array("!PROPERTY_LC_min_price_0" => false);}
if($_REQUEST["PROPERTY_LC_min_price_1"] != ""){$LOGIK_OR[] = array("!PROPERTY_LC_min_price_1" => false);}
if($_REQUEST["PROPERTY_LC_min_price_2"] != ""){$LOGIK_OR[] = array("!PROPERTY_LC_min_price_2" => false);}
if($_REQUEST["PROPERTY_LC_min_price_3"] != ""){$LOGIK_OR[] = array("!PROPERTY_LC_min_price_3" => false);}
}
//$arr_filter[] = $LOGIK_OR;
if($_REQUEST["PROPERTY_LC_mortgage"] != ""){$arr_filter["!PROPERTY_LC_mortgage"] = false;}
if($_REQUEST["PROPERTY_LC_rassrochka"] != ""){$arr_filter["!PROPERTY_LC_rassrochka"] = false;}
if($_REQUEST["PROPERTY_LC_raion"] != ""){$arr_filter["PROPERTY_LC_raion"] = $_REQUEST["PROPERTY_LC_raion"];}
if($_REQUEST["PROPERTY_LC_metro"] != ""){$arr_filter["PROPERTY_LC_metro"] = false;}
if($_REQUEST["PROPERTY_ID"] != ""){$arr_filter["ID"] = $_REQUEST["PROPERTY_ID"];}
if($_REQUEST["PROPERTY_LC_rassrochka"] != ""){$arr_filter["!PROPERTY_LC_rassrochka"] = false;}
?> <?$APPLICATION->IncludeComponent(
"bitrix:catalog",
".default",
Array(
"AJAX_MODE" => "N",
"SEF_MODE" => "Y",
"IBLOCK_TYPE" => "info",
"IBLOCK_ID" => "5",
"USE_FILTER" => "Y",
"USE_COMPARE" => "N",
"SHOW_TOP_ELEMENTS" => "Y",
"SECTION_COUNT_ELEMENTS" => "Y",
"SECTION_TOP_DEPTH" => "2",
"PAGE_ELEMENT_COUNT" => "9",
"LINE_ELEMENT_COUNT" => "3",
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"ELEMENT_SORT_FIELD2" => "id",
"ELEMENT_SORT_ORDER2" => "desc",
"LIST_PROPERTY_CODE" => array("LC_best", "LC_adress", "LC_srok_sdachi", "id_from_xml", "LC_builder_descr", "LC_mortgage", "LC_category", "LC_tehnolog_descr", "LC_class", "LC_key_perfect", "LC_flat_count", "LC_flat_squaer", "LC_min_price_2", "LC_min_price_1", "LC_min_price_3", "LC_min_price_0", "LC_min_price", "LC_options_descr", "LC_noplat_descr", "LC_infra_descr", "LC_map", "LC_pay_ed", "LC_docs_descr", "LC_raion", "LC_rassrochka", "LC_metro_distance", "LC_spec", "LC_spec_more", "LC_metro", "LC_dogovor_descr", "LC_type", "LC_pay_more", "LC_home_descr", "LC_price_descr"),
"INCLUDE_SUBSECTIONS" => "Y",
"LIST_META_KEYWORDS" => "-",
"LIST_META_DESCRIPTION" => "-",
"LIST_BROWSER_TITLE" => "-",
"DETAIL_PROPERTY_CODE" => array("LC_best", "LC_adress", "BNK", "LC_srok_sdachi", "id_from_xml", "LC_builder_descr", "LC_mortgage", "LC_category", "LC_tehnolog_descr", "LC_class", "LC_key_perfect", "LC_flat_count", "LC_flat_squaer", "LC_min_price_2", "LC_min_price_1", "LC_min_price_3", "LC_min_price_0", "LC_min_price", "LC_options_descr", "LC_noplat_descr", "LC_infra_descr", "LC_map", "LC_pay_ed", "LC_docs_descr", "LC_raion", "LC_rassrochka", "LC_metro_distance", "LC_spec", "LC_spec_more", "LC_metro", "LC_dogovor_descr", "LC_type", "LC_pay_more", "LC_home_descr", "LC_price_descr"),
"DETAIL_META_KEYWORDS" => "-",
"DETAIL_META_DESCRIPTION" => "-",
"DETAIL_BROWSER_TITLE" => "-",
"BASKET_URL" => "/personal/basket.php",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"SET_TITLE" => "Y",
"SET_STATUS_404" => "N",
"PRICE_CODE" => array("id_from_xml"),
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"PRICE_VAT_SHOW_VALUE" => "N",
"PRODUCT_PROPERTIES" => array(),
"USE_PRODUCT_QUANTITY" => "N",
"LINK_IBLOCK_TYPE" => "",
"LINK_IBLOCK_ID" => "",
"LINK_PROPERTY_SID" => "",
"LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
"USE_STORE" => "N",
"USE_ELEMENT_COUNTER" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Товары",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "Y",
"TOP_ELEMENT_COUNT" => "9",
"TOP_LINE_ELEMENT_COUNT" => "3",
"TOP_ELEMENT_SORT_FIELD" => "sort",
"TOP_ELEMENT_SORT_ORDER" => "asc",
"TOP_ELEMENT_SORT_FIELD2" => "id",
"TOP_ELEMENT_SORT_ORDER2" => "desc",
"TOP_PROPERTY_CODE" => array("LC_best", "LC_adress", "LC_srok_sdachi", "id_from_xml", "LC_builder_descr", "LC_mortgage", "LC_category", "LC_tehnolog_descr", "LC_class", "LC_key_perfect", "LC_flat_count", "LC_flat_squaer", "LC_min_price_2", "LC_min_price_1", "LC_min_price_3", "LC_min_price_0", "LC_min_price", "LC_options_descr", "LC_noplat_descr", "LC_infra_descr", "LC_map", "LC_pay_ed", "LC_docs_descr", "LC_raion", "LC_rassrochka", "LC_metro_distance", "LC_spec", "LC_spec_more", "LC_metro", "LC_dogovor_descr", "LC_type", "LC_pay_more", "LC_home_descr", "LC_price_descr"),
"FILTER_NAME" => "arr_filter",
"FILTER_FIELD_CODE" => array(),
"FILTER_PROPERTY_CODE" => array(),
"FILTER_PRICE_CODE" => array(),
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"SEF_FOLDER" => "/catalog/",
"SEF_URL_TEMPLATES" => Array(
"section" => "#SECTION_ID#/",
"element" => "#ELEMENT_CODE#/",
"compare" => "compare.php?action=#ACTION_CODE#"
),
"VARIABLE_ALIASES" => Array(
"section" => Array(),
"element" => Array(),
"compare" => Array(
"ACTION_CODE" => "action"
),
)
)
);?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
[/CODE]