1.12.7 i starsze - Przynależność do grupy na określony czas
Majkelo - 04-12-2012, 21:52 Temat postu: Przynależność do grupy na określony czas
Przynależność do grupy na określony czas
Pozwala określić czas, na jaki wybrany użytkownik zostanie dodany do danej grupy.
Kod: | ################################################################
## MOD Title: Przynależność do grupy na określony czas
## MOD Version: 1.0
## MOD Author: Majkelo < Mich.Pajor[at]gmail.com > Michał Pajor
## MOD Description: Pozwala określić czas, na jaki wybrany użytkownik zostanie dodany do danej grupy.
##
## Installation Level: Medium
## Installation Time: 6 Minute
## Files To Edit: (5)
## groupcp.php
## admin/admin_groups.php
## language/lang_polish/lang_main.php
## templates/*/groucp_info_body.tpl
## index.php
##
################################################################ |
Co modyfikacja potrafi:
Podczas dodawania użytkownika do danej grupy jest możliwość wybrania na jak długo dany user ma być przydzielony do danej grupy,
Przy dodawaniu/zmianie moderatora grupy - jego czas 'przynależenia' zawsze zmieniany jest na nieograniczony,
W widoku grupy moderator grupy (admin itd. oczywiście też) widzą kto kiedy z danej grupy wyleci.
Ten kawałek:
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');
}
} |
Odpowiada za usuwanie ludzi z grupy, których czas już minął. Jak widać, zrobiłem taki prowizoryczny warunek, dzięki czemu to zapytanie nie będzie wykonywanie cały czas, tylko wtedy, jeśli z przedziału 0-8 wylosowana zostanie cyfra 8. Jak ktoś chce to może ten warunek usunąć i wtedy to zapytanie będzie wykonywane cały czas przy wejściu w index.php, aczkolwiek przy średnio 80 użytkownikach, odwiedzających Twoje forum dziennie - nie ma sensu zbędnie obciążać forum.
No i oczywiście, jeśli chcecie dodać danego użytkownika na okres nieokreślony do grupy (na zawsze) to pole 'Na czas' zostawiacie puste. Jest tam z resztą nawet informacja o tym
W modyfikacji '1 miesiąc' to 30 dni.
To chyba na tyle informacji.
Pozdrawiam!
Piwulek - 04-12-2012, 22:00
o to chodziło... postawiłbym ci Piwo z miłą chęcią
Czy będzie można kogoś dołączyć np... do końca danego roku kalendarzowego?
Majkelo - 04-12-2012, 22:06
Nie. Na screenie jest pokazane - wpisujesz wartość i dobierasz coś z przedziału minut/godzin/dni/miesięcy (30 dni) / lat.
Piwulek - 04-12-2012, 22:56
Źle się wyraziłem... chodziło mi o to, czy przewidujesz modyfikację idącą w tą stronę, żeby zaznaczyć konkretną datę
Majkelo - 05-12-2012, 07:05
Nie wiem, zobaczymy
Anonymous - 06-12-2012, 08:33
Szczerze powiedziawszy, jeżeli nikt nie wejdzie do gorupcp to użytkownik nie zostanie usunięty z grupy
Lepiej jak zrobisz plik tymczasowy w którym będziesz zapisywać datę ( dzień po dniu [ nie chodzi o datę wygasania użytkownika ] ), jeżeli pliku nie będzie lub data nie jest aktualna to wykonujesz funkcję, która
kasuje użytkowników i uaktualnia plik tmp z datą.
Wszystko to zrobisz na bazie funkcji cachującej która jest wbudowana, warto dodać że wywołanie funkcji powinno znajdować się w pliku common oraz powinna ona być wywoływana po określonej godzinie.
Lub po prostu żyj crona
Piwulek - 06-12-2012, 09:35
Zainstalowane, sprawdzone i działa
Mimo tej małej niedoskonałości, o której wspomniałem powyżej, uważam tego moda za BARDZO przydatnego w moim przypadku
Majkelo - 06-12-2012, 13:48
Cytat: | Szczerze powiedziawszy, jeżeli nikt nie wejdzie do gorupcp to użytkownik nie zostanie usunięty z grupy |
Zawsze moźna to umieścić w common.php, nie widzę problemu.
Pawlok - 09-12-2012, 22:11
Zainstalowalem. Dalem uzytkownikowi na 2 min ale po 15 min byl dalej w grupie Nie wywalilo go z grupy;/
Anonymous - 10-12-2012, 12:51
Pawlok
mayerboss napisał/a: | Szczerze powiedziawszy, jeżeli nikt nie wejdzie do gorupcp to użytkownik nie zostanie usunięty z grupy |
Majkelo - 11-12-2012, 12:44
Pawlok napisał/a: | Zainstalowalem. Dalem uzytkownikowi na 2 min ale po 15 min byl dalej w grupie Nie wywalilo go z grupy;/ |
Wystarczy czytać dokładnie posty. Umieść sobie to w common.php, przed ?>, a gwarantuję, że usunie
Kod: | $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'); |
Anonymous - 11-12-2012, 14:26
Majkelo napisał/a: | $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'); |
WTF ????!!!!
Nie dość że +1 zapytanie dodatkowe przy wywoływaniu strony za każdym razem to jeszcze zbędne ciągłe czyszczenie cachów grup. Zrób to porządnie !
Majkelo - 11-12-2012, 14:36
mayerboss napisał/a: | Nie dość że +1 zapytanie dodatkowe przy wywoływaniu strony za każdym razem to jeszcze zbędne ciągłe czyszczenie cachów grup. Zrób to porządnie ! |
Jest zrobione porządnie i jest to także opisane wyżej.
Anonymous - 11-12-2012, 14:37
Majkelo napisał/a: |
Jest zrobione porządnie i jest to także opisane wyżej. |
To masz pojęcie o tym co robisz, gz.
EoT.
Majkelo - 11-12-2012, 14:42
Porządnie zrobione jest w załączniku w pierwszym poście i opisane. Kolega Pawlok jak zwykle nie przeczytał posta i się wielce dziwi, że po pierwszym odświeżeniu strony, nie usunęło użytkownika z grupy i mu to nie odpowiada to dostał rozwiązanie, które jest mało optymalne, ale trudno - skoro on nie potrafi poświęcić 2 min na przeczytanie dokładnie tego co napisałem w pierwszym poście to ja nie będę tracił czasu na przepisywanie drugi raz tego samego fragmentu, dostał rozwiązanie mało optymalne - trudno
mayerboss napisał/a: | To masz pojęcie o tym co robisz, gz.
EoT. |
Owszem, mam.
|
|
|