@Drumsid

Сортировка в php?

есть код в битрикс
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
?>

<?
if (!empty($arResult['ITEMS'])){
?>

<?if( strlen($arResult['DESCRIPTION'])>0 ){?>
<div class="Decsr"><?=$arResult['DESCRIPTION'];?></div>
<?}?>
<div class="SectionItems SectionItemsWheels">

<table cellpadding="0" cellspacing="0" class="table-responsive">
<tr>
	<th class="Name">
		Наименование
		<a class="at_el_sort" href="?SORT=NAME&BY=ASC"><img class="atsi_arrow atsi_arrow1" src="/include/template/img/arrowUp1.png"></a>
		<a class="at_el_sort" href="?SORT=NAME&BY=DESC"><img class="atsi_arrow atsi_arrow2" src="/include/template/img/arrowDown1.png"></a>
	</th>
	<th class="Art">
		Код производителя
		<a class="at_el_sort" href="?SORT=MCODE&BY=ASC"><img class="atsi_arrow atsi_arrow1" src="/include/template/img/arrowUp1.png"></a>
		<a class="at_el_sort" href="?SORT=MCODE&BY=DESC"><img class="atsi_arrow atsi_arrow2" src="/include/template/img/arrowDown1.png"></a>
	</th>
	<th class="Manufactur">Марка</th>
	<th class="CarModel">Модель</th>
	<th class="ItemPrice">Цена

</th>

</tr>
<? $i = 0;
foreach ($arResult['ITEMS'] as $key => $arItem){
$i++;	
?>
<tr <? if($key%2==0){?>class="Grey"<? } ?>>
	<td class="Name"><a href="<?=$arItem["DETAIL_PAGE_URL"];?>"><?=$arItem["NAME"];?> <span class="more-table">Подробнее</span></a></td>
	<td><?=$arItem["PROPERTIES"]["MCODE"]["VALUE"];?></td>
	<td class="Manufactur<? if(!empty($arItem["PROPERTIES"]["BRAND"]["VALUE"])){?> active<? } ?>"><?=$arItem["PROPERTIES"]["BRAND"]["VALUE"];?></td>
	<td class="CarModel<? if(!empty($arItem["PROPERTIES"]["MODEL"]["VALUE"])){?> active<? } ?>"><?=$arItem["PROPERTIES"]["MODEL"]["VALUE"];?></td>
	<td class="ElemPrice"><?echo number_format(min($arResult['SKU_DATA_PRICES'][$arItem["ID"]]['PRICE']), 0, '', ' ');?> руб.</td>
</tr>
<? } ?>
</table>


	<div class="AtStorePagiantion">
	<?
	if($arParams["DISPLAY_BOTTOM_PAGER"]){
		echo $arResult["NAV_STRING"];
	}
	?>
	</div>
</div>
<? } ?>

сейчас работает сортировка по наименованию
<a class="at_el_sort" href="?SORT=NAME&BY=ASC"><img class="atsi_arrow atsi_arrow1" src="/include/template/img/arrowUp1.png"></a>

и по коду производителя
<a class="at_el_sort" href="?SORT=MCODE&BY=DESC"><img class="atsi_arrow atsi_arrow2" src="/include/template/img/arrowDown1.png"></a>

хочу чтоб была сортировка по цене, добавляю в соотвествующий пункт таблицы ссылки такого формата, и приписываю В href "?SORT=PRICE&BY=ASC"но не работает...
<th class="ItemPrice">Цена
		<a class="at_el_sort" href="?SORT=PRICE&BY=ASC"><img class="atsi_arrow atsi_arrow1" src="/include/template/img/arrowUp1.png"></a>
		<a class="at_el_sort" href="?SORT=PRICE&BY=DESC"><img class="atsi_arrow atsi_arrow2" src="/include/template/img/arrowDown1.png"></a>

помогите разобраться ))
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Код в вашем вопросе это шаблон, надо смотреть код вызова компонента, который использует данный шаблон.
Например сейчас путь до файла шаблона такой:
/local/templates/site_template_name/bitrix/component_name/component_template_name/template.php
component_name - скорее всего - catalog.section или news.list .

Вам надо посмотреть как реализована передача параметров в вызов компонента. Смотрите на параметры ELEMENT_SORT_FIELD или SORT_BY1.

Цена у вас может быть Ценой из Торгового каталога или же свойством ИБ.
В первом случае сортировка по цене будет catalog_PRICE_1, где 1 - ID цены по которой сортируете.
Во втором случае сортировка по свойству будет PROPERTY_PRICE, где PRICE - это символьный код свойства
Подробнее про сортировку можно почитать в API метода CIblockElement::GetList
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы