Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Опубликовать пост на главной если рейтинг +...

Опубликовать пост на главной если рейтинг +...


     12.08.2014    Общие вопросы    1301

вопрос
Доброго дня!
Подскажите пожалуйста хак, или если не сложно помогите реализовать.

У меня есть категория на сайте в которую пользователи постят статьи, мне необходимо сделать таким образом что бы при достижении статьёй определенного рейтинга, например +10, статья становилась видна на главной
При этом изначально она на главную не попадает.
Как реализовать данную задумку?

Заранее благодарю за помощь.

Ответил: BAHO


Кому нужно сделал ХАК с привязкой к админке

Открываем engine\inc\options.php
Находим
    showRow( $lang['group_n_restr'], $lang['group_n_restrd'], "<input class=\"edit bk\" type=text style=\"text-align: center;\"  name=\"save_con[news_restricted]\" value=\"{$config['news_restricted']}\" size=10>" );

Ниже вставляем
    showRow( $lang['allow_rating_home'], $lang['allow_rating_homed'], makeDropDown( array ("1" => $lang['opt_sys_yes'], "0" => $lang['opt_sys_no'] ), "save_con[allow_rating_home]", "{$config['allow_rating_home']}" ) );
    showRow( $lang['max_rating_home'], $lang['max_rating_homed'], "<input class=\"edit bk\" type=text style=\"text-align: center;\"  name=\"save_con[max_rating_home]\" value=\"{$config['max_rating_home']}\" size=10>" );
    showRow( $lang['min_rating_home'], $lang['min_rating_homed'], "<input class=\"edit bk\" type=text style=\"text-align: center;\"  name=\"save_con[min_rating_home]\" value=\"{$config['min_rating_home']}\" size=10>" );


Открываем engine\modules\show.full.php
Находим
    $options = news_permission( $row['access'] );

Ниже вставляем
    if( $config['allow_rating_home'] == 1 && $row['rating'] >= $config['max_rating_home'] && $row['allow_main']!=1)$db->query( "UPDATE " . PREFIX . "_post SET allow_main='1' WHERE id='{$row['id']}'" );
    if( $config['allow_rating_home'] == 1 && $row['rating'] <= $config['min_rating_home'] && $row['allow_main']!=0)$db->query( "UPDATE " . PREFIX . "_post SET allow_main='0' WHERE id='{$row['id']}'" );


Открываем language\Russian\adminpanel.lng
Находим
'group_n_restrd'        =>    "Введите количество дней, в течении которых, после регистрации на сайте, пользователям запрещено добавлять публикации на сайте. Если вы не хотите устанавливать данное ограничение, то введите 0.",

Ниже вставляем
'allow_rating_home'        =>    "Включить автоматическую публикацию поста на главной",
'allow_rating_homed'    =>    "Включить автоматическую публикацию поста на главной при условии набора определенного рейтинга. Да - включить, Нет - выключить",
'max_rating_home'        =>    "Максимальный рейтинг статьи для отображения на главной",
'max_rating_homed'        =>    "Введите число баллов при которых пост будет автоматически опубликован на главной странице сайта.",
'min_rating_home'        =>    "Минимальный рейтинг статьи для отображения на главной",
'min_rating_homed'        =>    "Введите число баллов при которых пост будет автоматически убираться с главной странице сайта.",

Редактируется показатель рейтинга в админке
Настройка системы -> Настройки вывода новостей

Получилось примерно что то такое

При такой настройке если рейтинг поста меньше -5 пост будет автоматически скрыт с главной страницы а если рейтинг поста +5 и более он автоматически будет появляться на главной.

Комментарии пользователей (6)

rocksmart
64

307 | 115

rocksmart - 12 августа 2014 12:23 - Юзер

show.full.php

после строки
$options = news_permission( $row['access'] );

Вставить
if($row['rating'] > 10 && $row['allow_main']!=1)$db->query( "UPDATE " . PREFIX . "_post SET allow_main='1' WHERE id='{$row['id']}'" );

BAHO
48

171 | 54

BAHO - 12 августа 2014 13:51 - Юзер

Спасибо!
Буду пробовать!

rashpil
33

232 | 182

rashpil - 12 августа 2014 21:24 - Эксперт

мб лучше на главной поменять параметры сортировки просто? Добавить условие что рейтинг выше нуля, отсортировать их по дате и рейтингу. Зачем лишнее то?

vitnet
218

2172 | 930

vitnet - 12 августа 2014 21:38 - Эксперт

он автоматически будет появляться на главной.

При условии что кто-то просмотрит новость :)

BAHO
48

171 | 54

BAHO - 12 августа 2014 22:15 - Юзер

За текущий день новость точно кто то просмотрит при наборе необходимого рейтинга!
Лично мне больше не надо.
Можно конечно привязать к авто очистке кеша... но тут я не знаю как сделать.
А еще лучше привязать к рейтингу))

D0Gmatist
225

794 | 281

D0Gmatist - 13 августа 2014 00:13 - Местный

Цитата: vitnet
При условии что кто-то просмотрит новость :)

А почему при выставлении рейтинга не производить проверку и снимать с главной если рейтинг < 10 и публиковать на главной если рейтинг >= 10
=)

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

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

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