Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Как сделать блок с рекомендованными новостями ?

Как сделать блок с рекомендованными новостями ?


     17.03.2019    Шаблоны (TPL), Модули, Хаки    901

вопрос
Доброго времени суток ! Товарищи, подскажите пожалуйста, как сделать блок с рекомендованными новостями ?
У меня на сайте есть категория, в которой очень много новостей, они выводятся в отдельном блоке рандомно по 4 штуки.
{custom category="10" template="custom-side1" limit="4" order="rand" cache="no"}

Как сделать, что бы рандомно выводились новости только с высоким рейтингом?

Ответил: Flash


Тестировал на 13.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 = '';
		}


В этом же файле добавляем новую функцию, можно в самый конец файла.

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;
}


Теперь можно указывать несколько критериев сортировки в параметре order, например, order="rating,reads". Можно дополнительно указывать направление сортировки - DESC, ASC . Например, для вашего случая
{custom category="10" template="custom-side1" limit="4" order="rating DESC, rand" cache="no"}


Параметр sort - игнорируется.

2 комментария

vitnet
PHP-developer

vitnet - 19 марта 2019 09:15 -

Документация по DataLife Engine

{custom category="10" template="custom-side1" limit="4" order="rating" sort="desc" cache="no"}

Flash
Эксперт

Flash - 19 марта 2019 11:13 -

Ему надо рандомно)

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

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

наверх