To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

1.12.7 i starsze - Extended warnban groups v. 2.0

japi55 - 31-05-2011, 17:22

sebul00000 napisał/a:
czyli powiedzmy, że mamy limit ostrzeżeń na 6 (przy 6 leci ban), damy komuś 3 warny, a potem edytując bądź usuwając te 3 warny, userowi zabierane są dotychczasowe grupy i przenoszony jest do tej grupy co się podaje w drugiej opcji.

Przecież cały czas tak jest.

sebul00000 - 31-05-2011, 17:49

No właśnie tak jest tylko w tym modzie, jak mamy włączoną 2 opcję. Normalnie przecież, jak ktoś dostanie ostrzeżenie, to po jego usunięciu, dalej jest w grupach, w których był przed usunięciem warna.
japi55 - 31-05-2011, 17:56

sebul00000, czyli chodzi Ci o to, aby dodać takie coś, że po usunięciu ostrzeżeń użytkownik znalazł się spowrotem w tych samych grupach co był przed trafieniem do zbanowanych?
dinotmrc - 31-05-2011, 18:06

japi55, tak.
Ja o to samo proszę, gdyż brak tej opcji jest bardzo nie praktyczny.

japi55 - 31-05-2011, 18:30

NO to zajmę się tym za kilkanaście dni.
sebul00000 - 31-05-2011, 19:33

japi55, nie do końca... Po prostu ten mod (a dokładniej jego druga opcja) powoduje, że gdy damy komuś 1 warna i od razu go usuniemy, lub edytujemy, to wtedy taka osoba wyrzucana jest z dotychczasowych grup i wrzucana jest do tej jednej podanej w 3 parametrze moda. Nie wiem jak to jeszcze inaczej napisać...
japi55 - 31-05-2011, 20:04

OK, mam rozwiązanie.

warnings.php znajdujemy:
Kod:
$sql = "SELECT userid, value
        FROM " . WARNINGS_TABLE . "
        WHERE userid = '$userid'
        AND archive = '0'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Couldnt Query value info from warnings table', '', __LINE__, __FILE__, $sql);
        }
        while ( $row = $db->sql_fetchrow($result) )
        {
            $warnings += $row['value'];
        }
        if ( $warnings < $board_config['ban_warnings'] )
        {   
            $sql = "DELETE FROM `" . USER_GROUP_TABLE . "` WHERE user_id = $userid";         
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Error deleting user from group', '', __LINE__, __FILE__, $sql);
            }   
            if ( $board_config['grupa_odbanowanych_onoff'] )
            {
                $sql = "INSERT INTO `" . USER_GROUP_TABLE . "` (group_id, user_id, user_pending) VALUES (" . $board_config['grupa_odbanowanych'] . ", $userid, 0);";         
                if ( !($result = $db->sql_query($sql)) )
                {
                    message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                }
            }
            sql_cache('clear', 'groups_desc');
            sql_cache('clear', 'user_groups');
            sql_cache('clear', 'groups_data');
        }

Zamieniamy na:
Kod:
$sql = "SELECT userid, value
        FROM " . WARNINGS_TABLE . "
        WHERE userid = '$userid'
        AND archive = '0'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, 'Couldnt Query value info from warnings table', '', __LINE__, __FILE__, $sql);
        }
        while ( $row = $db->sql_fetchrow($result) )
        {
            $warnings += $row['value'];
        }
        $sql1 = "SELECT group_id, user_id
        FROM " . USER_GROUP_TABLE . "
        WHERE user_id = '$userid'
        AND group_id = '" . $board_config['grupa_zbanowanych'] . "'";
        if ( !($result1 = $db->sql_query($sql1)) )
        {
            message_die(GENERAL_ERROR, 'Couldnt Query value info from user group table', '', __LINE__, __FILE__, $sql);
        }
        if ( ( $warnings < $board_config['ban_warnings'] ) && $row1 = $db->sql_fetchrow($result1) )
        {   
            $sql = "DELETE FROM `" . USER_GROUP_TABLE . "` WHERE user_id = $userid";         
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Error deleting user from group', '', __LINE__, __FILE__, $sql);
            }   
            if ( $board_config['grupa_odbanowanych_onoff'] )
            {
                $sql = "INSERT INTO `" . USER_GROUP_TABLE . "` (group_id, user_id, user_pending) VALUES (" . $board_config['grupa_odbanowanych'] . ", $userid, 0);";         
                if ( !($result = $db->sql_query($sql)) )
                {
                    message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                }
            }
            sql_cache('clear', 'groups_desc');
            sql_cache('clear', 'user_groups');
            sql_cache('clear', 'groups_data');
        }


Instrukcja uaktualniona.

sebul00000 - 31-05-2011, 21:25

japi55, niestety, ale chyba dalej jest to samo... Dałem najpierw 3 warny, edytowałem je na 2 i wywaliło usera z jego grupy.
Gangst3r - 31-05-2011, 21:28

U mnie nie działa :) pomimo wywalenia wersji 1.0 i wykonania od nowa wersji 1.1.1 :) Po za tym popraw instrukcję :P

Kod:
Konfiguracja modyfikacji znajduje się w PA > Konfiguracja > Dodatkowe

na
Kod:
Konfiguracja modyfikacji znajduje się w PA > Ostrzeżenia użytkowników

sebul00000 - 31-05-2011, 21:40

Teraz zauważyłem, że przy usuwaniu tych warnów, nie wywala z dotychczasowych grup, ale wystarczy edytować i wtedy już wywala. Czyli chyba tylko to zostało do poprawienia ;]
japi55 - 31-05-2011, 22:45

Problem rozwiązany :)

Warnings.php znaleźć
Kod:
$sql = "SELECT userid, value
                    FROM " . WARNINGS_TABLE . "
                    WHERE userid = '$userid'
                    AND archive = '0'";
                if ( !($result = $db->sql_query($sql)) )
                {
                    message_die(GENERAL_ERROR, 'Couldnt Query value info from warnings table', '', __LINE__, __FILE__, $sql);
                }
                while ( $row = $db->sql_fetchrow($result) )
                {
                    $warnings += $row['value'];
                }
                if ( $warnings >= $board_config['ban_warnings'] )
                {
                    $sql = "DELETE FROM `" . USER_GROUP_TABLE . "` WHERE user_id = $userid AND group_id != " . $board_config['grupa_zbanowanych'] . "";
                    if ( !($result = $db->sql_query($sql)) )
                    {
                        message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                    }   
                    $sql = "INSERT INTO `" . USER_GROUP_TABLE . "` (group_id, user_id, user_pending) VALUES (" . $board_config['grupa_zbanowanych'] . ", $userid, 0);";           
                    if ( !($result = $db->sql_query($sql)) )
                    {
                        message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                    }   
                    sql_cache('clear', 'groups_desc');
                    sql_cache('clear', 'user_groups');
                    sql_cache('clear', 'groups_data');
                }
                if ( $warnings < $board_config['ban_warnings'] )
                {
                    $sql = "DELETE FROM `" . USER_GROUP_TABLE . "` WHERE user_id = $userid";         
                    if ( !($result = $db->sql_query($sql)) )
                    {
                        message_die(GENERAL_ERROR, 'Error deleting user from group', '', __LINE__, __FILE__, $sql);
                    }
                    if ( $board_config['grupa_odbanowanych_onoff'] )
                    {
                        $sql = "INSERT INTO `" . USER_GROUP_TABLE . "` (group_id, user_id, user_pending) VALUES (" . $board_config['grupa_odbanowanych'] . ", $userid, 0);";         
                        if ( !($result = $db->sql_query($sql)) )
                        {
                            message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                        }
                    }
                    sql_cache('clear', 'groups_desc');
                    sql_cache('clear', 'user_groups');
                    sql_cache('clear', 'groups_data');    
                }

Zamienić na:
Kod:
$sql = "SELECT userid, value
                    FROM " . WARNINGS_TABLE . "
                    WHERE userid = '$userid'
                    AND archive = '0'";
                if ( !($result = $db->sql_query($sql)) )
                {
                    message_die(GENERAL_ERROR, 'Couldnt Query value info from warnings table', '', __LINE__, __FILE__, $sql);
                }
                while ( $row = $db->sql_fetchrow($result) )
                {
                    $warnings += $row['value'];
                }
                if ( $warnings >= $board_config['ban_warnings'] )
                {
                    $sql = "DELETE FROM `" . USER_GROUP_TABLE . "` WHERE user_id = $userid AND group_id != " . $board_config['grupa_zbanowanych'] . "";
                    if ( !($result = $db->sql_query($sql)) )
                    {
                        message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                    }   
                    $sql = "INSERT INTO `" . USER_GROUP_TABLE . "` (group_id, user_id, user_pending) VALUES (" . $board_config['grupa_zbanowanych'] . ", $userid, 0);";           
                    if ( !($result = $db->sql_query($sql)) )
                    {
                        message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                    }   
                    sql_cache('clear', 'groups_desc');
                    sql_cache('clear', 'user_groups');
                    sql_cache('clear', 'groups_data');
                }
                $sql1 = "SELECT group_id, user_id
                FROM " . USER_GROUP_TABLE . "
                WHERE user_id = '$userid'
                AND group_id = '" . $board_config['grupa_zbanowanych'] . "'";
                if ( !($result1 = $db->sql_query($sql1)) )
                {
                    message_die(GENERAL_ERROR, 'Couldnt Query value info from user group table', '', __LINE__, __FILE__, $sql);
                }
                if ( ( $warnings < $board_config['ban_warnings'] ) && $row1 = $db->sql_fetchrow($result1) )
                {   
                    $sql = "DELETE FROM `" . USER_GROUP_TABLE . "` WHERE user_id = $userid";         
                    if ( !($result = $db->sql_query($sql)) )
                    {
                        message_die(GENERAL_ERROR, 'Error deleting user from group', '', __LINE__, __FILE__, $sql);
                    }
                    if ( $board_config['grupa_odbanowanych_onoff'] )
                    {
                        $sql = "INSERT INTO `" . USER_GROUP_TABLE . "` (group_id, user_id, user_pending) VALUES (" . $board_config['grupa_odbanowanych'] . ", $userid, 0);";         
                        if ( !($result = $db->sql_query($sql)) )
                        {
                            message_die(GENERAL_ERROR, 'Error inserting user group subscription', '', __LINE__, __FILE__, $sql);
                        }
                    }
                    sql_cache('clear', 'groups_desc');
                    sql_cache('clear', 'user_groups');
                    sql_cache('clear', 'groups_data');    
                }

Miłego warnowania ;d

Instrukcja zaktualizowana.

sebul00000 - 01-06-2011, 00:37

Jednak jest jeszcze coś ;] Gdy user miał grupę moda, to po zbanowaniu poprzez warny usuwa go z grupy moda, ale gdy go odbanujemy (zmniejszymy ilość warnów) to dalej może pełnić funkcję moda (nie wiem czy wszystkie, ale na pewno może warnować), mimo, że jedyną jego grupą jest ta, którą wybieramy, aby odbanowani do niej automatycznie byli wrzucani.
japi55 - 01-06-2011, 18:05

Sprawdź w zezwoleniach tej grupy oraz w zezwoleniach użytkownika.
sebul00000 - 01-06-2011, 19:42

Ale której grupy? Ta grupa, która jest ustawiona, aby wrzucało do niej odbanowanych nie ma żadnych praw, a pojedynczemu userowi nie da się dać praw do warnowania.
japi55 - 01-06-2011, 23:06

Cytat:
a pojedynczemu userowi nie da się dać praw do warnowania.

Bzdura.
Wystarczy, że ten użytkownik przy którymkolwiek dziale będzie miał zaznaczone: Moderator, to będzie mógł warnować kazdego.



Powered by phpBB modified by Przemo © 2003 phpBB Group