Хак Dle Alter TopNews переделка топ новости

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Хак Dle Alter TopNews переделка топ новости
Представляем Вашему вниманию необычную наработку для Dle хак Alter TopNews. Это небольшая переделка или точнее переработка с целью улучшения функционала модуля популярных новостей в дле - TopNews. Попытка сделать из скудного функционала этого модуля популярных новостей TopNews, маленькое усовершенствование, вот такая мне в голову пришла мысль немного улучить стандартный модуль. Этот хак на PHP после установки, позволит вам, выводит список Топ новостей по категориям, как это сделано, к примеру, в теге Custom. ID категории при это, вы можете указывать через запятую в любом количестве. Так в хаке я предусмотрел возможности управления количеством выводимых новостей в блоке TopNews.

Установка хака Alter TopNews довольно простая, занимает несколько минут Вашего времени. Вся инструкция по установке этого хака находится в архиве. Хорошо отображается в браузерах данный хак для dle Alter TopNews, но работать он должен и на более ранних версиях Dle. После установки Alter TopNews, появляется, возможность создавать несколько блоков c топ новостями по категориям (топ 10 игр, топ 10 фильмов, топ 10 клипов и тд.).
Хак Dle Alter TopNews переделка топ новости
После установки вместо стандартного тега топ новостей
{topnews}


, теперь Вы будете использовать тег:

{topnews category="X" limit="Y"}

, где
X - это ID категорий;
Y - количество новостей в блоке Топ новостей

Пример:

{topnews category="1,3,4" limit="13"}


Инструкция установки хака Alter TopNews:
1. Необходимо в файле index.php следующую строку и удалить её:

$tpl->set ( '{topnews}', $tpl->result['topnews'] );


Далее в этом же файле ищем строку:

$config['http_home_url'] = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );


И выше нее вставляем следующий код:

if (stripos ( $tpl->copy_template, "{topnews" ) !== false) {	$tpl->copy_template = preg_replace ( "#\\{topnews category=['\"](.+?)['\"] limit=['\"](.+?)['\"]\\}#ies", "topnews_print('\\1', '\\2')", $tpl->copy_template );}


2. Открываем файл engine/modules/functions.php и ищем строку:

function check_static($names, $block, $action = true) {


Выше нее вставляем код:

function topnews_print($cat, $limit){	global $db, $_TIME;	$cat = str_replace(" ", "", $cat );	$limit = str_replace(" ", "", $limit );	$tpl = new dle_template( );	$tpl->dir = TEMPLATE_DIR;	include (ENGINE_DIR . '/modules/topnews.php');return $tpl->result['topnews'];}


3. Далее открываем файл engine/modules/topnews.php и в самом начале файла находим строку:

$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE approve=1 AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );


И заменяем её на следующий код:
$category = str_replace( ",", "','", $cat );$where_category = "category IN ('" . $category . "')";$limits=intval($limit);  	$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE $where_category AND approve=1 AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,$limits" );


ВНИМАНИЕ для 9.6 Dle заменяем её на следующий код:

$category = str_replace( ",", "','", $cat );$where_category = "category IN ('" . $category . "')";$limits=intval($limit);  	$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );


4. В нужном месте Вашего шаблона вставьте тег
{topnews category="1" limit="5"}

,где category="1" - это ID категорий интернет-портал, которые можно перечислять через запятую, наподобие Custom выборки
limit="5" - лимит или количество новостей в блоке TopNews.

5. В шаблоне можно указывать несколько Topnews тегов под разные категории: топ 10 игры, топ 10 клипов и тд.

Автор хака:Scorpio

Рекомендуем хак для dataLife engine Alter TopNews переделка топ новости
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » Адаптация модулей для Dle 9.6 на примере Icomm 6.0« Далее Хак дле боковые кнопки вверх и назад как на вконтакте
Добавление комментарияОставить комментарий
  • № :26
  • 29 сентября 2015 10:11
Цитата: Madjack
$category = str_replace( ",", "','", $cat );

$where_category = "category IN ('" . $category . "')";

$limits=intval($limit);

$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE $where_category AND p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,$limits" );


спасибо! 10,3 помогло эту ошибку исправить
  • № :25
  • 24 марта 2015 16:42
Цитата: Dartus
Инструкция установки хака Alter TopNews:
1. Необходимо в файле index.php следующую строку и удалить её:

$tpl->set ( '{topnews}', $tpl->result['topnews'] );


В 10.4 этой строки нет? Значит модуль уже нерабочий? (

большое количество кода из index.php разработчики дле перенесли в modules/main.php попробуйте найти из изменить там, может заработает
  • № :24
  • 24 марта 2015 15:47
Инструкция установки хака Alter TopNews:
1. Необходимо в файле index.php следующую строку и удалить её:

$tpl->set ( '{topnews}', $tpl->result['topnews'] );


В 10.4 этой строки нет? Значит модуль уже нерабочий? (
  • № :23
  • 7 июля 2014 18:50
Цитата: Azamatjon98
народ подскажите на 10,2 работает кто проверял ((( очень хочется установить но не хочу нагружать сервер

Не парься лучше этого
Внимание! У вас нет прав для просмотра скрытого текста.
нет, сам пользуюсь весь контент на нем радует аш.
  • № :22
  • 7 июля 2014 16:08
народ подскажите на 10,2 работает кто проверял ((( очень хочется установить но не хочу нагружать сервер
  • № :21
  • 27 декабря 2013 20:44
такая же проблема. если находишся категриии VIP то и всем другим новостям присваивается категория VIP тем самым новости не доступны
ссылка на новость формируется без каких либо категорий, то есть www.***.ru/index.php?newsid=6, если же мы заходим в категорию и нажимаем на эту же новость, то ссылка становиться такой: http://****.ru/soft/win8/index.php?newsid=6. Соответственно новость недоступна по такому адресу.
Как сделать правильную генерацию ссылок изо всех категорий сайта?

исправить правильное формарование ссылок?
  • № :20
  • 19 ноября 2013 15:42
Цитата: shevket007
Здравствуйте подскажите пожалуйста на 10 версию движка идет если нет то где можно скачать, и лимит ограничен 10 популярных новостей или можно и больше?
спасибо заранее

Привет, на 10 надо проверять...если была бы адаптация. новость была бы добавлена уже давно...читайте комментарии для 9.7 поверяйте на денвере, там будет видно

Чтобы изменить количество популярных новостей проходим в админ панель движка -- настройка системы -- Настройки вывода новостей -- Количество новостей в блоке популярных новостей меняем количество в блоке справа Сохраняем
  • № :19
  • 19 ноября 2013 15:33
Здравствуйте подскажите пожалуйста на 10 версию движка идет если нет то где можно скачать, и лимит ограничен 10 популярных новостей или можно и больше?
спасибо заранее
  • № :18
  • 12 апреля 2013 05:50
ссылка на новость формируется без каких либо категорий, то есть www.***.ru/index.php?newsid=6, если же мы заходим в категорию и нажимаем на эту же новость, то ссылка становиться такой: http://****.ru/soft/win8/index.php?newsid=6. Соответственно новость недоступна по такому адресу.
Как сделать правильную генерацию ссылок изо всех категорий сайта?

исправить правильное формарование ссылок?
  • № :17
  • 12 апреля 2013 04:15
А ктото пробовал на 9.8 подскажите как там править ???
  • № :16
  • 25 марта 2013 12:30
Madjack,
Спасибо пацан!!!!последний твой пост помог для ДЛЕ 9.7!
  • № :15
  • 8 декабря 2012 04:08
Цитата: dle9
vitapvaaa,
Какую версию движка используете ?

DLE 9.7
  • № :14
  • 7 декабря 2012 19:41
vitapvaaa,
Какую версию движка используете ?
  • № :13
  • 7 декабря 2012 19:24
Цитата: Madjack
$category = str_replace( ",", "','", $cat );

$where_category = "category IN ('" . $category . "')";

$limits=intval($limit);

$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE $where_category AND p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,$limits" );

Все сделал как по инструкции, на первый взгляд все работает, и даже на первый клик все работает, но стоит нажать на новость из TOPNEWS, из любой другой категории по мимо главной страницы, то сразу выскакивает ошибка. Так как ссылка на новость формируется без каких либо категорий, то есть www.***.ru/index.php?newsid=6, если же мы заходим в категорию и нажимаем на эту же новость, то ссылка становиться такой: http://****.ru/soft/win8/index.php?newsid=6. Соответственно новость недоступна по такому адресу.
Как сделать правильную генерацию ссылок изо всех категорий сайта?
  • № :12
  • 18 ноября 2012 10:23
3DWorld, попробуй так

3. Далее открываем файл engine/modules/topnews.php и в самом начале файла находим строку:

$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );

И заменяем её на следующий код:

$category = str_replace( ",", "','", $cat );

$where_category = "category IN ('" . $category . "')";

$limits=intval($limit);

$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE $where_category AND p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,$limits" );
  • № :11
  • 14 ноября 2012 11:56
DLE 9,7 выводит новости из всех категорий сразу

после инструкции richman вообще ощибка вышла)
  • № :10
  • 11 ноября 2012 05:10
lanry,
версия ниже есть здесь
  • № :9
  • 10 ноября 2012 23:33
У меня на 9.5 не пошла.
  • № :8
  • 24 октября 2012 04:29
на 9.6 работает, но нужны изменения - в последнем пункте изменении надо так:
3. Далее открываем файл engine/modules/topnews.php и в самом начале файла находим строку:

$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );

И заменяем её на следующий код:

$category = str_replace( ",", "','", $cat );

$where_category = "category IN ('" . $category . "')";

$limits=intval($limit);

$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE $where_category AND approve=1 AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,$limits" );
  • № :7
  • 29 июля 2012 20:08
пользуюсь дле 9.5...
  • № :6
  • 29 июля 2012 19:51
почему у меня после установки данного хака, движка в определенной категории выводит новости из всех имеющихся категорий??? wassat
  • № :5
  • 25 июля 2012 10:00
xxDOBxxx,
Проверил вроде работает (во всяком случаи категории выводятся. правда, пришлось внести изменения) , добавил некоторое изменение для 9.6 код в engine/modules/topnews.php
Смотрите выше ..
  • № :4
  • 24 июля 2012 20:42
fellow Конечно я указывал те которые я создовал! вы сами попробуйте на 9,6
  • № :3
  • 23 июля 2012 20:03
xxDOBxxx,
а, вы категории которые создали указали ??
Смотрите Админ панель-- Настройки скрипта ---Добавление новой категории , там на против категории идут ID
Их вам и нужно сначала указать в
{topnews category="1" limit="5" cache="yes"}

category="1,2,3,4" через запятую те которые нужно выводить , тогда и те которые создали будут выводиться
  • № :2
  • 23 июля 2012 19:43
Нет не пробывал! так он даже не выводит новости вот в чем проблема! он вывел у меня только одну стандартную (1) категорию(информацию) а которые я создал не выводит и них новости!!
  • № :1
  • 23 июля 2012 07:55
xxDOBxxx,
Ставил этот хак на 9,6 не работает!! он без кеша даже


{topnews category="1" limit="5" cache="yes"}
а так не пробовали ..?

ПС. случайно удалил сообщение!