Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать сортировку по категориям в фильтр?

Как сделать сортировку по категориям в фильтр?


     18.09.2020    dle, фильтр    Общие вопросы по PHP, Модули, Хаки    638

вопрос

elseif( $value != NULL && $value != "" && is_scalar($value) ) {
		if( preg_match( "#^slider-(.+)#is", $key, $matches) ) {
			if( trim($matches[1]) != "" ) {
				$key = $matches[1];
				$value = explode(';', $value);
				$value[1] = $db->safesql($value[1]);
				$value[0] = $db->safesql($value[0]);
				$where[] = "ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1 ), '||', 1))>={$value[0]} AND ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1), '||', 1))<={$value[1]}";
			}
		} elseif( preg_match( "#^from-(.+)#is", $key, $matches) ) {
			if( trim($value) != "" ) {
				$key = $matches[1];
				$where[] = "ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1 ), '||', 1))>={$value}";
			}
		} elseif( preg_match( "#^to-(.+)#is", $key, $matches) ) {
			if( trim($value) != "" ) {
				$key = $matches[1];	
				$where[] = "ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1), '||', 1))<={$value}";
			}
		} elseif( $key == $find_sort ) {
			$order_by[] = sortSqlFilter($key, $value, $db, $form_field_arr, $sort_by_const);
		} else {
			if ($key != $direction_sort) {
				$value = $db->safesql($value);
				$where[] = "SUBSTRING_INDEX(SUBSTRING_INDEX(xfields,  '{$key}|', -1), '||', 1) LIKE '%{$value}%'";
			}
		}
	}

Это кусочек кода из обработчика. Он выводит новости по значению доп поля.
Как сделать чтобы он выводил новости по категории ?
К примеру name="category"
и select список с категориями, выбираешь категорию и он показывает все что из этой категории и тд.

Ответил: LazyDev


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх