Advertisement
aljajazva

Untitled

Sep 28th, 2020
1,343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.00 KB | None | 0 0
  1. function slider_filter($ajax){
  2.     $answer = array();
  3.     // Получаем текущие значения фильтров
  4.     $filter_array = value_for_filters($_REQUEST['url']);
  5.     if ($filter_array == false) {
  6.         $filter_array = array();
  7.     }
  8.     // Получаем изменение для фильтра
  9.     $filter_name = $_REQUEST['name'];
  10.     $filter_value = explode(';', $_REQUEST['value']);
  11.     if ($filter_value != '') {
  12.         // Вносим изменение данных фильтра в массив
  13.         $filter_array[$filter_name] = $filter_value;
  14.     } else {
  15.         // Удаляем фильтр, если сняты все ограничения для него
  16.         unset($filter_array[$filter_name]);
  17.     }
  18.     // Извлекаем отфильтрованные квартиры
  19.     $all_apartments = $ajax->filter->filter_apartment($filter_array);
  20.     // Включаем кэширование вывода
  21.     ob_start();
  22.     // Собираем список квартир
  23.     $current_filter_page = 1;
  24.     include_once('../tmpl/_parts/apartments_list.php');
  25.     // Сохраняем список, сверстанный в HTML
  26.     $answer['html'] = ob_get_contents();
  27.     // Очищаем кэш и выключаем кэширование
  28.     ob_end_clean();
  29.     // Включаем кэширование вывода
  30.     ob_start();
  31.     // Собираем блок с пагинацией
  32.     $filter_url_segments = $_REQUEST['url'];
  33.     $count = count($all_apartments);
  34.     include_once('../tmpl/_parts/apartments_list_pagination.php');
  35.     // Сохраняем блок с пагинацией, сверстанный в HTML
  36.     $answer['pagination'] = ob_get_contents();
  37.     // Очищаем кэш и выключаем кэширование
  38.     ob_end_clean();
  39.     // Формируем новый мета-текст
  40.     $answer['metatext'] = get_meta_text($filter_array, $ajax->filter->filters_section);
  41.     //сортируем ключи в массиве правильно
  42.     $filter_array = sort_filters_url($filter_array);
  43.     // Составляем новый URL
  44.     $answer['new_url'] = '/apartmentsearch';
  45.     foreach ($filter_array as $key_filter => $value_filter ) {
  46.         if (implode($value_filter, '') != '') {
  47.             $answer['new_url'] .= '/' . $key_filter . '-';
  48.  
  49.             // Определяем последний элемент из значений, для красивого оформления URL
  50.             $last_one = $value_filter;
  51.             if ( ($value_filter[0] == $value_filter[1])){
  52.                 $answer['new_url'] .= $value_filter[0].'-'.$value_filter[1];
  53.             } else{
  54.                 $last_one = array_pop($last_one);
  55.                 foreach ($value_filter as $one) {
  56.                     $answer['new_url'] .= $one;
  57.                     if ($one != $last_one) {
  58.                         $answer['new_url'] .= '-';
  59.                     }
  60.                 }
  61.             }
  62.         }
  63.     }
  64.     // Сохраняем количество квартир в списке
  65.     $answer['count'] = $count;
  66.     return $answer;
  67. }
  68.  
  69. function sort_apartments($ajax){
  70.     $answer = array();
  71.     // Получаем текущие значения фильтров
  72.     $filter_array = value_for_filters($_REQUEST['url']);
  73.     if ($filter_array == false) {
  74.         $filter_array = array();
  75.     }
  76.     // Определяем желаемое направление сортировки
  77.     $sort_order = 'desc';
  78.     if (isset($_REQUEST['sort'])) {
  79.         $sort_order = $_REQUEST['sort'];
  80.         if (($sort_order != 'asc') && ($sort_order != 'desc')) {
  81.             $sort_order = 'desc';
  82.         }
  83.     }
  84.     // Извлекаем отфильтрованные квартиры//сортируем список в нужном порядке
  85.     $all_apartments = $ajax->filter->filter_apartment($filter_array);
  86.     usort($all_apartments, function ($apartment_1, $apartment_2) use (&$sort_order) {
  87.         if ($sort_order == 'asc') {
  88.             return (floatval(str_replace(',', '.', $apartment_1->total_area)) < floatval(str_replace(',', '.', $apartment_2->total_area))) ? -1 : 1;
  89.         } else {
  90.             return (floatval(str_replace(',', '.', $apartment_2->total_area)) < floatval(str_replace(',', '.', $apartment_1->total_area))) ? -1 : 1;
  91.         }
  92.     });
  93.     // Включаем кэширование вывода
  94.     ob_start();
  95.     // Собираем список квартир
  96.     $current_filter_page = 1;
  97.     include_once('../tmpl/_parts/apartments_list.php');
  98.     // Сохраняем список, сверстанный в HTML
  99.     $answer['html'] = ob_get_contents();
  100.     // Очищаем кэш и выключаем кэширование
  101.     ob_end_clean();
  102.     // Включаем кэширование вывода
  103.     ob_start();
  104.     // Собираем блок с пагинацией
  105.     $filter_url_segments = $_REQUEST['url'];
  106.     $count = count($all_apartments);
  107.     include_once('../tmpl/_parts/apartments_list_pagination.php');
  108.     // Сохраняем блок с пагинацией, сверстанный в HTML
  109.     $answer['pagination'] = ob_get_contents();
  110.     // Очищаем кэш и выключаем кэширование
  111.     ob_end_clean();
  112.     // Формируем новый мета-текст
  113.     $answer['metatext'] = get_meta_text($filter_array, $ajax->filter->filters_section);
  114.     //сортируем ключи в массиве правильно
  115.     $filter_array = sort_filters_url($filter_array);
  116.     // Составляем новый URL
  117.     $answer['new_url'] = '/apartmentsearch';
  118.     foreach ($filter_array as $key_filter =>$value_filter ){
  119.         $answer['new_url'] .= '/'.$key_filter.'-';
  120.         // Определяем последний элемент из значений, для красивого оформления URL
  121.         $last_one = $value_filter;
  122.         $last_one = array_pop($last_one);
  123.         foreach ($value_filter as $one){
  124.             $answer['new_url'] .= $one;
  125.             if ($one != $last_one){
  126.                 $answer['new_url'] .= '-';
  127.             }
  128.         }
  129.     }
  130.     // Сохраняем количество квартир в списке
  131.     $answer['count'] = $count;
  132.     return $answer;
  133. }
  134.  
  135. function all_apartment($ajax){
  136.     $answer = array();
  137.     // Извлекаем отфильтрованные квартиры
  138.     $all_apartments = $ajax->filter->all_apartments();
  139.     // Включаем кэширование вывода
  140.     ob_start();
  141.     // Собираем список квартир
  142.     $current_filter_page = 1;
  143.     include_once('../tmpl/_parts/apartments_list.php');
  144.     // Сохраняем список, сверстанный в HTML
  145.     $answer['html'] = ob_get_contents();
  146.     // Очищаем кэш и выключаем кэширование
  147.     ob_end_clean();
  148.     // Включаем кэширование вывода
  149.     ob_start();
  150.     // Собираем блок с пагинацией
  151.     $filter_url_segments = $_REQUEST['url'];
  152.     $count = count($all_apartments);
  153.     include_once('../tmpl/_parts/apartments_list_pagination.php');
  154.     // Сохраняем блок с пагинацией, сверстанный в HTML
  155.     $answer['pagination'] = ob_get_contents();
  156.     // Очищаем кэш и выключаем кэширование
  157.     ob_end_clean();
  158.     // Формируем новый мета-текст
  159.     $answer['metatext'] = '';
  160.     $answer['new_url'] = '/apartmentsearch';
  161.     // Сохраняем количество квартир в списке
  162.     $answer['count'] = $count;
  163.     return $answer;
  164. }
  165.  
  166. function unset_one_filter($ajax){
  167.     $answer = array();
  168.     // Получаем текущие значения фильтров
  169.     $filter_array = value_for_filters($_REQUEST['url']);
  170.     if ($filter_array == false) {
  171.         $filter_array = array();
  172.     }
  173.     // Получаем изменение для фильтра
  174.     $filter_name = $_REQUEST['name'];
  175.     // Вносим изменение данных фильтра в массив - убираем фильтр из массива
  176.     unset($filter_array[$filter_name]);
  177.     // Извлекаем отфильтрованные квартиры
  178.     $all_apartments = $ajax->filter->filter_apartment($filter_array);
  179.     // Включаем кэширование вывода
  180.     ob_start();
  181.     // Собираем список квартир
  182.     $current_filter_page = 1;
  183.     include_once('../tmpl/_parts/apartments_list.php');
  184.     // Сохраняем список, сверстанный в HTML
  185.     $answer['html'] = ob_get_contents();
  186.     // Очищаем кэш и выключаем кэширование
  187.     ob_end_clean();
  188.     // Включаем кэширование вывода
  189.     ob_start();
  190.     // Собираем блок с пагинацией
  191.     $filter_url_segments = $_REQUEST['url'];
  192.     $count = count($all_apartments);
  193.     include_once('../tmpl/_parts/apartments_list_pagination.php');
  194.     // Сохраняем блок с пагинацией, сверстанный в HTML
  195.     $answer['pagination'] = ob_get_contents();
  196.     // Очищаем кэш и выключаем кэширование
  197.     ob_end_clean();
  198.     // Формируем новый мета-текст
  199.     $answer['metatext'] = get_meta_text($filter_array, $ajax->filter->filters_section);
  200.     //сортируем ключи в массиве правильно
  201.     $filter_array = sort_filters_url($filter_array);
  202.     // Составляем новый URL
  203.     $answer['new_url'] = '/apartmentsearch';
  204.     foreach ($filter_array as $key_filter =>$value_filter ){
  205.         $answer['new_url'] .= '/'.$key_filter.'-';
  206.         // Определяем последний элемент из значений, для красивого оформления URL
  207.         $last_one = $value_filter;
  208.         $last_one = array_pop($last_one);
  209.         foreach ($value_filter as $one){
  210.             $answer['new_url'] .= $one;
  211.             if ($one != $last_one){
  212.                 $answer['new_url'] .= '-';
  213.             }
  214.         }
  215.     }
  216.     // Сохраняем количество квартир в списке
  217.     $answer['count'] = $count;
  218.     return $answer;
  219. }
  220.  
  221. function stage_section_filter($ajax){
  222.     $answer = array();
  223.     // Получаем текущие значения фильтров
  224.     $filter_array = value_for_filters($_REQUEST['new_url']);
  225.     if ($filter_array == false) {
  226.         $filter_array = array();
  227.     }
  228.     // Извлекаем отфильтрованные квартиры
  229.     $all_apartments = $ajax->filter->filter_apartment($filter_array);
  230.     // Включаем кэширование вывода
  231.     ob_start();
  232.     // Собираем список квартир
  233.     $current_filter_page = 1;
  234.     include_once('../tmpl/_parts/apartments_list.php');
  235.     // Сохраняем список, сверстанный в HTML
  236.     $answer['html'] = ob_get_contents();
  237.     // Очищаем кэш и выключаем кэширование
  238.     ob_end_clean();
  239.     // Включаем кэширование вывода
  240.     ob_start();
  241.     // Собираем блок с пагинацией
  242.     $filter_url_segments = $_REQUEST['new_url'];
  243.     $count = count($all_apartments);
  244.     include_once('../tmpl/_parts/apartments_list_pagination.php');
  245.     // Сохраняем блок с пагинацией, сверстанный в HTML
  246.     $answer['pagination'] = ob_get_contents();
  247.     // Очищаем кэш и выключаем кэширование
  248.     ob_end_clean();
  249.     // Формируем новый мета-текст
  250.     $answer['metatext'] = get_meta_text($filter_array, $ajax->filter->filters_section);
  251.     // Переписываем URL
  252.     $answer['new_url'] = $_REQUEST['new_url'];
  253.     // Сохраняем количество квартир в списке
  254.     $answer['count'] = $count;
  255.     return $answer;
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement