0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 2355 Просмотров
*

ChaosHead

  • Moderator
  • 5241
  • 451 / 13
Откопал на 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

  • Захожу иногда
  • 110
  • 5 / 0
Спасибо огромное, очень нужная фишка!
*

SergeyOl

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

ChaosHead

  • Moderator
  • 5241
  • 451 / 13
Я сделал, что если пользователь 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 ещё сложен для меня.
Знай я его получше уже бы сделал отдельную кнопочку - отправить пользователя в бан только для чтения на сутки. Но пока могу только сформулировать как оно должно работать, но не сделать :)
*

SergeyOl

  • Захожу иногда
  • 110
  • 5 / 0
Отлично придумано! Надо себе тоже этот хак установить.
*

Iriska :)

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

Но там нет того кода, который надо заменить :( Где искать, что делать?
*

Iriska :)

  • Захожу иногда
  • 58
  • 1 / 0
Спасибо, сделала. Проверю, как работает.

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

Iriska :)

  • Захожу иногда
  • 58
  • 1 / 0
Так версия 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кажите, пожалуйста, а вы уже тестировали это решение? А то у меня вообще перестали добавляться сообщения на форум, только сегодня обнаружила. Думаю, что это такое затишье :)
Пока вернула все на прежнее место. Может, я что-то не так делаю?
на 130-й строке было: return false
Я вставила туда нужный код:
$this->me = $this->me = KunenaFactory::getUser($this->my);
Тогда return false спустилось на 131-ю.

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

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

ChaosHead

  • Moderator
  • 5241
  • 451 / 13
Нет, я не тестировал. Пост написал один из разработчиков Kunena, поэтому я так подумал, что он знает, что пишет. Это наверное лучше будет там спросить почему не работает. :/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Статус пользователя offline, хотя в админке его видно

Автор angemax

Ответов: 8
Просмотров: 4039
Последний ответ 19.01.2022, 05:40:21
от Alexvip
При нажатии на профиль пользователя, выбрасывает на главную страницу

Автор snezhnobelaya

Ответов: 5
Просмотров: 1002
Последний ответ 27.11.2019, 23:28:20
от snezhnobelaya
Есть ли карма для пользователя на Kunena?

Автор User82

Ответов: 3
Просмотров: 822
Последний ответ 12.10.2019, 12:23:59
от Cedars
Блокировка пользователя модератором и кнопка Спасибо

Автор aleksanders

Ответов: 0
Просмотров: 744
Последний ответ 04.02.2019, 10:57:18
от aleksanders
Уникальная иконка для каждого раздела

Автор slepoy

Ответов: 56
Просмотров: 20120
Последний ответ 22.05.2018, 16:33:46
от zotchiy