Генератор диапазона цен представляет из себя библиотеку, написанную на языке PHP версии 5.x. Класс может быть использован в интернет магазинах и различных каталогах, и не только. Суть его работы заключается в формировании ценовых диапазонов, на основе минимальной и максимальной величины. Он прост в использовании, и для его подключения достаточно базовых знаний PHP.
Вы подключаете библиотеку, передаёте методу класса два обязательных параметра: начальная цена, и конечная цена. Скрипт генерирует диапазон цен, и возвращает результат в виде массива. Так же имеется третий не обязательный параметр, отвечающий за порядок сортировки.
Перед тем как использовать класс необходимо подключить файл в котором он находиться.
В нашем случае имя файла: price_range.class.php
Подключать файл класса необходимо перед обращением к классу.
Подключение файла класса:
<php require_once ('price_range.class.php'); ?>
Класс имеет имя: PriceRange, создаем объект класса:
<php $obj = new PriceRange(); ?>
Основной метод класса, который генерирует диапазон цен называется get_price_range.
Входные данные:
$start_price — стартовая цена
$end_price — конечная цена
$sort — сортировка, может быть ‘asc’ или ‘desc’. По умолчанию параметр равен ‘asc’.
Обращаемся к методу:
<php $arrResult = $obj -> get_price_range ( $start_price, $end_price, $sort ); ?>
При успешном обращении к методу, результат занесенный в $arrResult будет в виде массива такой структуры:
Array ( [1] => Array ( [min] => 500 [max] => 600 [divided_min] => 500 [divided_max] => 600 ) [2] => Array ( [min] => 600 [max] => 1000 [divided_min] => 600 [divided_max] => 1 000 ) )
Образец шаблона для вывода
Шаблон вывода вы можете менять на своё усмотрение, пример простого шаблона вывода:
<?php if (is_array($arrResult)){ echo '<ul>'; foreach ($arrResult as $key => $val) { echo '<li>'.$val['divided_min'].' $ - '.$val['divided_max'].' $</li>'; } echo '<ul>'; } ?>
В итоге:
<?php require_once ('price_range.class.php'); // подключаем файл класса $obj = new PriceRange(); // создаем экземпляр класса $start_price = 100; // стартовая цена $end_price = 5600; // конечная цена $sort = "desc"; // сортировка, по ум. asc // вызываем метод $arrResult = $obj -> get_price_range ( $start_price, $end_price, $sort ); // формируем вывод if (is_array($arrResult)){ echo '<ul>'; foreach ($arrResult as $key => $val) { echo '<li>' . $val['divided_min'] . ' $ - ' . $val['divided_max'] . ' $</li>'; } echo '<ul>'; } ?>
Пример:
Давайте предположим что у нас имеется два значения: начальная цена 150 $ и конечная цена 15000 $, посмотрим как класс сгенерирует диапазон для этих величин.
• 100 $ — 200 $
• 200 $ — 300 $
• 300 $ — 500 $
• 500 $ — 800 $
• 800 $ — 1 300 $
• 1 300 $ — 2 100 $
• 2 100 $ — 3 400 $
• 3 400 $ — 5 500 $
• 5 500 $ — 8 900 $
• 8 900 $ — 14 400 $
• 14 400 $ — 15 000 $
Скачать файл скрипта вы можете по этой ссылке.
Ну и на последок
Не исключено что скрипт может быть улучшен, изменять код вы можете на своё усмотрение.
Не стесняйтесь, задавайте вопросы по поводу работы скрипта, постараюсь помочь.