phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
Przesunięty przez: Matteo
09-11-2013, 09:36
Przynależność do grupy na określony czas
Autor Wiadomość
Majkelo



Pomógł: 1283 razy
Posty: 3081
Wysłany: 04-12-2012, 21:52   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:
:arrow: Podczas dodawania użytkownika do danej grupy jest możliwość wybrania na jak długo dany user ma być przydzielony do danej grupy,
:arrow: Przy dodawaniu/zmianie moderatora grupy - jego czas 'przynależenia' zawsze zmieniany jest na nieograniczony,
:arrow: 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!
Ostatnio zmieniony przez Majkelo 08-02-2013, 23:11, w całości zmieniany 7 razy  
 
     
Gadatliwa Kasia 

   
Piwulek

Pomógł: 1 raz
Posty: 104
Wysłany: 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?
_________________
Pozdrawiam
Piwek
 
     
Majkelo



Pomógł: 1283 razy
Posty: 3081
Wysłany: 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

Pomógł: 1 raz
Posty: 104
Wysłany: 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ę :)
_________________
Pozdrawiam
Piwek
 
     
Majkelo



Pomógł: 1283 razy
Posty: 3081
Wysłany: 05-12-2012, 07:05   

Nie wiem, zobaczymy 8)
 
     
bolek i lolek
[Usunięty]

Wysłany: 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 :roll:
 
     
Piwulek

Pomógł: 1 raz
Posty: 104
Wysłany: 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 :)
_________________
Pozdrawiam
Piwek
 
     
Majkelo



Pomógł: 1283 razy
Posty: 3081
Wysłany: 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
Czarna lista


Pomógł: 2 razy
Posty: 245
Wysłany: 09-12-2012, 22:11   

Zainstalowalem. Dalem uzytkownikowi na 2 min ale po 15 min byl dalej w grupie :/ Nie wywalilo go z grupy;/
 
     
bolek i lolek
[Usunięty]

Wysłany: 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



Pomógł: 1283 razy
Posty: 3081
Wysłany: 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');
 
     
bolek i lolek
[Usunięty]

Wysłany: 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



Pomógł: 1283 razy
Posty: 3081
Wysłany: 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.
 
     
bolek i lolek
[Usunięty]

Wysłany: 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.
 
     
Gadatliwa Kasia 

   
Majkelo



Pomógł: 1283 razy
Posty: 3081
Wysłany: 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.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,12 sekundy. Zapytań do SQL: 13
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

mediaclick.pl

Polisy Ubezpieczeniowe TU Europa

Design Cart - Tworzenie sklepu internetowego

dnirozwoju.pl

Ranking Hostingów HostingOnline.pl

• Zamów reklamę