DataLife Engine > Версия для печати > Topnews на отдельной странице для DLE 9.6-10.0

Данный код дает нам возможность вывести Топовые новости в DLe на отдельной странице. Но не забываем что это дополнительные дубли краткой новости. Так что я рекомендую данную категорию закрыть от индексации.
Но есть фишка которая нам поможет: хак под названием Шаблонизатор страниц краткой новости.И так с начало подключить топ новости на отдельной странице:

Открыть файл .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 = "Популярные новости, игры, фильмы...";

Естественно пишем свой заголовок.Теперь фишка с шаблонизатором краткой новости. Вы можете задать свой шаблон для topnewsТоповые новости у Вас будут выводиться по адресу: Ваш сайт/topnews/В папке своего шаблона после внесения хака шаблонизатор:

Создаем такой файл шаблона: shortstory/topnews.tpl

Автор: Sander