Per prima cosa vado nel pannello di amministrazione di phpBB e creo un nuovo forum intitolato News.
Fatto questo procedo con lo script.
Anche qui solito problema fra phpBB2 e phpBB3, saranno necessari due script diversi per i due sistemi, contenenti le istruzioni necessarie.
A differenza dei codici che ho creato per gli ultimi messaggi qui ho inserito in fondo due bottoni per potersi muovere fra le news.
Attenzione alla query principale e il nome del forum, devono corrispondere esattamente!
<?php ///////////////////////////////////////////////////////////////////// // Mario Santagiuliana // script per l'estrazione delle news da un forum phpBB2 // su database postgresql ///////////////////////////////////////////////////////////////////// //limite di news da visualizzare $limit=5; //------------------------------ if($_POST['prima']) $prima=$_POST['prima']; else $prima=0; // file di configurazione di phpBB // cambiare la patch se non corrisponde include('forum/config.php'); $connessione = pg_connect("host=$dbhost dbname=$dbname user=$dbuser password=$dbpasswd"); if (!$connessione) { die("Impossibile connettersi al database"); } // Controllo array POST per vedere se spostarsi nelle news // e query principale per fare la richiesta delle news // ATTENZIONE il nome del forum deve essere "News" if($_POST){ if($_POST['prec'] == "prec") $prima=$prima-$limit; elseif($_POST['succ'] == "succ") $prima=$prima+$limit; $sql="SELECT * FROM phpbb_posts_text NATURAL JOIN phpbb_forums NATURAL JOIN phpbb_topics NATURAL JOIN phpbb_posts WHERE forum_name='News' ORDER BY post_time DESC LIMIT $limit OFFSET $prima"; } else $sql="SELECT * FROM phpbb_posts_text NATURAL JOIN phpbb_forums NATURAL JOIN phpbb_topics NATURAL JOIN phpbb_posts WHERE forum_name='News' ORDER BY post_time DESC LIMIT $limit"; $risultati=pg_query($connessione, $sql); //----- while($riga = pg_fetch_array($risultati)) { $titolo = $riga["post_subject"]; if(substr($titolo, 0, 4) != "Re: "){ $numero_topic = $riga["topic_id"]; $testo_post = $riga["post_text"]; $data = $riga["post_time"]; $posterid = $riga["poster_id"]; //richiedo il nome di chi ha scritto la news $richiesta="SELECT username FROM phpbb_users WHERE user_id = $posterid"; $username=pg_fetch_row(pg_query($connessione, $richiesta)); echo"\n<div style=\"border: 1px dotted; padding: 3px; margin-top:5px; margin-bottom:5px;\">\n"; echo"<a href=\"forum/viewtopic.php?t=$numero_topic\" title=\"\" style=\"color: blue; font-weight: bold;\">$titolo</a>\n"; echo"<div style=\"font-size: 10px; padding-left: 5px;\">by $username[0] ".date('d M Y - H:i', $data); echo"</div>\n"; //se il testo del messaggio è troppo lungo lo taglio if(strlen($testo_post)<100) echo"<p style=\"border-top: 1px dotted; margin-top: 2px; padding-top: 2px;\">$testo_post</p>\n"; else echo"<p style=\"border-top: 1px dotted; margin-top: 2px; padding-top: 2px;\">".substr($testo_post,0,100)."...</p>\n"; echo"</div>\n"; } }//Fine del while // qui inserico il form con i due bottoni che tramite metodo POST invia i dati su come // muoversi all'interno delle news echo"\n<form method=\"post\" action=\"\" style=\"text-align: center;\">\n"; echo"<div>\n"; echo"<input type=\"hidden\" name=\"prima\" value=\"$prima\" />"; echo"<input type=\"submit\" value=\"prec\" name=\"prec\" /> ---- <input type=\"submit\" value=\"succ\" name=\"succ\" />\n"; echo"</div>\n"; echo"</form>\n"; // chiusura connessione database pg_close($connessione); ?> |
e questo era lo script per le news con phpBB2.
