Блог

30.09.2016

Поиск по алфавиту

Поиск по алфавиту можно организовать с помощью условия для фильтрации элементов ИБ, который в свою очередь подать в компонент catalog.section

 Поиск по алфавиту можно организовать с помощью условия для фильтрации элементов ИБ, который в свою очередь подать в компонент catalog.section. Как это делается:

  1. Создать включаемую область или страницу на которой размещаем компонент catalog.section
  2. В настройках компонента указать в "Имя массива со значениями фильтра для фильтрации элементов" - arrFilter и обязательно поставить галочку в пункте "Показывать все элементы, если не указан раздел"
  3. Далее настроить компонент под свои задачи
  • Перед вызовом компонента вставляем следующий код:
<?$cur_letter = $_REQUEST['letter']."%"; 
$GLOBALS['arrFilter'] = array('NAME'=>$cur_letter);?>

// Для пользовательского свойства LAST_NAME
<?$cur_letter = $_REQUEST['letter']."%";
$GLOBALS['arrFilter'] = array('PROPERTY_LAST_NAME'=>$cur_letter);?>

Далее разместим во включаемой области или перед вызовом компонента catalog.section до вставки $GLOBALS['arrFilter'] следующую структуру:

<?
//Русский
$abc = array('А','Б','В','Г','Д','Е','Ж','З','И','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Щ','Ш','Э','Ю','Я');
//Немецкий
$abc = array('A','Ä','B','C','D','E','F','G','H','I','J','K','L','M','N','O','Ö','P','Q','R','S','ß','T','U','Ü','V','W','X','Y','Z');
//Английский для utf 8
for($i=65;$i<90;$i++){$abc[] = chr($i);}
?>

//Делаем поиск по алфавиту для Английского языка для utf 8
<div>
<ul>
<?foreach($abc as $letter):?>
<?if ($letter == $_REQUEST['letter'] && !ereg("arrFilter", $_SERVER["REQUEST_URI"])):?>
<li>
<a href="?letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>" class="active">
<?=$letter;?>
</a>
</li>
<?elseif (ereg("arrFilter", $_SERVER["REQUEST_URI"]) && $letter == $_REQUEST['letter']):?>
<li>
<a href="<?=$_SERVER["REQUEST_URI"]?>&letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>" class="active">
<?=$letter;?>
</a>
</li>
<?elseif (ereg("arrFilter", $_SERVER["REQUEST_URI"]) && $letter != $_REQUEST['letter']):?>
<li>
<a href="<?=$_SERVER["REQUEST_URI"]?>&letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>">
<?=$letter;?>
</a>
</li>
<?else:?>
<li>
<a href="?letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>">
<?=$letter;?>
</a>
</li>
<?endif;?>
<?endforeach?>
</ul>
</div>

Таким образом при нажатии на ссылку(букву) компонент catalog.section будет выводить все продукты начинающиеся с этой буквы. Можно организовать и другие фильтры, например: 

  • Фильтрацию по брендам 
  • Фильтрацию по датам
  • Фильтрацию по рейтингу

Название: Поиск по алфавиту
Картинка для анонса: 
Детальное описание: 

 Поиск по алфавиту можно организовать с помощью условия для фильтрации элементов ИБ, который в свою очередь подать в компонент catalog.section. Как это делается:

  1. Создать включаемую область или страницу на которой размещаем компонент catalog.section
  2. В настройках компонента указать в "Имя массива со значениями фильтра для фильтрации элементов" - arrFilter и обязательно поставить галочку в пункте "Показывать все элементы, если не указан раздел"
  3. Далее настроить компонент под свои задачи
  • Перед вызовом компонента вставляем следующий код:
<?$cur_letter = $_REQUEST['letter']."%"; 
$GLOBALS['arrFilter'] = array('NAME'=>$cur_letter);?>

// Для пользовательского свойства LAST_NAME
<?$cur_letter = $_REQUEST['letter']."%";
$GLOBALS['arrFilter'] = array('PROPERTY_LAST_NAME'=>$cur_letter);?>

Далее разместим во включаемой области или перед вызовом компонента catalog.section до вставки $GLOBALS['arrFilter'] следующую структуру:

<?
//Русский
$abc = array('А','Б','В','Г','Д','Е','Ж','З','И','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Щ','Ш','Э','Ю','Я');
//Немецкий
$abc = array('A','Ä','B','C','D','E','F','G','H','I','J','K','L','M','N','O','Ö','P','Q','R','S','ß','T','U','Ü','V','W','X','Y','Z');
//Английский для utf 8
for($i=65;$i<90;$i++){$abc[] = chr($i);}
?>

//Делаем поиск по алфавиту для Английского языка для utf 8
<div>
<ul>
<?foreach($abc as $letter):?>
<?if ($letter == $_REQUEST['letter'] && !ereg("arrFilter", $_SERVER["REQUEST_URI"])):?>
<li>
<a href="?letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>" class="active">
<?=$letter;?>
</a>
</li>
<?elseif (ereg("arrFilter", $_SERVER["REQUEST_URI"]) && $letter == $_REQUEST['letter']):?>
<li>
<a href="<?=$_SERVER["REQUEST_URI"]?>&letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>" class="active">
<?=$letter;?>
</a>
</li>
<?elseif (ereg("arrFilter", $_SERVER["REQUEST_URI"]) && $letter != $_REQUEST['letter']):?>
<li>
<a href="<?=$_SERVER["REQUEST_URI"]?>&letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>">
<?=$letter;?>
</a>
</li>
<?else:?>
<li>
<a href="?letter=<?=$letter?>&sort=<?=$_REQUEST['sort']?>">
<?=$letter;?>
</a>
</li>
<?endif;?>
<?endforeach?>
</ul>
</div>

Таким образом при нажатии на ссылку(букву) компонент catalog.section будет выводить все продукты начинающиеся с этой буквы. Можно организовать и другие фильтры, например: 

  • Фильтрацию по брендам 
  • Фильтрацию по датам
  • Фильтрацию по рейтингу

Детальная картинка: 
Начало активности (дата): 30.09.2016 11:00:27
Дата создания: 30.09.2016 11:00:57
Кем создан (ID): 1
Кем создан (имя): (admin) Виталий Элс

Возврат к списку

Хотите посотрудничать? Contact Us

Подписаться на обновления

Согласен