Рандомный вывод новостей только с высоким рейтингом

Рандомный вывод новостей только с высоким рейтингом

Небольшой хак поможет вывести на сайте, например, блок с рекомендуемыми новостями. При этом новости будут выводится рандомно и только с высоким рейтингом.
 
Установка:
1. Открыть engine/modules/functions.php и найти:
if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]];

Добавить выше:
		if ($str = parse_sort($match[1], $allowed_sort)) {
			$news_sort = $str;
			$news_msort = '';
		}

В самом низу functions.php добавить:
function parse_sort($sort_string, $allowed_sort) {
	$result = '';

	if (strpos($sort_string, ',') !== false) {
		$parts = explode(',', $sort_string);
		
		foreach ($parts as $value) {
			$value = trim($value);
			$arr = explode(' ', $value);
			$arr = array_map('trim', $arr);
			list($order, $direction) = $arr;
			$direction = strtoupper($direction);
			
			if (!empty($allowed_sort[$order])) {
				$result .= ($result ? ', ' : '').$allowed_sort[$order];
				if ($direction and in_array($direction, array('ASC', 'DESC')) and $order != 'rand')
					$result .= ' '.$direction;
			}
		}
	}
	
	return $result;
}

2. В нужное место main.tpl добавить, например:
{custom category="10" template="custom-side1" limit="4" order="rating DESC, rand" cache="no"}

Теперь можно указывать несколько критериев сортировки в параметре order, например order="rating,reads". Можно дополнительно указывать направление сортировки - DESC или ASC. Параметр sort - игнорируется.

Готово!
 
Версия DLE: 13.1
 
Автор: Flash
Источник:
  • Oxigen
  • 0
  • 95
Информация
Оставлять комментарии могут только зарегистрированные посетители.
  • Рейтинг@Mail.ru
  • Яндекс.Метрика