Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Хаки » Количество просмотров и комментариев в {related-news}

Количество просмотров и комментариев в {related-news}


     related-news    Все вопросы » Хаки    4513

вопрос
Как вывести количество просмотров и комментов в блоке похожих новостей?
Где-то тут есть бесполезная ветка для старых версий движка, по той инструкции ничего не робит на dle 10.1

Ответил: vitnet


engine/modules/show.full.php
найти
                if ( $row['related_ids'] ) {
                    $db->query("SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE id IN({$row['related_ids']}) ORDER BY id DESC");
                    $first_show = false;
                } else {

заменить на
                if ( $row['related_ids'] ) {
                    $db->query("SELECT id, date, short_story, xfields, title, category, alt_name, news_read, comm_num FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE id IN({$row['related_ids']}) ORDER BY id DESC");
                    $first_show = false;
                } else {

далее найти
                    $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats} MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );

заменить на
                    $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, news_read, comm_num FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE {$allowed_cats} MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );

далее найти
                    $tpl2->set( '{category}', $my_cat );

ниже добавить
                    $tpl2->set( '{views}', intval( $related['news_read'] ) );
                    $tpl2->set( '{comms}', intval( $related['comm_num'] ) );

reladednews.tpl
{views} кол. просмотров
{comms} кол. комментариев

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

vitnet
PHP-developer

vitnet - -

Нужно смотреть show.full.php, вечером скину

coolteams
Юзер

coolteams - -

Отлично. Спасибо, все работает)

coolteams
Юзер

coolteams - -

Поправка небольшая у кого dle 10.1

Во втором случае заменить это:

$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$where_category}{$allowed_cats} MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );
                }

                $tpl2 = new dle_template();
                $tpl2->dir = TEMPLATE_DIR;
                $tpl2->load_template( 'relatednews.tpl' );


На вот это:

$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, news_read, comm_num FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE {$where_category}{$allowed_cats} MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );
                }

                $tpl2 = new dle_template();
                $tpl2->dir = TEMPLATE_DIR;
                $tpl2->load_template( 'relatednews.tpl' );


Ато перестанет работать функция, чтоб выводить похожие новости только из той категории, к которой относится сама новость.

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

наверх