1.12.7 i starsze - Przynależność do grupy na określony czas
Majkelo - 11-12-2012, 15:01
Aktualizacja - osoby, które instalowały modyfikację przed datą tego postu niech usuną z groupcp.php ten wpis:
Kod: | if ( rand(0, 8) == 8 )
{
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_delete_time > 0
AND user_delete_time <= " . CR_TIME . "";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
}
sql_cache('clear', 'groups_data');
} |
A następnie w index.php po tym:
Kod: | //
// End session management
// |
dodajemy to:
Kod: | if ( rand(0, 8) == 8 )
{
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_delete_time > 0
AND user_delete_time <= " . CR_TIME . "";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
}
if ( mysql_affected_rows() > 0 )
{
sql_cache('clear', 'groups_data');
}
} |
Aktualizacja ma głównie za zadanie ograniczyć czyszczenie cachu, jesli jest to niepotrzebne.
Pawlok - 11-12-2012, 18:11
Majkelo napisał/a: | Kolega Pawlok jak zwykle nie przeczytał posta i się wielce dziwi |
??
Jak zwykle?? Wypraszam sobie bardzo.
"kolego''
MQs - 19-12-2012, 12:37
Proponuję małe uproszczenie (bo mod niepotrzebnie koliduje z moim "moderator spoza grupy" )
w groupcp.php zamiast:
Kod: | //
// Get moderator details for this group
//
$sql = "SELECT ug.group_id, ug.user_id, ug.user_delete_time, u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_yim, u.user_msnm
FROM " . USERS_TABLE . " u LEFT JOIN " . USER_GROUP_TABLE . " ug
ON u.user_id = ug.user_id
WHERE u.user_id = " . $group_info['group_moderator'] . " AND ug.group_id = " . $group_id . ""; | Wystarczy dać:
Kod: | //
// Get moderator details for this group
//
$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_yim, user_msnm, 0 AS user_delete_time
FROM " . USERS_TABLE . "
WHERE user_id = " . $group_info['group_moderator']; |
Czyli praktycznie dodać na końcu pól z selecta w oryginalnym zapytaniu:
Kod: | , 0 AS user_delete_time | (group_id chyba nie jest potrzebne, a user_id się powtarza).
Poza tym w admin/admin_groups.php zapytanie ustawiające moderatorowi czas na 0 nie musi być wykonywane za każdym razem tylko w przypadku zmiany moda. Można je dodać po tym:
Kod: | if ( !($row = $db->sql_fetchrow($result)) )
{
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
VALUES (" . $group_id . ", " . $group_moderator . ", 0)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql);
}
} | Jako:
Kod: | else
{
$sql = "UPDATE " . USER_GROUP_TABLE . " SET user_delete_time = 0 WHERE user_id = $group_moderator";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql);
}
} |
Fredx121 - 14-04-2013, 22:35
Sory, że taki odkop ale mi wyskakuje taki blad gdy chce dodac kogos do grupy
Could not add user to group
DEBUG MODE
INSERT INTO phpbb_user_group (user_id, group_id, user_pending, user_delete_time) VALUES (85, 6, 0, 0)
Line : 554
File : groupcp.php
Jeśli nie potrafisz znaleźć rozwiązania tego problemu,
możesz spróbować poszukać, lub zadać pytanie na forum: http://www.przemo.org/phpBB2/
Majkelo - 15-04-2013, 23:30
Zapytanie do SQL wykonałeś ?
szczurekPROS - 22-04-2014, 19:32
Witam. Działa ten mod na wersji 1.12.8?
|
|
|