Артём Мáлков

Как разрешить пользователям оценивать свои комментарии и материалы в DLE?

29 июл28 комм

По умолчанию в DataLife Engine запрещено оценивать свои материалы. Сегодня же, с помощью внесения небольших изменений, я покажу вам, как можно снять это ограничение.

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

Разрешаем пользователям оценивать свои комментарии в DataLife Engine

2. Откройте файл ratingcomments.php в папке /engine/ajax/

3. Найдите строки (примерно 134-148):

if( $is_logged AND $allrate['user_id'] == $member_id['user_id'] ) { 
$db->close(); 
echo "{"error":true, "errorinfo":"{$lang['rating_error4']}"}"; 
die(); 
} elseif( !$is_logged AND $_IP == $allrate['ip'] ) { 
$db->close(); 
echo "{"error":true, "errorinfo":"{$lang['rating_error4']}"}"; 
die(); 
} 

Удалите или закомментируйте их.

Сохраните изменения и отправьте файл обратно на сайт.

4. Очистите кэш. На этом разрешение оценки своих комментариев закончено.

Разрешаем пользователям оценивать свои материалы в DataLife Engine

2. Откройте файл rating.php в папке /engine/ajax/

3. Найдите строки (примерно 134-140):

if( $allrate['user_id'] == $member_id['user_id'] ) { 
$db->close(); 
echo "{"error":true, "errorinfo":"{$lang['rating_error1']}"}"; 
die(); 
}

Удалите или закомментируйте их.

Сохраните изменения и отправьте файл обратно на сайт.

4. Очистите кэш. На этом разрешение оценки своих материалов закончено.

Рекомендуем к просмотру
Редактирование профиля пользователя на отдельной странице в DLE
Посты
Функция для гостей: «Подписка на новые комментарии» на DLE
Хаки
Разрешаем гостям добавлять новости на сайте в DLE
Хаки
28
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 2
    1066
      •  Команда Pandoge
    21 окт в 22:02

    Егор, внизу сайта есть форма обратной связи.

    • 1
    8
      •  Пользователь
    21 окт в 19:37

    Артем Мáлков, куда мне вам написать? Не как не получается. Даже с админам связался форма. Он говорит не знает первый раз такое видит. Почитал пару статей пытался сделать не выходит(

    • 1
    8
      •  Пользователь
    18 окт в 07:39

    Артем Мáлков, Тоже хороший способ учту. Спасибо за помощь))

    • 1
    1066
      •  Команда Pandoge
    17 окт в 23:50

    Егор, Прошу прощения за поздний ответ. Ваш вопрос решается куда проще.

    1. Заходите в панель управления сайтом.

    2. Переходите в раздел Утилиты - Фильтр по: IP, Логину или E-Mail.

    3. Создаете запрет для одного логина, по типу:

    IP, Логин или E-mail - admin

    Срок окончания бана - оставляете пустым.

    Причина бана - Логин запрещенный к регистрации.

    Добавили, и тоже самое делаете для остальных запрещенных слов.

    • 2
    8
      •  Пользователь
    17 окт в 07:25

    Артем Мáлков, Я решил вопрос вот так, вдруг кому помогу :

    открой файл register.php (modules)

    найди там

    Код:

    if( preg_match( "/[\||\'|\<|\>|\[|\]|\%|\"|\!|\?|\$|\@|\#|\/|\\\|\&\~\*\{\}\+]/", $name ) ) $stop .= $lang['reg_err_4']

    ниже вставь это

    Код:

    if( preg_match( "/^(vip)|(admin)|(bot)|(support)|(user)$/i", $name ) ) $stop .= $lang['reg_err_4'];

    registration.php (ajax)

    найти

    Код:

    if (preg_match("/[\||\'|\<|\>|\[|\]|\%|\"|\!|\?|\$|\@|\#|\/|\\\|\&\~\*\{\}\+]/",$name)) {

    $stop .= $lang['reg_err_4'];

    }

    добавить ниже

    Код:

    if( preg_match( "/^(vip)|(admin)|(bot)|(support)|(user)$/i", $name ) ) {

    $stop .= $lang['reg_err_4'];

    }

    добавляй новые ники через |

    к примеру

    |(user)|(newnick) и тд

    • 2
    8
      •  Пользователь
    16 окт в 07:54

    Артем Мáлков, - Можете помочь с последним вопросом: Хочу при регистрации убрать таки "Ники" как - admin-Administration-Moder-Moderator" Как можно это реализовать?!

    - Пытался так сделать - В файле /engine/modules/register.php добавить:

    if( preg_match( "/[admin-Administration-Moder-Moderator]/", $name ) ) $stop .= $lang['reg_err_100'];

    - В файле /engine/ajax/registration.php добавил:

    if( preg_match( "/[admin-Administration-Moder-Moderator]/", $name ) )

    {

    $stop .= $lang['reg_err_100'];

    }

    - В файле /language/Russian/website.lng добавил:

    'reg_err_100' => "Копия имени служебных лиц строга запрещена.",

    - Не работает. Можете подсказать буду очень благодарен!? draw

    • 1
    8
      •  Пользователь
    16 окт в 07:02

    Артем Мáлков, Добрый день! Всё получилось!!! Как я понимаю я так могу экспериментировать и с другими функциями. Спасибо вам большое! Если у меня будет подобная трудная проблема. Можно к вас обратиться?! smiley

    • 1
    1066
      •  Команда Pandoge
    16 окт в 00:46

    Егор, если я правильно понял, то

    <li><a href="https://kiv-max.ru/admin.php?mod=addnews&action=addnews"><span class="fa fa-plus"></span>Добавить пост</a></li>

    замените на:

    [not-group=4]<li><a href="https://kiv-max.ru/admin.php?mod=addnews&action=addnews"><span class="fa fa-plus"></span>Добавить пост</a></li>[/not-group]

    и

    <li><a href="{stats-link}"><span class="fa fa-bar-chart-o"></span>Статистика</a></li>

    замените на:

    [not-group=4]<li><a href="{stats-link}"><span class="fa fa-bar-chart-o"></span>Статистика</a></li>[/not-group]
    • 2
    8
      •  Пользователь
    15 окт в 22:49

    Артем Мáлков,

    Смотрите:

    </div>

    <ul class="lb-menu icon-l">

    [group=1-2]<li><a href="{admin-link}" target="_blank"><span class="fa fa-cog"></span>Админпанель</a></li>[/group]

    <li><a href="https://kiv-max.ru/admin.php?mod=addnews&action=addnews"><span class="fa fa-plus"></span>Добавить пост</a></li>

    <li><a href="{profile-link}"><span class="fa fa-cog"></span>Мой профиль</a></li>

    <li><a href="{pm-link}"><span class="fa fa-envelope-o"></span>Сообщения: ({new-pm})</a></li>

    <li><a href="{favorites-link}"><span class="fa fa-heart-o"></span>Мои закладки (<span id="l-fav">{favorite-count}</span>)</a></li>

    <li><a href="{stats-link}"><span class="fa fa-bar-chart-o"></span>Статистика</a></li>

    <li><a href="{newposts-link}"><span class="fa fa-file-text-o"></span>Непрочитанное</a></li>

    <li><a href="/?do=lastcomments"><span class="fa fa-comments"></span>Последние комментарии</a></li>

    <li><a href="{logout-link}"><span class="fa fa-sign-out"></span>Выйти</a></li>

    </ul>

    </div>

    Получается такой код 1-2 группа это админ и заместитель админа у меня. Так вот можно сделать группа номер 4 "пользователь и без "Статистики и добавить пост?" (Я всё в админке сделал! но ссылка есть, когда нажимают переходят на вход DLE) Можно создать как я выше описал под 4 группу? пытался не выходит, функции смещаются!(

    • 1
    1066
      •  Команда Pandoge
    15 окт в 17:01

    Egor Vladimir, ссылку на добавление Вы должны убрать сами в том файле, где у Вас формируется меню. Всего скорее - это login.tpl в теме сайта.

    Что касается функции добавления, отключить ее можно по такому пути:

    Панель управления сайтом - Пользователи - Настройка групп пользователей - Гости (или Пользователи) - Редактировать - Новости - Разрешить добавлять новости c сайта - Нет.

    • 1
    2
      •  Проверенный
    15 окт в 07:49

    Артем Мáлков, Всё я сделал. Можете подсказать как сделать что бы "Гости, Пользователи не могли добавлять новости. Я всё отключил в админке. Но когда пользователь зарегистрировался нажимает на кнопку меню там есть ссылка "+ Добавить пост" Как можно убрать именно у "Гости, Пользователи" остальным оставить?! Можете подсказать, в интернете ничего не смог найти cry

    • 1
    1066
      •  Команда Pandoge
    14 окт в 18:48

    Egor Vladimir, а что пишет, когда Вы оцениваете свои материалы?

    • 1
    2
      •  Проверенный
    14 окт в 09:56

    Артем Мáлков, Здравствуйте! Можете подсказать такая вот проблема: делаю всё как вы говорить - "Разрешаем пользователям оценивать свои материалы в DataLife Engine" = Но не выходит кэш чистил: Dle, браузер. Что это может быть?! (Строку я удалил)

    • 2
    26
      •  Проверенный
    23 апр в 19:14

    Спасибо большое за ответ!

    • 1
    1066
      •  Команда Pandoge
    23 апр в 12:18

    Артём Ройзман, блок:

    $db->close();

    echo "{\"error\":true, \"errorinfo\":\"{$lang['rating_error2']}\"}";

    die();

    в файле /engine/ajax/rating.php замените на:

    if($member_id['user_group'] != 1) {

    $db->close();

    echo "{\"error\":true, \"errorinfo\":\"{$lang['rating_error2']}\"}";

    die();

    }

    Где 1 - ID группы пользователей.

      • 1
      26
        •  Проверенный
      7 апр в 19:11

      Артём Мáлков, в принципе работает angel

      Но вот результат нужен был другой. Я наверное вопрос сформулировал не полностью.

      Сейчас можно админу голосовать сколько угодно раз, но вот загвоздка в том что количество голосов не меняется, а это было необходимо.

      Благодарю за ваш возможный ответ wink

      • 1
      1066
        •  Команда Pandoge
      7 апр в 19:23

      Артём Ройзман, хм, а кэш чистили?

      • 1
      26
        •  Проверенный
      7 апр в 19:26

      Артём Мáлков, да, неоднократно. Dle 13.3.

      Сама оценка меняется при повторных нажатиях, но кол-во проголосовавших не меняется. Соответственно средний рейтинг остаётся таким же как и был ранее.

      • 1
      1066
        •  Команда Pandoge
      7 апр в 19:31

      Артём Ройзман, аа.. ну все логично.

      > кол-во проголосовавших.

      Количество человек же не изменилось.

      • 1
      26
        •  Проверенный
      7 апр в 19:32

      Артём Мáлков, ну вот да) А как сделать чтобы менялось? lol

      • 1
      1066
        •  Команда Pandoge
      11 апр в 22:29

      Артём Ройзман, есть возможность предоставить доступы?

      • 1
      26
        •  Проверенный
      11 апр в 22:34

      Артём Мáлков, я на локалке обкатываю всё ещё DLE.

      • 1
      1066
        •  Команда Pandoge
      11 апр в 23:13

      Артём Ройзман, TeamViewer?

    • 1
    26
      •  Проверенный
    23 апр в 02:40

    Артём, а как сделать чтобы только админ мог многократно оценивать новости, и больше никто кроме него?

    • 1
    766
      •  Гости
    22 апр в 17:08

    Спасибо Артем! Весьма полезно )

    • 1
    766
      •  Гости
    30 июл в 18:00

    Работает. Спасибо большое!

    Отличный блог!!!

    • 13
    1066
      •  Команда Pandoge
    30 июл в 01:42

    Андрей, конечно. smiley

    Для комментариев, удаляем или комментируем:

    else {

    $db->close();

    echo "{\"error\":true, \"errorinfo\":\"{$lang['rating_error5']}\"}";

    die();

    }

    Тоже самое для новостей:

    else {

    $db->close();

    echo "{\"error\":true, \"errorinfo\":\"{$lang['rating_error2']}\"}";

    die();

    }

    • 1
    766
      •  Гости
    29 июл в 22:33

    Артем, спасибо за хак! А не знаешь как отключить проверку, чтобы можно было многократно оценивать?

Подняться наверх
«Pandoge» - помощник вебмастера