Шаблоны для DLE » Модули » Редактирование рейтинга через админку DLE

Представляем вам такой модуль который позволит выставлять, а также изменять существующий рейтинг у новостей прямо через админ-панель DLE. Редактирование рейтинга происходит на самой странице списка всех новостей. Можете посмотреть на скриншоте как это все выглядит ниже в этой статье. При нажатии на сам рейтинг, он становится редактируемым. При записи нового значения и при нажатии Enter, он сохраняется.


1. Загрузить из архива edit_rating.php в папку engine/ajax/.


2. Открыть 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>



Найти еще (строка ~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;


Найти еще (строка ~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" );



Добавить в самый конец:

<script>
    $(function(){
        $(document).on("click", ".my_rating", function(){
            var rating_id = $(this).attr("data-id");
            var old_rating = $(this).text();
            $(this).replaceWith('<input type="text" class="edit_rating" style="width: 40px; height: 18px; text-align: center;" value="'+old_rating+'" data-id="'+rating_id+'">');
            $(".edit_rating").select();
            return false;
        })
        $(document).on("keydown", ".edit_rating", function(event){
            var el = $(this);
            var rating_id = $(this).attr("data-id");
            var new_rating = $(this).val();
            if(event.keyCode==13){
               $.ajax({
                   type: 'POST',
                   url: "<?php echo $config["http_home_url"]; ?>engine/ajax/edit_rating.php",
                   dаta: {
                       "new_rating": new_rating,
                       "eid": rating_id
                   },
                   dataType: 'text',
                   success: function(data){
                       if(data == 1){
                           if(new_rating.length <= 1) new_rating = new_rating + ".0";
                           el.replaceWith('<a href="#" class="my_rating" data-id="'+rating_id+'">'+new_rating+'</a>');
                       }
                       else alert(data);
                   }
               });
                return false;
            }
        });
    })
</script>



3. Найти в базе данных таблицу dle_post_extras и изменить тип поля rating с INT на DECIMAL со значением 2,1 (если хотите рейтинг типа IMBD): ( смотрите скриншот 2 )


4. Чтобы с сайта никто не мог выставить рейтинг, в engine/ajax/rating.php на строке 17 просто добавить:

exit;



5. Для вывода рейтинга в новостях, следует добавить в любое место shortstory.tpl и fullstory.tpl:

{my-rating} 



6. Открыть engine/modules/show.short.php и найти (строка ~388):

else {
            
            $tpl->set( '{rating}', "" );
            $tpl->set( '{vote-num}', "" );
            $tpl->set_block( "'\\[rating\\](.*?)\\[/rating\\]'si", "" );
            $tpl->set_block( "'\\[rating-plus\\](.*?)\\[/rating-plus\\]'si", "" );
            $tpl->set_block( "'\\[rating-minus\\](.*?)\\[/rating-minus\\]'si", "" );
        }



Добавить ниже:

$tpl->set( '{my-rating}', $row['rating'] );



7. Открыть engine/modules/show.full.php, найти строки с кодом как в предыдущем пункте (строка ~768) и добавить ниже:

$tpl->set( '{my-rating}', $row['rating'] );


Все!


Скачать Редактирование рейтинга через админку DLE
Если файл не прогрузился, обновите страницу F5!
edit_rating.rar | 6 | 703 b | 24-12-2023, 9:07
  • Версия DLE: 11.x
  • Кодировка: utf-8
  • Категория: Модули
  • Автор: Kylaksizov
  • Комплектация: модуль

собрано 3050.00 рублей Поддержать автора

Войдите на сайт


Все собранные средства будут переданы автору этой статьи - DEN
Сумма перевода от 10.00 рублей
предыдущая: DLE Starter Kit 1.0.3
00
632
0
24-12-2023, 09:12
Обсудить (0)
Похожие модули
Комментарии
Минимальная длина комментария - 10 знаков, комментарии могут модерироваться!
Комментариев еще нет. Вы можете стать первым!
Помощь в публикации комментариев:
1.) Если вы хотите задать вопрос, тогда просто оставьте комментарий, не нужно вопрос добавлять в ответ.
2.) Если вы хотите ответить на комментарий, для этого есть кнопка "ответить" под нужным вам вопросом.
  • 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
Мы ценим вашу конфиденциальность
Мы используем файлы "cookie" на нашем веб-сайте, чтобы предоставить вам наиболее релевентный результат, помня ваши предпочтения и повторные посещения.
Нажимая "Принять" вы соглашаетесь на использование всех файлов "cookie".
Принять
Не принимаю
Показать цели
X

Платные услуги новостей