LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
25.05.2012, 21:29:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Подтверждение модератором первого поста каждого нового пользователя (защита от спама)  (Прочитано 796 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ChaosHead
Moderator
*****

Репутация: +182/-2
Offline Offline

Сообщений: 2138



« : 08.04.2010, 02:01:19 »

Откопал на http://www.kunena.com/forum/114-hacks/15410-new-users-need-moderator-approval-for-x-first-messages, ещё даже не попробовал
решение для 1.5.9:
Хак: модератор должен подтвердить первое сообщение пользователя.

в /components/com_kunena/template/default/post.php
заменяем
Код:
$holdPost = $kunena_db->loadResult();
 
}

 
//
 
// Final chance to check whether or not to proceed
на
Код:
$holdPost = $kunena_db->loadResult();
 
}

$kuser = new CKunenaUserprofile();
if ($kuser->posts < 1) $holdPost = 1;
 
//
 
// Final chance to check whether or not to proceed

$kuser->posts < 1 - тут выставляем количество сообщений
если заменить на $kuser->karma < 1 то пользователь с кармой меньше 1 не сможет постить напрямую.
-
В общем получается либо защита от спама-флуда, либо что-то вроде бана. Я уже доработал свой форум, чтобы простые пользователи не могли менять карму. Можно поставить минусовую карму и пользователь не сможет постить напрямую без подтверждения модератора.
Записан
SergeyOl
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 134



« Ответ #1 : 08.04.2010, 13:01:49 »

Спасибо огромное, очень нужная фишка!
Записан
SergeyOl
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 134



« Ответ #2 : 08.04.2010, 13:06:49 »

ChaosHead, если не секрет расскажи как реализовал:
Я уже доработал свой форум, чтобы простые пользователи не могли менять карму. Можно поставить минусовую карму и пользователь не сможет постить напрямую без подтверждения модератора.
Записан
ChaosHead
Moderator
*****

Репутация: +182/-2
Offline Offline

Сообщений: 2138



« Ответ #3 : 08.04.2010, 13:22:17 »

Я сделал, что если пользователь Registered, то кнопочки изменения кармы не отображаются:
во view.php
Код:
                                //karma points and buttons
                                if ($fbConfig->showkarma && $userinfo->userid != '0')
                                {
                                    $karmaPoints = $userinfo->karma;
                                    $karmaPoints = (int)$karmaPoints;
                                    $msg_karma = "<strong>" . _KARMA . ":</strong> $karmaPoints";
                                    if ($kunena_my->id != '0' && $kunena_my->id != $userinfo->userid && $kunena_my->usertype != 'Registered') // Artyom - not Registered can change Karma
                                    {
                                        $msg_karmaminus = CKunenaLink::GetKarmaLink('decrease', $catid, $fmessage->id, $userinfo->userid, '<img src="'.(isset($fbIcons['karmaminus'])?(KUNENA_URLICONSPATH . $fbIcons['karmaminus']):(KUNENA_URLEMOTIONSPATH . "karmaminus.gif")).'" alt="Karma-" border="0" title="' . _KARMA_SMITE . '" align="middle" />' );
                                        $msg_karmaplus  = CKunenaLink::GetKarmaLink('increase', $catid, $fmessage->id, $userinfo->userid, '<img src="'.(isset($fbIcons['karmaplus'])?(KUNENA_URLICONSPATH . $fbIcons['karmaplus']):(KUNENA_URLEMOTIONSPATH . "karmaplus.gif")).'" alt="Karma+" border="0" title="' . _KARMA_APPLAUD . '" align="middle" />' );
                                    }
                                }
в fbprofile.php
Код:
    //karma points and buttons
    if ($fbConfig->showkarma && $userid != '0')
    {
        $karmaPoints = $userinfo->karma;
        $karmaPoints = (int)$karmaPoints;
        $msg_karma = "<strong>" . _KARMA . ":</strong> $karmaPoints";

$msg_karmaminus = '';
$msg_karmaplus = '';
        if ($kunena_my->id != '0' && $kunena_my->id != $userinfo->userid && $kunena_my->usertype != 'Registered') // Artyom - not Registered can change Karma
        {
            $msg_karmaminus .= "<a href=\"" . JRoute::_(KUNENA_LIVEURLREL . '&amp;func=karma&amp;do=decrease&amp;userid=' . $userid). "\"><img src=\"";

            if (isset($fbIcons['karmaminus'])) {
                $msg_karmaminus .= KUNENA_URLICONSPATH . $fbIcons['karmaminus'];
            }
            else {
                $msg_karmaminus .= KUNENA_URLEMOTIONSPATH . "karmaminus.gif";
            }

            $msg_karmaminus .= "\" alt=\"Karma-\" border=\"0\" title=\"" . _KARMA_SMITE . "\" align=\"middle\" /></a>";
            $msg_karmaplus .= "<a href=\"" . JRoute::_(KUNENA_LIVEURLREL . '&amp;func=karma&amp;do=increase&amp;userid=' . $userid). "\"><img src=\"";

            if (isset($fbIcons['karmaplus'])) {
                $msg_karmaplus .= KUNENA_URLICONSPATH . $fbIcons['karmaplus'];
            }
            else {
                $msg_karmaplus .= KUNENA_URLEMOTIONSPATH . "karmaplus.gif";
            }

            $msg_karmaplus .= "\" alt=\"Karma+\" border=\"0\" title=\"" . _KARMA_APPLAUD . "\" align=\"middle\" /></a>";
        }
    }
теоретически возможно это не совсем правильно, т.к. надо закрывать не отображение, а делать невозможность изменения в karma.php
этим пользователем. Но php ещё сложен для меня.
Знай я его получше уже бы сделал отдельную кнопочку - отправить пользователя в бан только для чтения на сутки. Но пока могу только сформулировать как оно должно работать, но не сделать Azn
Записан
SergeyOl
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 134



« Ответ #4 : 08.04.2010, 13:49:22 »

Отлично придумано! Надо себе тоже этот хак установить.
Записан
Iriska :)
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 53



« Ответ #5 : 24.08.2011, 17:18:08 »

Странно... файл Post.php в данной директории не нашла, отыскала его по адресу: components/com_kunena/template/default/threads/post.php

Но там нет того кода, который надо заменить Sad Где искать, что делать?
Записан
ChaosHead
Moderator
*****

Репутация: +182/-2
Offline Offline

Сообщений: 2138



« Ответ #6 : 24.08.2011, 17:56:34 »

Так версия Kunena уже наверное новая? Для Kunena 1.6.5 тут решение: http://www.kunena.org/forum/114-user-written-hacks/15410-new-users-need-moderator-approval-for-x-first-messages?limit=10&start=10#103769
Записан
Iriska :)
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 53



« Ответ #7 : 24.08.2011, 18:08:14 »

Спасибо, сделала. Проверю, как работает.

А вы не подскажете, как назначать модераторов? Вроде в админке прописала пользователю права модератора, выбрала категории для модерирования - а он не видет кнопок удаления Sad Прочитала, что нужно и в категориях вручную прописывать модератора, но когда заходишь в раздел модерации категорий, при выборе "да" идет предупреждение, что все сообщения должны быть одобрены модератором до публикации... меня этот момент немного смутил.
Записан
Iriska :)
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 53



« Ответ #8 : 25.08.2011, 09:31:39 »

Так версия Kunena уже наверное новая? Для Kunena 1.6.5 тут решение: http://www.kunena.org/forum/114-user-written-hacks/15410-new-users-need-moderator-approval-for-x-first-messages?limit=10&start=10#103769
Cкажите, пожалуйста, а вы уже тестировали это решение? А то у меня вообще перестали добавляться сообщения на форум, только сегодня обнаружила. Думаю, что это такое затишье Azn
Пока вернула все на прежнее место. Может, я что-то не так делаю?
на 130-й строке было: return false
Я вставила туда нужный код:
$this->me = $this->me = KunenaFactory::getUser($this->my);
Тогда return false спустилось на 131-ю.

После этого на 179-й строке было пусто, добавила туда:
if ( $this->me->posts < 1 ) $holdPost = 1;

И все. Получилось так, что отвечаю на форуме - а сообщение вообще не публикуется. Где я допустила ошибку?
Записан
ChaosHead
Moderator
*****

Репутация: +182/-2
Offline Offline

Сообщений: 2138



« Ответ #9 : 25.08.2011, 11:50:28 »

Нет, я не тестировал. Пост написал один из разработчиков Kunena, поэтому я так подумал, что он знает, что пишет. Это наверное лучше будет там спросить почему не работает. :/
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet