Pagina 1 di 2

[RISOLTO] ricerca categoria topic via php

Inviato: 28/03/2014, 10:02
da slade
Salve a tutti, mi sto cimentando nella creazione di un sito web con forum. Il sito e' fatto con Joomla (http://www.ludoteca-itinerante.it), il forum e' phpbb3. Sono riuscito a far vedere dal sito gli ultimi post del forum con questo codice che ho trovato su internet e mi sono personalizzato un po':

Codice: Seleziona tutto

<?php
////////////////////////////////////////////////////////////////////////////
// Mario Santagiuliana
// script per visualizzare in una tabella gli ultimi messaggi inseriti in
// in un forum phpBB3 con database postgresql
// numero massimo di messaggi da visualizzare definiti da $limite
////////////////////////////////////////////////////////////////////////////
    
// numero massimo di messaggi da estrarre dal database
$limite=10;
    
// Titoli della tabella, possono essere cambiati o inseriti
// in un file di lingua per un sito web multilingua
$ForumTab="Forum";
$TopicTab="Topic";
$UtenteTab="Utente";
$OrarioTab="Ora invio";
//-----------------------------------------------------------
    
// file di configurazione di phpBB
// cambiare la patch se non corrisponde
include($_SERVER['DOCUMENT_ROOT'].'\forum\config.php');
    
$connessione = mysqli_connect($dbhost, $dbuser, $dbpasswd, $dbname);

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

// query principale per fare la richiesta degli ultimi messaggi/post
$sql="SELECT * FROM phpbb_posts ORDER BY post_time DESC LIMIT $limite";

$risultati=mysqli_query($connessione, $sql) or die ("Query non valida: " . mysql_error());

//-----
    
echo"\n<table border=\"1px\" cellpadding=\"3px\" cellspacing=\"0px\" style=\"width: 100%;\">\n";
echo" <tr>";
echo"<td>$ForumTab</td>";
echo"<td>$TopicTab</td>";
echo"<td>$UtenteTab</td>";
echo"<td>$OrarioTab</td>";
echo" </tr>";
while($riga = mysqli_fetch_array($risultati)) { 
     $titolo = $riga["post_subject"];
     $numero_topic = $riga["topic_id"]; 
     $data = $riga["post_time"];
     $posterid = $riga["poster_id"];
    
     //richiedo il nome di chi ha scritto il messaggio
     $richiesta="SELECT username FROM phpbb_users WHERE user_id = $posterid";
     $username=mysqli_fetch_row(mysqli_query($connessione, $richiesta));
    
     //richiedo il nome del forum
     $forum_id=$riga['forum_id'];
     $richiesta="SELECT DISTINCT forum_name FROM phpbb_forums WHERE forum_id = $forum_id";
     $Nomeforum=mysqli_fetch_row(mysqli_query($connessione, $richiesta));
    
     echo" <tr>\n";
     echo" <td><a href=\"/forum/viewforum.php?f=$forum_id\" onclick=\"window.open(this.href);return false;\" style=\"color: blue;\">".$Nomeforum['0']."</a></td>";
     //se il titolo del messaggio è troppo lungo lo taglio
     if(strlen($titolo)<25)
         echo" <td style=\"width: 170px;\"><a href=\"/forum/viewtopic.php?t=$numero_topic\" onclick=\"window.open(this.href);return false;\" title=\"$titolo\" style=\"color: blue;\">$titolo</a></td>\n";
     else
         echo" <td style=\"width: 170px;\"><a href=\"/forum/viewtopic.php?t=$numero_topic\" onclick=\"window.open(this.href);return false;\" title=\"$titolo\" style=\"color: blue;\">".substr($titolo,0,25)."... </a></td>\n";
     echo" <td>$username[0] </td>\n"; 
     echo" <td style=\"width: 110px;\">".date(' H:i - d/m/y ', $data)."</td>\n";
     echo" </tr>\n";
}//Fine del while 
    
echo"</table>\n\n";
    
mysqli_close($connessione);
?>
il mio problema e' che tra gli ultimi post ci sono anche quelli di una sezione nascosta visibile solo dal consiglio di amministrazione. Mi va bene che si vedano nell'elenco, ma li vorrei formattare in rosso e italico. Visto che questi topic sono "sotto" la categoria "Consiglio di amministrazione" c'e' modo di filtrarli in qualche modo? L'alternativa che avevo pensato e' quella di mettere nei titoli dei topic una sigla e filtrarli per quella, ma mi piacerebbe si potesse fare con la categoria

Grazie per l'attenzione

Re: ricerca categoria topic via php

Inviato: 28/03/2014, 12:42
da slade
Gia' risolto, occorre fare una query sulla tabella phpbb_forums, il campo che interessa e' forum_parents

Re: [RISOLTO] ricerca categoria topic via php

Inviato: 28/03/2014, 14:58
da Barrnet
Basta che modifichi la query:

Codice: Seleziona tutto

$sql="SELECT * FROM phpbb_posts WHERE forum_id != idsezione OR forum_id !=  idsezione
ORDER BY post_time DESC LIMIT $limite"
Ovviamente nel caso le sezioni siano di meno o di più aggiungi o rimuovi ulteriori "OR".

Re: [RISOLTO] ricerca categoria topic via php

Inviato: 29/03/2014, 22:33
da slade
Ho preferito lavorare sul parents

Codice: Seleziona tutto

 $richiesta="SELECT DISTINCT forum_parents FROM phpbb_forums WHERE forum_id = $forum_id";

Re: [RISOLTO] ricerca categoria topic via php

Inviato: 30/03/2014, 10:40
da Segnalo
funziona?

Re: [RISOLTO] ricerca categoria topic via php

Inviato: 30/03/2014, 11:28
da slade
Si, non avrei messo risolto :)
Il risultato lo puoi vedere sul sito http://www.ludoteca-itinerante.it alla voce ultimi post in basso

Ciao

Re: [RISOLTO] ricerca categoria topic via php

Inviato: 02/04/2014, 23:10
da slade
Ho fatto una modifica (mi sono accorto di un problema sulla mia pelle).
Invece che lavorare sul forum_parents e' meglio lavorare sul campo parent_id, almeno se si cambia il nome del forum non da problemi ;) inoltre e' piu' veloce controllare un campo numerico piuttosto che cercare all'interno di una stringa

Re: [RISOLTO] ricerca categoria topic via php

Inviato: 29/08/2018, 17:17
da Harrison
Ciao a tutti,
meno male ci sono forum di questo tipo nel caso qualcuno abbia dei problemi con PHP.
Più teste sono meglio di una testa e basta, sopprattutto in queste cose.
Saluti a tutti.

__________________
Come aprire una ludoteca: Visita Fun-World.it