PHPBBIntegrare PHPBB PHPFunzioni PHP CFunzioni C EcologiaLa mia ecologia   Chi siamoChi è Senamion HomeHome page corner Il Web e l'ecologia

Senamion


Chi siamo:

Il web e l'ecologia, condividere il web e un momento di riflessione sullo stato dell'ecologia e sul suo futuro

Google

[PHPBB] Inserire un sondaggio nella home page

12 Maggio 2006 by Giovanni | Argomenti: , , | 8227

Questo tutorial permette di inserire un sondaggio presente sul forum PHPBB nella home page del proprio sito o in una qualsiasi delle pagine esterne al forum.

In questo esempio viene riportato l’ultimo sondaggio inserito e vengono visualizzati i risultati, viene inoltre inserito il link alla pagina del forum dove si può votare o commentare il sondaggio.

Nell’esempio vengono riportati i seguenti file:

mysql.php (funzione che effettua la connessione). In questo file occorre configurare correttamente i parametri di connessione al DB:

<?php // // FUNZIONE CHE FA LA CONNECT AL DB // function myConnect() { /* Connessione e selezione del database */ $connessione = mysql_connect("host", "user", "password") or die("Connessione non riuscita: " . mysql_error()); mysql_select_db("database") or die("Selezione del database non riuscita"); return($connessione); } // // FUNZIONE CHE FA UNA QUERY // function myQuery($qry) { $risultato = mysql_query($qry) or die("Query fallita: " . mysql_error()); return($risultato); } // // FUNZIONE CHE FA LA CLOSE DEL DB // function myClose($connessione) { mysql_close($connessione); } ?>

funzioni_sondaggi.php (che riporta le funzioni per i sondaggi). In questo file occorre configurare correttamente:
$homeForum è l’url completo del forum
$dirImg è la cartella dove sono presenti le immagini del template (per default è configurato il template subsilver)
Ecco il file:

<?php // VARIABILI GLOBALI $homeForum = "<a href="http://www.sito.it/forum">http://www.sito.it/forum</a>"; $dirImg = "forum/templates/subSilver/images"; // // BARRA DEL SONDAGGIO (funzione interna) // function barra_sondaggio($perc, $pixel = 100) { global $dirImg; $largh = round($perc * $pixel / 100); echo "<table cellspacing=0 cellpadding=0 border=0>n"; echo "<tr>n"; echo "<td><img xsrc="$dirImg/vote_lcap.gif" width="4" alt="" height="12" /></td>n"; if ($perc != 0) echo "<td><img src="$dirImg/voting_bar.gif" width="$largh" height="12" alt="$perc%" /></td>n"; echo "<td><img src="$dirImg/vote_rcap.gif" width="4" alt="" height="12" /></td>n"; echo "</tr>n"; echo "</table>n"; } // // I VOTI DEL SONDAGGIO // function vedi_sondaggio($pixel = 100) { global $homeForum; $qry = "SELECT * FROM phpbb_vote_desc ORDER BY vote_start DESC LIMIT 1"; $cerca = myQuery($qry); if ($recD = mysql_fetch_array($cerca, MYSQL_ASSOC)) { $qry = "SELECT sum(vote_result) FROM phpbb_vote_results WHERE vote_id = '" . $recD['vote_id'] . "'"; $cerca = myQuery($qry); $recTot = mysql_fetch_array($cerca, MYSQL_ASSOC); $totVoti = $recTot['sum(vote_result)']; echo "<table cellspacing='0' cellpadding='4' border='2' align='center'>n"; echo "<tr>n"; echo "<td colspan='4' align='center'><span class='gen'><b>" . $recD['vote_text'] . "</b></span></td>n"; echo "</tr>n"; $qry = "SELECT * FROM phpbb_vote_results WHERE vote_id = '" . $recD['vote_id'] . "' ORDER BY vote_option_id ASC"; $cerca = myQuery($qry); $i = 1; while ($recO = mysql_fetch_array($cerca, MYSQL_ASSOC)) { echo "<tr>n"; echo "<td><span class='gen'>" . $recO['vote_option_text'] . "</span></td>n"; echo "<td>n"; if ($totVoti > 0) $perc = round($recO['vote_result'] * 100 / $totVoti); else $perc = 0; barra_sondaggio($perc, $pixel); echo "</td>n"; echo "<td align='center'><b><span class='gen'>&nbsp;$perc%&nbsp;</span></b></td>n"; echo "<td align='center'><span class='gen'>[ " . $recO['vote_result'] . " ]</span></td>n"; echo "</tr>n"; $i ++; } echo "<tr>n"; echo "<td colspan='4' align='center'><span class='gen'><b>Voti Totali: $totVoti</b></span></td>n"; echo "</tr>n"; echo "<tr>n"; echo "<td colspan='4' align='center'><a class=gensmall href='$homeForum/viewtopic.php?t=" . $recD['topic_id'] . "'>Guarda il sondaggio e vota!</a></td>n"; echo "</tr>n"; echo "</table>n"; } } ?>

Infine nel file PHP in cui si vuole visualizzare il sondaggio (normalmente sarà nella home page, quindi in index.php) occorre includere il file delle funzioni e richiamare la funzione di visualizzazione del sondaggio:

<?php include_once("mysql.php"); include_once("funzioni_sondaggi.php"); // SONDAGGIO... echo "<br><h3>Il sondaggio del mese</h3>n"; vedi_sondaggio(80); // SONDAGGIO... ?>

Notare infine che il parametro 80 indica (in pixel) la lunghezza del 100% della barra del sondaggio.

Pubblicato in Integrare PHPBB |

7 Commenti a “[PHPBB] Inserire un sondaggio nella home page”

  1. GiGi scrive:

    ciao mi chiamo luigi e sto creando un sito web il cui volevo anche inserire il sondagio ma non mi esce.. questo indiurizzo va bene anche come msn se lo hai.. aspetto notizie se sono possibili. grazie ciauz

  2. Giovanni scrive:

    Prova a scrivere che problemi ti da’…

  3. Alfredo scrive:

    Ciao,
    l’utente GiGi non avrà notato che bisogna avere phpBB installato per poter eseguire correttamente il tutorial.

    Saluti, Alfredo

  4. Alfredo scrive:

    Ora che ho provato lo script da due errori alla linea 19 di mysql.php

    Warning: mysql_query() [function.mysql-query]: Access denied for user \’www-data\’@\’localhost\’ (using password: NO) in /home/xaz/public_html/mysql.php on line 19

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/xaz/public_html/mysql.php on line 19
    Query fallita: Access denied for user \’www-data\’@\’localhost\’ (using password: NO)

    I dati sono tutti corretti.. :D
    Buona serata, Alfredo

  5. Giovanni scrive:

    Evidentemente i dati di accesso al DB non sono corretti, non capisco quel “using password: NO”…

  6. Alfredo scrive:

    Hai dimenticato di chiamare la funzione myConnect() che consentiva l’apertura di una connessione al db MySQL :D

    Buona giornata,
    Alfredo

  7. Giovanni scrive:

    Hai ragione, in realtà davo per scontato che venisse chiamata (stessa cosa per la chiusura) all’inizio del php e non all’interno della funzione, comunque grazie per la precisazione!

Scrivi un commento