Здравствуйте.
Столкнулся с проблемой. На сайте установлена пользовательская сортировка с выводом в публичную часть. все работает, но сейчас клиенту потребовалось сортировать элементы в каталоге по второму полю. т.е. в редактировании элемента. Проблема в том, что при подключенной пользовательской сортировке не работает стандартная. Причем ни по первому полю ни по второму, надо что бы сортировка по второму полю работала...в общем нужна помощь[CODE]<? if($arParams['USE_SECTION_SORT'] == "Y"): ?>
<?
$APPLICATION->SetAdditionalCSS($templateFolder.'/css/sort-bar.css');
if ('section' == $this->GetPageName()) {
CModule::IncludeModule('catalog');
$dbRes = CCatalogGroup::GetList(
array(), array('NAME' => $arParams['PRICE_CODE'][0])
);
if ($arRes = $dbRes->Fetch())
$arResult['_PRICE_ID'] = $arRes['ID'];
}
$arAvailableSort = array(
"available" => Array("CATALOG_AVAILABLE", "desc"),
"name" => Array("name", "asc"),
"price" => Array('catalog_PRICE_'.$arResult['_PRICE_ID'], "asc"),
"shows" => Array('shows', "desc"),
//"id" => Array('ID', "desc"),
);
$sort = array_key_exists("sort", $_REQUEST) && array_key_exists(ToLower($_REQUEST["sort"]), $arAvailableSort) ? $arAvailableSort[ToLower($_REQUEST["sort"])][0] : 'CATALOG_AVAILABLE';
$sort_order = array_key_exists("order", $_REQUEST) && in_array(ToLower($_REQUEST["order"]), Array("asc", "desc")) ? ToLower($_REQUEST["order"]) : 'desc';
if($_REQUEST['sectview'] == 'blocks' || $_REQUEST['sectview'] == 'table'){
$_SESSION['SECTION_VIEW'] = $_REQUEST['sectview'];
}
if(empty($_SESSION['SECTION_VIEW'])){
$catalog_section_view = 'blocks';
}
else {
$catalog_section_view = $_SESSION['SECTION_VIEW'];
}
if($_REQUEST['count'] == 15 || $_REQUEST['count'] == 45 || $_REQUEST['count'] == 75 || $_REQUEST['count'] == 105 || $_REQUEST['count'] == 1000){
$_SESSION['PAGE_ELEMENT_COUNT'] = $_REQUEST['count'];
}
if(empty($_SESSION['PAGE_ELEMENT_COUNT'])){
$PAGE_ELEMENT_COUNT = 15;
}
else {
$PAGE_ELEMENT_COUNT = $_SESSION['PAGE_ELEMENT_COUNT'];
}
?>
<?
if ($sort) {
$arParams["ELEMENT_SORT_FIELD"] = $sort;
}
if ($sort_order) {
$arParams["ELEMENT_SORT_ORDER"] = $sort_order;
}
$arParams['ELEMENT_LIST_TEMPLATE'] = ($arParams['USE_SECTION_SORT_VIEW'] == "Y" ? $catalog_section_view : $arParams['ELEMENT_LIST_TEMPLATE']);
$arParams["PAGE_ELEMENT_COUNT"] = $PAGE_ELEMENT_COUNT;
?>
<? endif; ?>
[/CODE]
Столкнулся с проблемой. На сайте установлена пользовательская сортировка с выводом в публичную часть. все работает, но сейчас клиенту потребовалось сортировать элементы в каталоге по второму полю. т.е. в редактировании элемента. Проблема в том, что при подключенной пользовательской сортировке не работает стандартная. Причем ни по первому полю ни по второму, надо что бы сортировка по второму полю работала...в общем нужна помощь[CODE]<? if($arParams['USE_SECTION_SORT'] == "Y"): ?>
<?
$APPLICATION->SetAdditionalCSS($templateFolder.'/css/sort-bar.css');
if ('section' == $this->GetPageName()) {
CModule::IncludeModule('catalog');
$dbRes = CCatalogGroup::GetList(
array(), array('NAME' => $arParams['PRICE_CODE'][0])
);
if ($arRes = $dbRes->Fetch())
$arResult['_PRICE_ID'] = $arRes['ID'];
}
$arAvailableSort = array(
"available" => Array("CATALOG_AVAILABLE", "desc"),
"name" => Array("name", "asc"),
"price" => Array('catalog_PRICE_'.$arResult['_PRICE_ID'], "asc"),
"shows" => Array('shows', "desc"),
//"id" => Array('ID', "desc"),
);
$sort = array_key_exists("sort", $_REQUEST) && array_key_exists(ToLower($_REQUEST["sort"]), $arAvailableSort) ? $arAvailableSort[ToLower($_REQUEST["sort"])][0] : 'CATALOG_AVAILABLE';
$sort_order = array_key_exists("order", $_REQUEST) && in_array(ToLower($_REQUEST["order"]), Array("asc", "desc")) ? ToLower($_REQUEST["order"]) : 'desc';
if($_REQUEST['sectview'] == 'blocks' || $_REQUEST['sectview'] == 'table'){
$_SESSION['SECTION_VIEW'] = $_REQUEST['sectview'];
}
if(empty($_SESSION['SECTION_VIEW'])){
$catalog_section_view = 'blocks';
}
else {
$catalog_section_view = $_SESSION['SECTION_VIEW'];
}
if($_REQUEST['count'] == 15 || $_REQUEST['count'] == 45 || $_REQUEST['count'] == 75 || $_REQUEST['count'] == 105 || $_REQUEST['count'] == 1000){
$_SESSION['PAGE_ELEMENT_COUNT'] = $_REQUEST['count'];
}
if(empty($_SESSION['PAGE_ELEMENT_COUNT'])){
$PAGE_ELEMENT_COUNT = 15;
}
else {
$PAGE_ELEMENT_COUNT = $_SESSION['PAGE_ELEMENT_COUNT'];
}
?>
<?
if ($sort) {
$arParams["ELEMENT_SORT_FIELD"] = $sort;
}
if ($sort_order) {
$arParams["ELEMENT_SORT_ORDER"] = $sort_order;
}
$arParams['ELEMENT_LIST_TEMPLATE'] = ($arParams['USE_SECTION_SORT_VIEW'] == "Y" ? $catalog_section_view : $arParams['ELEMENT_LIST_TEMPLATE']);
$arParams["PAGE_ELEMENT_COUNT"] = $PAGE_ELEMENT_COUNT;
?>
<? endif; ?>
[/CODE]