Loading...

Редактирование рейтинга через админку - хак для DLE

Данный хак создан на заказ и опубликован бесплатно с разрешения самого заказчика.
Он создавался для версии 10.6, но не исключено, что он не подойдет и для новых версий.
В любом случае, если не подойдет, то можно доработать.

Описание

Данный хак позволяет выставлять и изменять рейтинг новостей прямо в админ панели. Редактирование происходит на странице списка всех новостей. Вот как это выглядит:
 

При нажатии на рейтинг, он становится редактируемым. При записи нового значения и нажатии Enter, он сохраняется.
Хочу заметить, что  будем редактировать файлы скрипта, что не рекомендуют делать разработчики движка. А так же будем менять тип поля в базе для того, что бы можно было вносить рейтинг вида IMBD - по просьбе заказчика. Если Вам нужен стандартный рейтинг, то не вносите изменения в базе.

Установка и настройка

0. Загрузите файл edit_rating.php в папку engine/ajax
Скачать файл: edit_rating.zip [574 b] (cкачиваний: 9)

1. В файле 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 любой версии, разумеется платно. Кому нужна помощь пишите в скайп внизу сайта или в обратную связь.

Автор: Kylaksizov
Поделиться:

Комментарии ( 8 )


  1. avatar_//kylaksizov.ru/uploads/fotos/foto_717.jpg
    Александр Романюха 2 апреля 2017 15:16
    • 0
    Ответить
    Отличный модуль, все работает как надо! Спасибо
  2. avatar_//kylaksizov.ru/uploads/fotos/foto_837.gif
    Segoro 9 февраля 2018 04:09
    • 0
    Ответить
    Не работает. И в скрипте нет файла
    engine/ajax/edit_rating.php
    1. avatar_//kylaksizov.ru/uploads/fotos/foto_1.jpg
      Kylaksizov 9 февраля 2018 06:34
      • 0
      Ответить
      Не может быть такого. Вы делаете на версии 10.6 ? И откуда вы взяли файл engine/ajax/edit_rating.php если я нигде его не упоминаю?
  3. avatar_//kylaksizov.ru/uploads/fotos/foto_837.gif
    Segoro 9 февраля 2018 06:37
    • +1
    Ответить
    Ну как же не упоминаете


    Я пытаюсь этот хак прикрутить к DLE 11.1, так как он по идее мне понравился))
    1. avatar_//kylaksizov.ru/uploads/fotos/foto_1.jpg
      Kylaksizov 9 февраля 2018 07:21
      • +1
      Ответить
      Спасибо за замечание, видимо я вообще упустил загрузить этот файл. Как проверю все, загружу сюда этот файл.

      Добавил файл в нулевой пункт
      1. avatar_//kylaksizov.ru/uploads/fotos/foto_837.gif
        Segoro 9 февраля 2018 07:44
        • 0
        Ответить
        Вот теперь всё работает замечательно. Огромное спасибо))
        Правда, не хватает поля для редактирования сколько человек поставило оценку, но это уже мелочи smile
        1. avatar_//kylaksizov.ru/uploads/fotos/foto_1.jpg
          Kylaksizov 9 февраля 2018 07:46
          • 0
          Ответить
          Согласен. Если владеете php, то добавить не составит труда. Может и я добавлю, но сейчас нет времени.
          1. avatar_//kylaksizov.ru/uploads/fotos/foto_837.gif
            Segoro 9 февраля 2018 07:47
            • 0
            Ответить
            Я сам добавлю, ещё раз спасибо.
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent


В корзине: 0 шт. 0 руб.
Отключите расширение AdBlock на нашем сайте!
    Нименование Количество Цена / 1 шт.
    Всего: 0 руб.