Редактирование рейтинга через админку - хак для DLE
Описание
Отзывы и вопросы (0)
Описание

В любом случае, если не подойдет, то можно доработать.
Описание
Данный хак позволяет выставлять и изменять рейтинг новостей прямо в админ панели. Редактирование происходит на странице списка всех новостей. Вот как это выглядит:При нажатии на рейтинг, он становится редактируемым. При записи нового значения и нажатии Enter, он сохраняется.
Хочу заметить, что будем редактировать файлы скрипта, что не рекомендуют делать разработчики движка. А так же будем менять тип поля в базе для того, что бы можно было вносить рейтинг вида IMBD - по просьбе заказчика. Если Вам нужен стандартный рейтинг, то не вносите изменения в базе.
Установка и настройка
0. Загрузите файл edit_rating.php в папку engine/ajax1. В файле engine/inc/editnews.php найти строку, примерно 511:
<td class="news-list-tab" style="width: 60px"><i class="icon-eye-open tip" data-original-title="{$lang['st_views']}"></i></td>
ниже вставить:<td class="news-list-tab" style="width: 60px"><i class="icon-star"></i></td>
2. В этом же файле найти строку, примерно 285:
$entries .= "<a title='{$lang['edit_act']}' href=\"?mod=editnews&action=editnews&id={$row['id']}\">{$title}</a> <td class=\"news-list-tab\" style=\"text-align: center\"><a data-original-title=\"{$lang['st_views']}\" class=\"status-info tip\" href=\"{$full_link}\" target=\"_blank\">{$row['news_read']}</a></td><td class=\"news-list-tab\" align=\"center\">" . $comm_link;
заменить на:$entries .= "<a title='{$lang['edit_act']}' href=\"?mod=editnews&action=editnews&id={$row['id']}\">{$title}</a> <td class=\"news-list-tab\" style=\"text-align: center\"><a data-original-title=\"{$lang['st_views']}\" class=\"status-info tip\" href=\"{$full_link}\" target=\"_blank\">{$row['news_read']}</a></td><td class=\"news-list-tab\" style=\"text-align: center\"><a href=\"#\" class='my_rating' data-id=\"".$row['eid']."\">".$row['rating']."</a></td><td class=\"news-list-tab\" align=\"center\">" . $comm_link;
3. В этом же файле найти строку, примерно 186:
$db->query( "SELECT p.id, p.date, p.title, p.category, p.autor, p.alt_name, p.comm_num, p.approve, p.fixed, e.news_read, e.votes FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) " . $where . " ORDER BY " . $order_by . " LIMIT $start_from,$news_per_page" );
и заменить на:$db->query( "SELECT p.id, p.date, p.title, p.category, p.autor, p.alt_name, p.comm_num, p.approve, p.fixed, e.news_read, e.votes, e.eid, e.rating FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) " . $where . " ORDER BY " . $order_by . " LIMIT $start_from,$news_per_page" );
4. Найти в базе данных таблицу dle_post_extras и изменить тип поля rating с INT на DECIMAL со значением 2,1 (Это если Вы хотите сделать рейтинг типа IMBD).
на картинках пример:


5. В самый конец файла добавить код:
Внимание! У Вас нет прав для просмотра скрытого текста.
Для того что бы с сайта никто не могу выставить рейтинг, зайдите в файл engine/ajax/rating.php и на строке 17 просто вставьте: exit;
Что бы вывести рейтинг в новостях, вставьте шорт-код: {my-rating} в любое место shortstory.tpl и fullstory.tpl
Затем откройте файл engine/modules/show.short.php и найдите код, примерно 388 строка:
Внимание! У Вас нет прав для просмотра скрытого текста.
после него вставьте:
$tpl->set( '{my-rating}', $row['rating'] );
Теперь в файле engine/modules/show.full.php, найдите строки с таким же кодом, как и в предыдущем пункте примерно 768:
и ниже вставьте такой же код:
$tpl->set( '{my-rating}', $row['rating'] );
Вот и все изменения.
Напоминаю, что я пишу любые модули под DLE любой версии, разумеется платно. Кому нужна помощь пишите в скайп внизу сайта или в обратную связь.
Источник: https://kylaksizov.ru/125-redaktirovanie-reytinga-cherez-adminku-hak-dlya-dle.html