
TopNews - тег вывода топ популярных новостей в шаблоне под управлением движка DataLife Engine, который выводится на всех страницах в блоке. Хак DLE вывести TopNews на отдельной странице, позволяет сделать целую страницу, на которой можно будет вывести весь список популярных публикаций вашего сайта, при этом красиво оформить, а при желании сделать подобное для других тегов движка дле, на основе данного примера.
Хак для DLE вывести блок topnews (лучшие новости) на отдельной странице, который разрабатывался для дле 9.7, будет работать на версии выше.
Перейдем к самой сути установки на dle9.com, чтобы получить такой эффект нам поможет редирект, благодаря чему мы сможем получить красивую ссылку типа
site ru/topnews/page/2
Открыть файл .htaccess
Найти строку:
# Редиректы
После нее вставить:
RewriteRule ^topnews(/?)+$ index.php?do=topnews [L]
RewriteRule ^topnews/page/([0-9]+)(/?)+$ index.php?do=topnews&cstart=$1 [L]
Теперь добавим основной обработчик:
Открыть файл engine/engine.php
Найти строку:
} elseif ($do == 'lastnews') {
Перед ней вставить:
} elseif ($do == 'topnews') {
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$newsmodule = true;
$url_page = $config['http_home_url'] . "topnews";
$user_query = "do=topnews";
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1" . $where_date . " ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT " . $cstart . "," . $config['news_number'];
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve=1" . $where_date;
Теперь надо прописать свой префикс для файлов кеша.
Найти строку:
} elseif ($do == "lastnews") {
Перед ней вставить:
} elseif ($do == "topnews") {
$cache_prefix = "_topnews";
Отлично, почти все. Осталось прописать заголовок для страницы.
Найти строку:
elseif ($do == 'lastnews') $nam_e = $lang['last_news'];
После нее вставить:
elseif ($do == 'topnews') $nam_e = "Популярные новости сайта dle9.com...";
Естественно пишем свой заголовок.
Вот и все :)
С уважением,
Олег Александрович a.k.a. Sander
Источник: nfhelp ru
Закачать хак вывести TopNews на отдельной странице