Pagina 1 di 2
Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 9:37
da chicks0315
Salve ecco che richiedo la mia prima mod, io ho provato a crearla da me ma non ci sono riuscito fore perchè sbaglio query.
Comunque vorrei creare nella mia pagina index.php una query che mi generi un risultato e questo risultato deve essere il numero sempre aggiornato nel giorno corrente degli utenti che si iscrivono e poi deve essere stampato a video accanto all'ultimo iscritto.
per esempio oggi è 12 agosto 2010 voglio sapere fino ad adesso quanti si sono iscritti tenendo conto che il 12 agosto parte dalle 00:00 fino alle 23:59
stampando a video nella pagina index.php dopo l'ultimo iscritto per esempio così :
ultimo iscritto Pico pallino Utenti al giorno 45
Io ci ho provato se non avete capito ve lo posso rispiegare spero mi aiuterete è da una settimana che ci provo.
EDIT: ps le mod che ho torvato fino ad adesso non sono buone perchè clcolano nel corso delle 24 ore quanti utenti si sono iscritti e questo non coincide con quello che voglio fare io perche nell'arco delle 24 ore potrebbe selezionare anche utenti del girono prima.
Re: Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 12:42
da Carlo
Hai qualche minima esperienza con il PHP? Sai interagire, tramite il PHP con MySQL?
Re: Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 14:04
da chicks0315
diciamo che l'ho studiato apparte, però se mi potete creare voi la query soltanto ve ne sarei grato la connessione al database sql la so fare è solo che non mi viene da fare la query con le variabili del mio phpbb.
Re: Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 18:23
da Micogian
Beh, è semplice.
La tabella da interrogare è "users", il valore da controllare "user_regdate" che è la data di iscrizione in codice timestamp.
Quindi il dato che ti serve è il "timestamp" delle ore 00.00 della data corrente e con la query andrai a estrarre il numero degli user_id registrati dopo questa data.
Vediamo come:
Per conoscere i dati separati di giorno, mese, anno della data corrente fai così:
Codice: Seleziona tutto
$gg = date(d) ; // giorno corrente
$mm = date(m) ; // mese corrente
$aa = date(Y) ; // anno corrente
Il timestamp delle ore 00.00 della data corrente lo trovi in questo modo:
Codice: Seleziona tutto
$data_ini = mktime(0,0,0,$mm,$gg,$aa) ; // timestamp alle ore 00 della data corrente
A questo punto hai quello che ti serve, crei una query che "estrae" tutti gli user_id successivi a quel timestamp e hai gli iscritti del giorno.
Poi crei la variabile che userai nel template.
In sostanza, crea un file di nome mod_last_user.php con questo codice:
Codice: Seleziona tutto
<?php
$gg = date(d) ; // giorno corrente
$mm = date(m) ; // mese corrente
$aa = date(Y) ; // anno corrente
$data_ini = mktime(0,0,0,$mm,$gg,$aa) ; // timestamp alle ore 00 della data corrente
$sql = "SELECT COUNT(user_id) as iscritti, user_regdate FROM " . USERS_TABLE . " WHERE user_regdate > " . $data_ini ;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$iscritti = $row['iscritti'] ;
$template->assign_vars(array(
'USERS_NEW' => $iscritti
));
?>
Nel file index.php ci aggiungi (prima della riga con il codice "// Output page") la seguente riga:
Codice: Seleziona tutto
include($phpbb_root_path . 'mod_last_users.' . $phpEx);
In questo modo tieni il file index.php più pulito, senza bisogno di inserirvi il codice della Mod.
Nel template "index_body.html" inserisci la variabile {USERS_NEW} creata dalla Mod.
Re: Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 18:38
da chicks0315
ma sei un grandeee ! io l'avevo fatta così la query ma il fatto del timestamp non mi era chiaro si vede che mi sono imbrogliato con le date normali grazie mille ora provo e poi ti dico
EDIT: funziona alla grande grazie, comunque per far comparire affianco dell'ultimo iscritto mi esce solo il numero allora io nell'index_body.html ci ho messo Utenti oggi: <strong>{variabile}</strong> e così mi esce perfettamente in stile con le altre ( tema subsilver2) però gli altri dati non sta fatto così nell'indexbody ma semplicemente mettendo la varibile. Io l'ho dichiarata la variabile nel language/common/ie ed en ma non funziona devo per forza scrivere io nell'indexbody la scritta Utenti oggi: ?
Re: Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 20:50
da Micogian
Hai il problema multilingua ?
Se è così puoi creare una variabile nel file language del tipo
'L_USERS_NEW' => 'Utenti oggi: " ,
fai la stessa cosa in inglese e metti le due variabili affiancate nel file index_body.
Altrimenti potresti anche creare la variabile fin dall'inizio nel file php:
Codice: Seleziona tutto
$template->assign_vars(array(
'USERS_NEW' => "Utenti oggi: " . $iscritti
));
Re: Utenti giornalieri aiutatemi
Inviato: 12/08/2010, 23:11
da chicks0315
infatti io avevo fatto questo prim ancora che me lo avessi detto su nel file language/en e anche in it:
'USERS_NEW' => 'Utenti oggi: " ,
Messo questo poi nell'indexbody.html metto {USERS_NEW}
e mi da solo il numero ma non la scritta "Utenti oggi:"
Dici che mi devo creare una variabile ?
Re: Utenti giornalieri aiutatemi
Inviato: 13/08/2010, 11:10
da Micogian
Questo non lo so bene, mi sembra che le variabili di lingua vadano precedute dalla stringa "L_".
In pratica dovresti inserire
per avere sia la legenda in base alla lingua che il valore.
Se poi vuoi fare a meno che venga fuori il dato se non ci sono utenti iscritti puoi fare così:
Codice: Seleziona tutto
<!-- IF USER_NEW --><strong>{L_USERS_NEW} {USERS_NEW}</strong><!-- ENDIF -->
Che in pratica non visualizza niente se USER_NEW è uguale a zero.
Naturalmente puoi anche usare dei tag CSS per assegnare lo stile.
Re: Utenti giornalieri aiutatemi
Inviato: 13/08/2010, 16:21
da chicks0315
Grazie mille ci proverò e in gironata vi dico

Re: Utenti giornalieri aiutatemi
Inviato: 14/08/2010, 16:38
da chicks0315
Salve scusate post consecutivo, praticamente sto testando la mod per gli utenti giornalieri solo che vedo che sta qualcosa di strano, per esempio ora mi dicie che fino ad adesso si sono iscritte 70 persone però se io vado alla voce iscritti e ordino in base alla data di iscrizione risolta che l'ultimo che si è iscritto oggi è il numero 58 quindi ci sono 58 utenti iscritti oggi e non 70, cosa può essere ?