Безлимитный хостинг на сверхбыстрых SSD-дисках от 57р в месяц   •   Реклама
1 441 просм
20 комм
Поделиться:

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

29 июл
Хаки

По умолчанию в 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. Очистите кэш. На этом разрешение оценки своих материалов закончено.

20
комментариев
Форма комментирования этой статьи скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    778
      •  Администратор
    21 окт в 22:02

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

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

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

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

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

    • 0
    778
      •  Администратор
    17 окт в 23:50

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

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

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

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

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

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

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

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

    • 1
    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) и тд

    • 1
    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

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

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

    • 0
    778
      •  Администратор
    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]
    • 0
    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 группу? пытался не выходит, функции смещаются!(

    • 0
    778
      •  Администратор
    15 окт в 17:01

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

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

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

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

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

    • 0
    778
      •  Администратор
    14 окт в 18:48

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

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

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

    • 1
    22
      •  Проверенный
    23 апр в 19:14

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

    • 0
    778
      •  Администратор
    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 группы пользователей.

    • 0
    22
      •  Проверенный
    23 апр в 02:40

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

    • 0
    679
      •  Гости
    22 апр в 17:08

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

    • 0
    679
      •  Гости
    30 июл в 18:00

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

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

    • 12
    778
      •  Администратор
    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();

    }

    • 0
    679
      •  Гости
    29 июл в 22:33

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

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