[MOD] Utenti Giornalieri

Started by FaSan, August 25, 2004, 12:34:32 PM

Previous topic - Next topic

FaSan

Elisa, non ho ben capito... cos'è che vuoi fare ?  :-\

Elisa

Io nella pagina delle statistiche, dove ora compaiono per ogni giorno il numero dei nuovi iscritti, il numero max utenti online..., vorrei avere anche il numero totale degli utenti connessi!!! Come faccio????

FaSan

ahhh ecco  :D

Ma li vuoi mantenere giornalmente ? Se sì, teoricamente aggiungendo un campo alle statistiche giornaliere. Non dovrebbe essere troppo complicato. Vedo di farti avere il codice in serata  ;)

Se vuoi solo la punta massima, come sopra, in serata ti faccio avere entrambi ;)


F.

Elisa

No io vorrei avere ogni giorno il totale degli utenti connessi.

FaSan

Quote from: Elisa on August 25, 2004, 12:49:22 PM
No io vorrei avere ogni giorno il totale degli utenti connessi.

Ok Capito...  ;D

Cmq mi sà che mi ci vorrà un pò più di tempo... ho creato la struttura, il campo, la visualizzazione e la lettura... ma nell' inserimento diventa complicata  8)

Ci dovrò lavorare un pò sù... se vuoi intanto ti posto il resto.


F.

Elisa

Grazie! Poi mandami il conto.
Aspetto quando è completo, faccio meno casino!

FaSan

Bah... sono bloccato su una ca...beep... di query e non ne vengo fuori.

Coming Soon  ;)

FaSan

Quote from: FaSan on August 30, 2004, 08:20:24 PM
Bah... sono bloccato su una ca...beep... di query e non ne vengo fuori.

Coming Soon  ;)


8) 8) 8) ehhhhhh Bingoooooo  8)

Mi è giunta una dritta di Unknown, e finalmente la Mod è finita (meno male, questa volta davvero non sapevo che pesci pigliare hehehe).

Invece di legare questo thread all'altro, in area English, riposto le modifiche fatte, in modo di avere un quadro completo della situazione.
Inoltre, ho dovuto cambiare un paio di cosine al codice originario, quindi posterò direttamente il nuovo.

FaSan

Questa è la MOD che visualizza TUTTI gli utenti che si sono collegati al Vostro forum nella giornata di oggi. Inoltre aggiunge una nuova casella nelle statistiche giornaliere dove verrà inserito il numero di utenti totali collegati in qual dato giorno:

Innanzitutto bisogna aggiungere una colonna alla tabella MYSQL "log_activity". Potete farlo da PHPMyAdmin, con la seguente linea di comando :


ALTER TABLE {$db_prefix}log_activity ADD allOn smallint(5) unsigned NOT NULL default '0';


(Sostituendo "{$db_prefix}" con il suffisso del vostro DB (normalmente "smf_")


Dopidichè le seguenti modifiche :

BoardIndex.php


<Search>
// Load the users online right now.
</Search>

<Add Before>
// Load the users online today.

$midnight = ((date("U") - (date("H") * 3600)) - (date("i") * 60));

// Load the users online for the past 24 hours.
$result = db_query("
SELECT
mem.ID_MEMBER, mem.realName, mem.memberName, mem.ID_GROUP, mem.showOnline, mem.avatar, mem.lastLogin, mem.posts,
mg.onlineColor
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = mem.ID_GROUP OR (mem.ID_GROUP = 0 AND mg.ID_GROUP = mem.ID_POST_GROUP))
WHERE mem.lastLogin >= '$midnight'
ORDER BY mem.realName", __FILE__, __LINE__);

$today['users'] = array();
$today['num_users'] = 0;
$link = '';

while ($tmp = mysql_fetch_assoc($result))
{
$link .= '<a href="' . $scripturl . '?action=profile;u=' . $tmp['ID_MEMBER'] . '" style="color: ' . $tmp['onlineColor'] . ';">' . $tmp['realName'] . '</a>, ';
$today['num_users']++;
}

mysql_free_result($result);

$context['user_today'] = $link;
$context['num_users_today'] = $today['num_users'];

              trackStats(array('allOn' => $context['num_users_today']));
</Add Before>



BoardIndex.template.php


<Search>
// If they are logged in, but SP1 style information is off... show a personal message bar.
</Search>


<Add Before>
// "Users online Today"
echo '
<tr>
<td class="catbg" colspan="2">', $txt['158bis'], ' ( ', $context['num_users_today'], ' ', $context['num_users_today'] == 1 ? $txt['user'] : $txt['users'], ' )</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center"><img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt['158bis'], '" border="0" /></td>
<td class="windowbg2" width="100%"><span class="smalltext">', $context['user_today'], '</span></td></tr>';
</Add Before>




Modifications.english.php


<Search>
// Version: 1.0 RC1; Modifications
</Search>

<Add After>
$txt['158bis'] = 'OnLine Users Today';
$txt['smf_stats_14bis'] = 'OnLine Day Users';
</Add After>



Modifications.italian.php


<Search>
// Version: 1.0 RC1; Modifications
</Search>

<Add After>
$txt['158bis'] = 'Utenti OnLine nella Giornata di Oggi';
$txt['smf_stats_14bis'] = 'Presenze OnLine Giornaliere';
</Add After>



Stats.template.php


<Search>
<td>', $txt['smf_stats_14'], '</td>';
</Search>

<Replace>
<td>', $txt['smf_stats_14'], '</td>
<td>', $txt['smf_stats_14bis'], '</td>
</Replace>

<Search>
<th align="center">', $month['most_members_online'], '</th>';
</Search>

<Replace>
<th align="center">', $month['most_members_online'], '</th>
<th align="center">', $month['all_members_online'], '</th>';
</Replace>

<Search>
<td align="center">', $day['most_members_online'], '</td>';
</Search>

<Replace>
<td align="center">', $day['most_members_online'], '</td>
<td align="center">', $day['all_members_online'], '</td>';
</Replace>




Stats.php


<Search>
MAX(mostOn) AS mostOn
</Search>

<Replace>
MAX(mostOn) AS mostOn, MAX(allOn) AS allOn
</Replace>


<Search>
'most_members_online' => $row_months['mostOn'],
'hits' => $row_months['hits'],
</Search>

<Replace>
'most_members_online' => $row_months['mostOn'],
'all_members_online' => $row_months['allOn'],
'hits' => $row_months['hits'],
</Replace>


<Search>
SELECT YEAR(date) AS stats_year, MONTH(date) AS stats_month, DAYOFMONTH(date) AS stats_day, topics, posts, registers, mostOn, hits
</Search>

<Replace>
SELECT YEAR(date) AS stats_year, MONTH(date) AS stats_month, DAYOFMONTH(date) AS stats_day, topics, posts, registers, mostOn, allOn, hits
</Replace>


<Search>
'most_members_online' => $row_days['mostOn'],
'hits' => $row_days['hits
</Search>

<Replace>
'most_members_online' => $row_days['mostOn'],
'all_members_online' => $row_days['allOn'],
'hits' => $row_days['hits']
</Replace>






FaSan

Elisa

Per ora dico mille mille mille grazie!!!
Domani la provo!!!!

Elisa

L'ho montataaaaaaaaaaaaaaaaaaa!!! Sono riuscita anche se non ho ancora installato la RC1!!!!!!!!!!!!!

Però non calcola gli utenti nascosti!!!!!!!!!!!!!!  :-\ :(

FaSan

Quote from: Elisa on September 02, 2004, 02:35:24 PM
L'ho montataaaaaaaaaaaaaaaaaaa!!! Sono riuscita anche se non ho ancora installato la RC1!!!!!!!!!!!!!

Però non calcola gli utenti nascosti!!!!!!!!!!!!!!  :-\ :(


Uhmmm... hai ragione !

No ci ho pensato inquanto nel mio forum la possibilità di nascondersi è disabilitata.

Implementerò una versione 1.1 per ovviare al Bug  8)


PS : Ho creato un mio Package Server, raggiungibile dal pannello di Amministrazione, con la mod già pronta per essere installata in automatico  8) E' sufficente aggiungere il server tra quelli da utilizzare. (L' indirizzo è nella mia firma ;) )

FaSan

Intanto ho apportato una piccola modifica.

Nel caso in cui qualcuno abbia installato la MOD "BuddyList", è possibile visualizzare gli utenti collegati durante il giorno, nel colore utilizzato dalla Buddy.

Basta cambiare queste poche righe nel file BoardIndex.php :



<search>
$link = '';

while ($tmp = mysql_fetch_assoc($result))
{
$link .= '<a href="' . $scripturl . '?action=profile;u=' . $tmp['ID_MEMBER'] . '" style="color: ' . $tmp['onlineColor'] . ';">' . $tmp['realName'] . '</a>, ';
$today['num_users']++;
}

<replace>
$link = '';

$user_info['buddy_list'] = explode(',', $user_info['buddy_list']);

while ($tmp = mysql_fetch_assoc($result))
{
if (in_array($tmp['ID_MEMBER'], $user_info['buddy_list']))
$tmp['onlineColor'] = 'blue';                            //or other color if you want

$link .= '<a href="' . $scripturl . '?action=profile;u=' . $tmp['ID_MEMBER'] . '" style="color: ' . $tmp['onlineColor'] . ';">' . $tmp['realName'] . '</a>, ';
$today['num_users']++;
}
</replace>


<search>
$context['num_buddies'] = 0;
// Little cheat.
$user_info['buddy_list'] = explode(',', $user_info['buddy_list']);
</search>

<replace>
$context['num_buddies'] = 0;
</replace>

Elisa

Il package vale solo per chi ha la RC1?

FaSan

Purtroppo non ho più i file della beta6, quindi potendo testare le mod solo su RC1 ho fatto sì che siano installabili solo per questa versione.

Cmq la RC1 ha un mare di migliorie in più... da parecchi bug fixed sulla sicurezza ad una nuova struttura di gestione php in alcuni file, meglio upgradare quanto prima  ;)

Elisa

Sicuro ma l'idea di dover rifare da capo 8000 modifiche deve ancora cedere il passo all'idea di aver qualche opzione in più!

FaSan

Quote from: Elisa on September 03, 2004, 12:09:02 PM
Sicuro ma l'idea di dover rifare da capo 8000 modifiche deve ancora cedere il passo all'idea di aver qualche opzione in più!


:D :D :D

edi67

carino questo mod

un piccolo problema io sono su un server russo 2 ore piu avanti l'ora in pratica mi inizia a contare gli utenti del giorno a partire dalla 22 ora italian visto che li sono le 24 come posso ovviare a questo cioe mettere +2 ore
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

FaSan

Quote from: edi67 on September 12, 2004, 04:17:14 PM
carino questo mod

un piccolo problema io sono su un server russo 2 ore piu avanti l'ora in pratica mi inizia a contare gli utenti del giorno a partire dalla 22 ora italian visto che li sono le 24 come posso ovviare a questo cioe mettere +2 ore


E' sufficente aggiungere un +2 a questa funzione :

   $midnight = ((date("U") - (date("H") * 3600)) - (date("i") * 60));

ovvero :

   $midnight = ((date("U") - (date("H") * 3600)) - (date("i") * 60) + 2);


;)

edi67

ero riuscito comunque grazie un mod molto interessante bravo fasan
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

Ezechiele

Veramente bella questa MOD , mi chiedevo solo una cosa :

per le modifiche ai files tutto ok, ma per aggiungere la colonna alla tabella in questione nn so come fare, ho provato ad accedervi ma ero abituato ad avere il file da lanciare che mi aggiungeva lui la colonna e quindi mi sono un po' incasinato ...

cmq provo a ripetere la procedura !!


p.s : dado, secondo me dovresti postare anche te il tuo MOD ( quello che hai passato anche a me ) , faresti un figurone ( oltre a dare un grosso aiuto a tutti gli smfer ( come suona male " smfer " , era piu' bellino yabber  ;D )

FaSan

Bè... se installi tutto tramite il Package Manager, si installa tutto da sè, creando anche la colonna in questione.

Cmq, da phpBB puoi lanciare questa riga di comando :


ALTER TABLE {$db_prefix}log_activity ADD `allOn` smallint(5) unsigned NOT NULL default '0';

Sostituendo {$db_prefix} con il prefix del tuo DB (normalmente smf_) ;)




Ezechiele

Ho provato ad inserire il tuo link che hai come firma tra i packages ma mi viene la pagina bianca e mi dice errore, etc etc contatta [email protected]

Sbaglio qualcosa ?

Io ho fatto scarica nuovi packages, come url ho messo il tuo percorso e come nome quello che mi garbava a me ...  :-\

edi67

Quote from: Ezechiele on September 13, 2004, 03:18:58 AM
Veramente bella questa MOD , mi chiedevo solo una cosa :

per le modifiche ai files tutto ok, ma per aggiungere la colonna alla tabella in questione nn so come fare, ho provato ad accedervi ma ero abituato ad avere il file da lanciare che mi aggiungeva lui la colonna e quindi mi sono un po' incasinato ...

cmq provo a ripetere la procedura !!


p.s : dado, secondo me dovresti postare anche te il tuo MOD ( quello che hai passato anche a me ) , faresti un figurone ( oltre a dare un grosso aiuto a tutti gli smfer ( come suona male " smfer " , era piu' bellino yabber  ;D )

per i miei mods vedremo se sarà il caso per la tabella delle statistiche in più quello dipende da te se vuoi avere questa opzione anche io non lìho messa in attesa delle nuove release ma comunque il comando lo lanci tranquillamente dal pannello phpadmin semplicemente.
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

FaSan

Quote from: Ezechiele on September 13, 2004, 06:27:34 AM
Ho provato ad inserire il tuo link che hai come firma tra i packages ma mi viene la pagina bianca e mi dice errore, etc etc contatta [email protected]

Sbaglio qualcosa ?

Io ho fatto scarica nuovi packages, come url ho messo il tuo percorso e come nome quello che mi garbava a me ...  :-\


Che versione di SMF hai ? credo funzioni dalla RC1 in poi...

Ezechiele

ho la rc1  :-\

quando poi vado a visualizzarla manualmente mi appare solo un'immagine  :(

FaSan

Quote from: Ezechiele on September 13, 2004, 10:34:26 AM
ho la rc1  :-\

quando poi vado a visualizzarla manualmente mi appare solo un'immagine  :(


Sì, se la visualizza in explorer c'è solo un'immagine. Andrebbe raggiunto tutto tramite il Package Manager.

Prova a giocare con lo "/" slash finale, magari và aggiunto o omesso.

Ezechiele

Nada  :(

Ho provato in tutti e 2 i modi ma mi viene sempre :

QuoteThe server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.





FaSan

Quote from: Ezechiele on September 13, 2004, 12:25:27 PM
Nada  :(

Ho provato in tutti e 2 i modi ma mi viene sempre :

QuoteThe server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.








[email protected] ? Non ci posso credere....

Sinceramente non è chiara la situazione. Io nel Server SMF ho impostato un'altra casella e quella da te citata la uso esclusivamente nella registrazione dei Domini. L'unica spiegazione che mi viene in mente è qualcosa legata ai DNS del dominio stesso...

Uhmm... hai Fastweb x caso ?

Ezechiele


edi67

c'e' un errore qui in Stats.template.php altrimenti non funziona correttamente

<td>', $txt['smf_stats_14'], '</td>
<td>', $txt['smf_stats_14bis'], '</td>


de essere cosi:
<td>', $txt['smf_stats_14'], '</td>
<td>', $txt['smf_stats_14bis'], '</td>';

CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

FaSan

In realtà no...

Lo script cerca


<td>', $txt['smf_stats_14'], '</td>


lasciando fuori dal replace il " '; " che quindi rimane inalterato  :)

edi67

a me in quel modo da errore pagina bianca sostituendolo si vede tutto correttamente e funziona correttamente molto strano
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

edi67

c0e un problema fasan ho aggiunto anche la tabella per memorizzare il numero di utenti online nella giornata ma nella pagina delle statistiche mi risulta sempre 0

mi sai spiegarE?
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

FaSan

#34
Quote from: edi67 on September 15, 2004, 12:35:21 AM
c0e un problema fasan ho aggiunto anche la tabella per memorizzare il numero di utenti online nella giornata ma nella pagina delle statistiche mi risulta sempre 0

mi sai spiegarE?



Secondo me hai saltato qualche passaggio... installa tutto dal Package Manager e non avrai problemi  ;)

Eccoti il link diretto :

http://www.fasan.net/smf/OnLineUsersToday.tar.gz

Ezechiele

ho installato il pack e infatti se vado nelle statistiche viene fuori " online oggi " con il numero accanto, ma nella home nn c'e traccia della lista degli utenti che si sono collegati .... dove ho sbagliato ?

eppure ho uploadato il file che hai postato e mi ha detto di averlo installato correttamente .. devo abilitarlo da qualche parte ?  :-\

Ezechiele

#36
Lascia stare, sono un bischero  :P


ho risolto grazie !!!

p.s : per cambiare l'iconcina nell'index del nuovo campo dove lo trovo il percorso dell'immagine ?  ???

lia

Quote from: FaSan on September 15, 2004, 06:55:19 AM

Secondo me hai saltato qualche passaggio... installa tutto dal Package Manager e non avrai problemi  ;)

Eccoti il link diretto :

http://www.fasan.net/smf/OnLineUsersToday.tar.gz [nofollow]
Ciao, ho scaricato del link il package ed ho caricato lo stesso con il package manager, il problema è che questi file li ha modificati con successo (almeno credo):

2. Esegui Modifica Sources/BoardIndex.php Installato con Successo
3. Esegui Modifica Sources/Stats.php Installato con Successo
4. Esegui Modifica Themes/default/BoardIndex.template.php Installato con Successo
5. Esegui Modifica Themes/default/Stats.template.php Installato con Successo
6. Esegui Modifica Themes/default/languages/Modifications.english.php Installato con Successo
7. Esegui Modifica Themes/default/languages/Modifications.italian.php Installato con Successo

ma il primo, ovvero 1. Esegui codice UsersOnlineToday_Pdb.php non dice nulla.
Ho provato a collegarlo con l'opzione Informazioni Richieste per l' FTP, ma nonostante abbia inserito i dati di accesso (indirizzo ftp, user e pass, porta 21) non funge, volevo sapere se tale file deve essere inviato ad una determinata cartella e quale, in tal caso lo farei io in manuale.
Ho provato poi a modificare i file come sopraccitato ma mi da una serie di errori, dove sbaglio (non sono poi così ferrato di php).

Grazie


lia

Salve,
non fa nulla, tutto risolto installando a manina, compresa l'aggiunta della riga in phpMySql, tutto OK.

Saluti

Lia

FaSan

Quote from: Ezechiele on September 15, 2004, 08:54:55 AM
p.s : per cambiare l'iconcina nell'index del nuovo campo dove lo trovo il percorso dell'immagine ?  ???


Questa riga in Boardindex.template.php


<td class="windowbg" width="20" valign="middle" align="center"><img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt['158bis'], '" border="0" /></td>


L' immagine usata è la "online.gif"  ;)

FaSan

Quote from: lia on September 15, 2004, 04:42:18 PM
Salve,
non fa nulla, tutto risolto installando a manina, compresa l'aggiunta della riga in phpMySql, tutto OK.

Saluti

Lia


Per le prossime... il server FTP NON serve !

Se riesci a Browsare il mio server direttamente dal Package Manager puoi fare direttamente l' installazione da lì. Se non lo browsi ed hai il link diretto (come in questo caso) puoi upload-are direttamente il file, sempre dal Package Manager ed effettuare l' installazione.

Questa mod necessita di attivazione dalla sezione Preferenze e Opzioni ;)



FaSan

Ezechiele

Quote from: FaSan on September 15, 2004, 05:48:20 PM
Quote from: Ezechiele on September 15, 2004, 08:54:55 AM
p.s : per cambiare l'iconcina nell'index del nuovo campo dove lo trovo il percorso dell'immagine ?  ???


Questa riga in Boardindex.template.php


<td class="windowbg" width="20" valign="middle" align="center"><img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt['158bis'], '" border="0" /></td>


L' immagine usata è la "online.gif"  ;)

thx !!!

lia

Quote from: FaSan on September 15, 2004, 05:50:53 PM
Quote from: lia on September 15, 2004, 04:42:18 PM
Salve,
non fa nulla, tutto risolto installando a manina, compresa l'aggiunta della riga in phpMySql, tutto OK.

Saluti

Lia


Per le prossime... il server FTP NON serve !

Se riesci a Browsare il mio server direttamente dal Package Manager puoi fare direttamente l' installazione da lì. Se non lo browsi ed hai il link diretto (come in questo caso) puoi upload-are direttamente il file, sempre dal Package Manager ed effettuare l' installazione.

Questa mod necessita di attivazione dalla sezione Preferenze e Opzioni ;)



FaSan

Ciao,
era proprio quello che non riuscivo a fare  :( , la cosa importante è che sono comunque arrivato allo scopo :D :D
Rinnovo i ringraziamenti per la tua sempre fattiva disponibilità

Lia ;)

edi67

scusate ma a voi rimane memorizzato il numero più alto di utenti della giornata ?
a me rimane memorizzato un numero ma non il numero più alto non capisco perchè eppure la procedura e corretta di inserimento.
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

edi67

nessuno ha lo stesso errore ?? andando a controllare le statistiche,sembra che memorizzi un valore basso molto più basso di quell ch realmente è il numero più alto degli utenti online nella giornata
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

lia

Ciao, a me pare che invece funzioni correttamente, anche se l'ho appena installato ieri e nel riepilogo mi indica infatti il numero massimo che è effettivamente quello di ieri.

Lia ;)

FaSan

Infatti la Mod in questione funziona regolarmente anche dalla parte delle statistiche.

Poichè hai installato il tutto manualmente, ti conviene ricontrollare tutti i passaggi  ;)



FaSan

edi67

ripeto molto strano devo perforza correggere queste righe cosi:

c'e' un errore qui in Stats.template.php altrimenti non funziona correttamente

<td>', $txt['smf_stats_14'], '</td>
<td>', $txt['smf_stats_14bis'], '</td>


de essere cosi:
<td>', $txt['smf_stats_14'], '</td>
<td>', $txt['smf_stats_14bis'], '</td>';



altrimenti mi da errore di template
CrazyZone - My SMF Forum


From the difficult the hardening of the man you can see

Advertisement: