phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Statistiche Forum sul Sito

Programmare su phpBB, creazione di pagine personalizzate ed utilizzo delle API di phpBB.
Bloccato
Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Statistiche Forum sul Sito

Messaggio da Carlo » 19/04/2009, 19:21

Statistiche Forum sul Sito
Questa guida vi spiega come inserire statistiche della vostra board sul vostro sito, avendo una pagina .php.

Con questa guida potete visualizzare nel sito:
  • Numero di post totali
  • Numero di utenti totali
  • Ultimo utente registrato
  • Ultimi 10 topic
  • Primo post dell'ultima discussione di un determinato forum
  • Ultimi 5 utenti
  • Top 5 poster
Prima di tutto dobbiamo incluedere i file necessari, e inserire uno script per la connessione al database:

Codice: Seleziona tutto

<?php
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'config.' . $phpEx);

    $connessione = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
    if (!$connessione) {
        echo "Impossibile connettersi al DB: " . mysql_error();
        exit;
    }
    if (!mysql_select_db("$dbname")) {
        echo "Impossibile selezioanare database: " . mysql_error();
        exit;
    }
?>
con questo codice si presuppone che abbiate il sito nella stessa cartella del forum. Se invece avete il forum nella cartella forum rispetto al sito, modificate questa stringa:

Codice: Seleziona tutto

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';  
in:

Codice: Seleziona tutto

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';  
Visualizzare il numero totale di post

Codice: Seleziona tutto

<?php
    // post totali
    $query_totalepost = "SELECT * FROM ".$table_prefix."posts";
    $totalepost = mysql_query($query_totalepost);
    if (!$totalepost) {
        echo "Fallimento nell'esecuzione della query ($query_totalepost) dal DB: " . mysql_error();
        exit;
    }
    $righe_totalepost = mysql_num_rows($totalepost);
?>
Per stampare il numero totale di post, dobbiamo usare la variabile $righe_totalepost, esempio:

Codice: Seleziona tutto

echo "Totale messaggi:".$righe_totalepost; 
Visualizzare utenti totali

Codice: Seleziona tutto

    // utenti totali
    $sql_totaleutenti = "SELECT username FROM ".$table_prefix."users WHERE user_type = '0' OR user_type = '3'";
    $query_totaleutenti = mysql_query($sql_totaleutenti);
    if (!$query_totaleutenti) {
        echo "Fallimento nell'esecuzione della query ($query_totaleutenti) dal DB: " . mysql_error();
        exit;
    }
    $righe_totaleutenti = mysql_num_rows($query_totaleutenti);
    mysql_free_result($query_totaleutenti);  
Per stampare il numero totale di utenti, dobbiamo usare la variabile $righe_totaleutenti, esempio:

Codice: Seleziona tutto

echo "Totale utenti:".$righe_totaleutenti; 
Visualizzare username ultimo utente

Codice: Seleziona tutto

    // ultimo utente
    $sql_ultimoutente = "SELECT username, user_colour
            FROM ".$table_prefix."users WHERE user_type = '0' OR user_type = '3'
            ORDER BY user_id DESC LIMIT 0,1";
    $query_ultimoutente = mysql_query($sql_ultimoutente);
    if (!$query_ultimoutente) {
        echo "Fallimento nell'esecuzione della query ($query_ultimoutente) dal DB: " . mysql_error();
        exit;
    }
    while ($dati_ultimoutente = mysql_fetch_assoc($query_ultimoutente)) {
        echo "Ultimo iscritto: <a href='./memberlist.php?mode=viewprofile&un=$dati_ultimoutente[username]' target='_top'><font color='$dati_ultimoutente[user_colour]'><b>$dati_ultimoutente[username]</b></font></a>";
    }
    mysql_free_result($query_ultimoutente); 
Questo codice stamperà a schermo Ultimo iscritto: nome_utente, e il nome utente sarà del colore impostato nel forum.

Visualizzare ultimi 10 topic

Codice: Seleziona tutto

    // ultimi 10 topic
    $sql_ultimitopic = "SELECT topic_id,forum_id,topic_last_post_id,topic_last_post_time,
            topic_title,topic_last_poster_name,topic_last_poster_colour
            FROM ".$table_prefix."topics
            ORDER BY topic_last_post_time DESC LIMIT 0,10";
    $query_ultimitopic = mysql_query($sql_ultimitopic);
    if (!$query_ultimitopic) {
        echo "Fallimento nell'esecuzione della query ($query_ultimitopic) dal DB: " . mysql_error();
        exit;
    }
    while ($dati_ultimitopic = mysql_fetch_assoc($query_ultimitopic)) {
        $str_array3 = array('à', 'è', 'é', 'ì', 'ò', 'ù');
        $str_array4 = array('&agrave;', '&egrave;', '&iacute;', '&igrave;', '&ograve;', '&ugrave;');
        $dati_ultimitopic['topic_title'] = str_replace($str_array3, $str_array4, $dati_ultimitopic['topic_title']);
        
        echo "&bull; &nbsp;<a href='./viewtopic.php?f=$dati_ultimitopic[forum_id]&t=$dati_ultimitopic[topic_id]#p$dati_ultimitopic[topic_last_post_id]'>$dati_ultimitopic[topic_title]</a><br>
      Inviato da <a href='./memberlist.php?mode=viewprofile&un=$dati_ultimitopic[topic_last_poster_name]'><font color='$dati_ultimitopic[topic_last_poster_colour]'><b>$dati_ultimitopic[topic_last_poster_name]</b></font></a>, il " . date("j/n/y", $dati_ultimitopic[topic_last_post_time]) . "<br />";
    }
    mysql_free_result($query_ultimitopic); 
Primo post dell'ultima discussione di un determinato forum - Attenzione, questo script "legge" solo i BBCode "grassetto", "corsivo" e "sottolineato" e queste lettere accentate à, è, ì, ò, ù.

Codice: Seleziona tutto

    // primo post dell'ultima discussione di un determinato forum
    $f1 = 1; // id del forum
    $sql_ppud1 = "SELECT topic_first_post_id FROM ".$table_prefix."topics WHERE forum_id = '".$f1."' ORDER BY topic_time DESC LIMIT 0,1";
    $query_ppud1 = mysql_query($sql_ppud1);
    $row_ppud1 = mysql_fetch_assoc($query_ppud1);
    
    $sql_pppud1 = "SELECT post_subject, post_text, bbcode_bitfield, bbcode_uid FROM ".$table_prefix."posts WHERE post_id = '".$row_ppud1['topic_first_post_id']."'";
    $query_pppud1 = mysql_query($sql_pppud1);
    $row_pppud1 = mysql_fetch_assoc($query_pppud1);
    
    if (!$query_ppud1 || !$query_pppud1) {
        echo "Fallimento nell'esecuzione della query dal DB: " . mysql_error();
        exit;
    }

    $str_array1 = array('[b]', '[/b]', '[i]', '[/i]', '[u]', '[/u]');
    $str_array2 = array('<b>', '</b>', '<i>', '</i>', '<u>', '</u>');

    $str_array3 = array('à', 'è', 'é', 'ì', 'ò', 'ù');
    $str_array4 = array('&agrave;', '&egrave;', '&iacute;', '&igrave;', '&ograve;', '&ugrave;');
    
    $post_pppud1 = str_replace(":".$row_pppud1['bbcode_uid'], "", $row_pppud1['post_text']);
    $post_pppud1 = str_replace("\n", "<br />", $post_pppud1);
    $post_pppud1 = str_replace($str_array1, $str_array2, $post_pppud1);
    $post_pppud1 = str_replace($str_array3, $str_array4, $post_pppud1);

    $row_pppud1['post_subject'] = str_replace($str_array3, $str_array4, $row_pppud1['post_subject']);

    echo "<b>".$row_pppud1['post_subject']."</b><br />".$post_pppud1."<br />";
    
    mysql_free_result($query_pppud1);
    mysql_free_result($query_ppud1); 
Ultimi 5 utenti

Codice: Seleziona tutto

    // ultimi 5 utenti
    $sql_ultimiutenti = "SELECT username, user_colour
            FROM ".$table_prefix."users WHERE user_type = '0' OR user_type = '3'
            ORDER BY user_id DESC LIMIT 0,5";
    $query_ultimiutenti = mysql_query($sql_ultimiutenti);
    if (!$query_ultimiutenti) {
        echo "Fallimento nell'esecuzione della query ($query_ultimiutenti) dal DB: " . mysql_error();
        exit;
    }
    echo "Ultimi 5 iscritti:<br />";
    while ($dati_ultimiutenti = mysql_fetch_assoc($query_ultimiutenti)) {
        echo "&bull; <a href='./memberlist.php?mode=viewprofile&un=$dati_ultimiutenti[username]' target='_top'><font color='$dati_ultimiutenti[user_colour]'><b>$dati_ultimiutenti[username]</b></font></a><br />";
    }
    mysql_free_result($query_ultimiutenti); 
Top 5 poster

Codice: Seleziona tutto

   // top 5 poster
    $sql_topposter = "SELECT username, user_colour, user_posts
            FROM ".$table_prefix."users WHERE user_type = '0' OR user_type = '3'
            ORDER BY user_posts DESC LIMIT 0,5";
    $query_topposter = mysql_query($sql_topposter);
    if (!$query_topposter) {
        echo "Fallimento nell'esecuzione della query ($query_topposter) dal DB: " . mysql_error();
        exit;
    }
    echo "Top 5 Poster:<br />";
    while ($dati_topposter = mysql_fetch_assoc($query_topposter)) {
        echo "&bull; <a href='./memberlist.php?mode=viewprofile&un=$dati_topposter[username]' target='_top'><font color='$dati_topposter[user_colour]'><b>$dati_topposter[username]</b> [<u>$dati_topposter[user_posts]</u>]</font></a><br />";
    }
    mysql_free_result($query_topposter); 
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

sergiosk
Utente
Utente
Messaggi: 3
Iscritto il: 26/04/2009, 11:24
Versione: 3.0.3
Server: Windows

Re: Statistiche Forum sul Sito

Messaggio da sergiosk » 26/04/2009, 11:29

Eccomi qua, ciao, come ti dicevo ho inserito in una pagina php il codice che ti scrivo qui sotto ma la pagina è bianca vuota, non si vede nulla, dove sbaglio? Sicuramente il codice è compilato male ma dove? Grazie se mi puoi aiutare ciao Sergio. Ecco il codice come io lo ho inserito per vedere ultimi post:

Codice: Seleziona tutto

<?php
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './public/phpbb3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'config.' . $phpEx);

    $connessione = mysql_connect("$11111111", "$11111111", "$1111111");
    if (!$connessione) {
        echo "Impossibile connettersi al DB: " . mysql_error();
        exit;
    }
    if (!mysql_select_db("$1111111")) {
        echo "Impossibile selezioanare database: " . mysql_error();
        exit;
    }
?>

<?php
 // ultimi 10 topic
    $query_ultimitopic = "SELECT topic_id,forum_id,topic_last_post_id,topic_last_post_time,
            topic_title,topic_last_poster_name,topic_last_poster_colour
            FROM ".$table_prefix."topics
            ORDER BY topic_last_post_time DESC LIMIT 0,10";
    $ultimitopic = mysql_query($query_ultimitopic);
    if (!$ultimitopic) {
        echo "Fallimento nell'esecuzione della query ($query_ultimitopic) dal DB: " . mysql_error();
        exit;
    }
    while ($dati_ultimitopic = mysql_fetch_assoc($ultimitopic)) {
        echo "&bull; &nbsp;<a href='./viewtopic.php?f=$dati_ultimitopic[forum_id]&t=$dati_ultimitopic[topic_id]#p$dati_ultimitopic[topic_last_post_id]'>$dati_ultimitopic[topic_title]</a><br>
      Inviato da <a href='./memberlist.php?mode=viewprofile&un=$dati_ultimitopic[topic_last_poster_name]'><font color='$dati_ultimitopic[topic_last_poster_colour]'><b>$dati_ultimitopic[topic_last_poster_name]</b></font></a>, il " . date("j/n/y", $dati_ultimitopic[topic_last_post_time]) . "<br />";
    }
    mysql_free_result($ultimitopic); 

?>
Ultima modifica di sergiosk il 26/04/2009, 13:06, modificato 1 volta in totale.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Statistiche Forum sul Sito

Messaggio da Carlo » 26/04/2009, 11:30

Scusa usa il BBCode CODE altrimenti non si capisce nulla.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

sergiosk
Utente
Utente
Messaggi: 3
Iscritto il: 26/04/2009, 11:24
Versione: 3.0.3
Server: Windows

Re: Statistiche Forum sul Sito

Messaggio da sergiosk » 26/04/2009, 11:49

errore messaggio doppio
Ultima modifica di sergiosk il 26/04/2009, 11:59, modificato 1 volta in totale.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Statistiche Forum sul Sito

Messaggio da Carlo » 26/04/2009, 11:50

Scusa ma che stai facendo?? :shock:
Stai ripetendo sempre gli stessi post?? :lol:
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

sergiosk
Utente
Utente
Messaggi: 3
Iscritto il: 26/04/2009, 11:24
Versione: 3.0.3
Server: Windows

Re: Statistiche Forum sul Sito

Messaggio da sergiosk » 26/04/2009, 11:57

no scusa tu ma ho provato inserire usando bbcode ma mi da lo stesso risultato scusa cancellane uno grazie.
carlino1994 ha scritto:Scusa ma che stai facendo?? :shock:
Stai ripetendo sempre gli stessi post?? :lol:

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Statistiche Forum sul Sito

Messaggio da Carlo » 26/04/2009, 12:01

Beh basta che modifichi il tuo primo post mettendoci prima del codice [ code] e dopo [ code].
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

kikko088
Utente
Utente
Messaggi: 4
Iscritto il: 05/05/2009, 14:27
Versione: 3.0.4
Server: UNIX/Linux

Re: Statistiche Forum sul Sito

Messaggio da kikko088 » 05/05/2009, 14:29

ciao, vorrei sapere se c'è la possibilità di vedere anche le prime due tre righe del topic, per ora ho inserito il codice e funziona tutto alla grande...però non so come aggiungere due o tre righe del messaggio....

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Statistiche Forum sul Sito

Messaggio da Carlo » 05/05/2009, 19:55

Non ho capito bene ciò che vorresti fare, potresti spiegarti meglio??
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

kikko088
Utente
Utente
Messaggi: 4
Iscritto il: 05/05/2009, 14:27
Versione: 3.0.4
Server: UNIX/Linux

Re: Statistiche Forum sul Sito

Messaggio da kikko088 » 06/05/2009, 11:20

ciao con questo codice io posso vedere nella prima pagina del mio sito il titolo degli ultimi topic inseriti...io vorrei vedere oltre al titolo anche l'inizio del topic....


kikko088

Bloccato

Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti