Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Вывод рейтинга и количества просмотров в topnews и relatednews

Вывод рейтинга и количества просмотров в topnews и relatednews


     19.01.2012    topnes, похожие новости    Все вопросы » Хаки    12031

вопрос
Как сделать вывод тегов {rating} и {views} в topnews.tpl и relatednews.tpl ?

Ответил: yackers


Для отображения этих тегов в relatednews.tpl

Редактируем engine/modules/show.full.php

Ищем:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE {$stop_list}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, flag, news_read, rating, vote_num FROM " . PREFIX . "_post WHERE {$stop_list}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );


Там же ищем:
$tpl2->set( '{title}', strip_tags( stripslashes( $related['title'] ) ) );


Ниже вставляем
$tpl2->set( '{views}', $related['news_read'] );
$tpl2->set( '{rating}', ShortRating( $related['id'], $related['rating'], $related['vote_num'], 0 ) );


Для отображения этих тегов в topnews.tpl

Редактируем 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" );


Заменяем на:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, flag, news_read, rating, vote_num 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" );


Ищем:
$tpl->set( '{category}', $my_cat );


Ниже вставляем
$tpl->set( '{views}', $row['news_read'] );
$tpl->set( '{rating}', ShortRating( $row['id'], $row['rating'], $row['vote_num'], 0 ) );

13 комментариев

hosts
Юзер

hosts - 19 января 2012 20:52 -

при нажатии на рейтинг пишется "Загрузка. Пожалуйста, подождите...", но рейтинг не выставляется, он выставляется только после обновления страницы. как это исправить ?

yackers
Юзер

yackers - 19 января 2012 21:22 -

Моя ошибка, я вставил просто скопированную строчку в ответ

Попробуйте вместо:
$tpl2->set( '{rating}', ShortRating( $related['id'], $related['rating'], $related['vote_num'], 0 ) );


Это:
$tpl2->set( '{rating}', $related['rating'] );


И вместо:
$tpl->set( '{rating}', ShortRating( $row['id'], $row['rating'], $row['vote_num'], 0 ) );


Это:
$tpl->set( '{rating}', $row['rating'] );


Теперь будет просто отображаться рейтинг без каких либо действий!!!

d1zzrap
Юзер

d1zzrap - 23 ноября 2015 14:09 -

Привет...
А как вывести в relatednews: просмотры и логин того кто добавил новость, ссылкой на ajax профиль?
Движок dle 10,6.
За ранее спасибо.

hosts
Юзер

hosts - 19 января 2012 22:07 -

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

yackers
Юзер

yackers - 20 января 2012 15:21 -

Ну тогда сравните в functions.php функцию ShortRating и функцию ShowRating в вашем файле с оригинальным файлом от дле и увидите где напортачили

hosts
Юзер

hosts - 20 января 2012 23:28 -

проблема в том, что я изменил стили рейтинга. поэтому пришлось прописать новые стили в ShortRating и ShowRating. а если хочу вернуть все стили обратно, то рейтинг в полной новости работает ну очень коряво.

pronchak
Юзер

pronchak - 10 февраля 2012 16:55 -

А как в версии 9.2 сделать подобную вещь. Так как строки $tpl2->set( '{title}', strip_tags( stripslashes( $related['title'] ) ) ); в файле /show.full.php я не нахожу.
Очень нужно.

Malcov
Юзер

Malcov - 2 мая 2015 17:06 -

на 10.4 количество просмотров отображает отлично, а вот рейтинга нет - что делать?

Malcov
Юзер

Malcov - 2 мая 2015 21:37 -

Может кто помочь?

ПафНутиЙ
Админ

ПафНутиЙ - 5 мая 2015 19:15 -

Используйте blockpro.

Каков вопрос - таков и ответ. Просто помните об этом.

slaze
Юзер

slaze - 6 февраля 2020 22:22 -

для dle 13.3 может кто поправить?
текущий метод работает, но перестают выводится похожие новости из тех же категорий.

SX2
Эксперт

SX2 - 7 февраля 2020 00:01 -

Для relatednews пробуйте

Самая сложная часть работы – решиться приступить к ней.

slaze
Юзер

slaze - 7 февраля 2020 11:13 -

SX2, Для relatednews пробуйте

Перед тем, как оставить здесь комент уже попробовал с вашего сайта. Там просто заменяется только вторая строчка в show.full.php и поэтому через раз отображаются просмотры и рейтинг. Т.е. заходишь в новости поля пустые, перезагружаешь страницу - отображаются. Я оставил об этом комент на вашем сайте.

Доработать нужно строчку из dle 13.3
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, MATCH (title, short_story, full_story, xfields) AGAINST ('{$body}') as score FROM " . PREFIX . "_post {$join_category}WHERE {$where_category}{$allowed_cats}{$not_allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('{$body}') AND id != " . $row['id'] . " AND approve=1" . $where_date . " ORDER BY score DESC LIMIT " . $config['related_number'] );

по аналогии с этим
$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name, e.news_read, e.rating FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$where_category}{$allowed_cats}MATCH (p.title, p.short_story, p.full_story, p.xfields) AGAINST ('$body') AND p.id != " . $row['id'] . " AND p.approve=1" . $where_date . " LIMIT " . $config['related_number'] );

Но при этом, как я понял, сохранив {$join_category}, чтобы выводились похожие из той же категории. Пробовал сам, но появляются ошибки MySQL, т.к. в таблице post_extras нету списка категорий к которым принадлежит новость.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх