Все для DataLife Engine / DLE хаки / Хак для DLE / Хак Dle Alter TopNews переделка топ новости

Хак 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 переделка топ новости

altertopnews_9.x.rar [13,49 Kb] (cкачиваний: 202)
  • 80

Комментарии 26

djgelius от 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 помогло эту ошибку исправить
dle9.com от 24 марта 2015 16:42
Цитата: Dartus
Инструкция установки хака Alter TopNews:
1. Необходимо в файле index.php следующую строку и удалить её:

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


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

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

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


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

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

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

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

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

исправить правильное формарование ссылок?
mushyn от 12 апреля 2013 04:15
А ктото пробовал на 9.8 подскажите как там править ???
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent