• Bannato User Attivo

    Elenco ultimi topic aperti e ultimo topic risposto in Homepage

    Vi pubblico la mod creata da me per elencare gli ultimi topic aperti e ultimo topic risposto in Homepage.

    Let's see...

    Nel mio caso i forum con 'id'= 47 e 25 sono quelli con i diritti di admin o moderatore e quindi i relativi topic non dovrebbero essere pubblicati in home...Cambiate 47 e 25 con l'id dei vostri forum!

    Lo script inoltre stampa (tra parentesi) il numero delle risposte che ha ricevuto quel topic

    Inoltre nella prima riga c'è l'ultimo topic a cui si è risposto

    Leggetevela bene riga per riga per personalizzarla a vostro piacere

    [php] <?php
    $tutto = "select * from phpbb_posts WHERE forum_id !='47' and forum_id !='25' ORDER BY post_id DESC LIMIT 1 ";$query = mysql_query ($tutto,$link);

    while ($valori = mysql_fetch_array ($query)){
    $topic_id = $valori['topic_id'];
    $forum_id = $valori['forum_id'];
    }

                  $tutto = "select topic_replies from phpbb_topics WHERE topic_id ='$topic_id' and forum_id !='47' and forum_id !='25'";
    

    $query = mysql_query ($tutto,$link);
    while ($valori = mysql_fetch_array ($query)){
    $ultimo_topic_risposte = $valori['topic_replies'];
    //Stampa le risposte dell'ultimo topic
    } $tutto = "select topic_title from phpbb_topics WHERE topic_id ='$topic_id' and forum_id !='47' and forum_id !='25'";

    $query = mysql_query ($tutto,$link);
    while ($valori = mysql_fetch_array ($query)){

    $ultimo_topic = $valori['topic_title'];
    echo"<hl><a href="http://www.studenticroce.net/viewtopic.php?t=$topic_id">$ultimo_topic</a>(<strong>$ultimo_topic_risposte</strong>)<br /></hl>";
    }
    ?>

    --------------------<br />
    <?php

                   $tutto = "select * from phpbb_topics WHERE forum_id !='47' and forum_id !='25' ORDER BY `topic_id` DESC LIMIT 8";
    

    $query = mysql_query ($tutto,$link);
    while ($valori = mysql_fetch_array ($query)){
    $id_topic = $valori['topic_id'];
    $titolo = $valori['topic_title'];
    $risposte = $valori['topic_replies'];
    $id = $valori['topic_last_post_id'];
    echo"<hl><a href="http://www.studenticroce.net/viewtopic.php?p=$id">$titolo</a>(<strong>$risposte</strong>)<br /></hl>";}
    mysql_close ($link);
    ?>

    [/php]

    Trovate l'esempio a: http://www.studenticroce.net/home/index.php


  • Bannato User Attivo

    Vi è utile?


  • Super User

    Ottimo veramente molto utile. Per mia esperienza ti consiglio di effettuare una piccola guida alla mod per permettere anche a chi non ha dimestichezza con phpbb di poter utilizzare il tuo operato.

    Potresti inserire il file dove va inserito e il punto consigliato.

    Comunque ottimo Lavoro!


  • User

    Ho visto l'applicazione sul tuo sito, fantastica! Era proprio quello che stavo pensando di realizzare anch'io!

    Questo pomeriggio la provo, oh se ho problemi e ci resto sotto ci sei? :omini2:


  • Bannato User Attivo

    @Zanardi said:

    Ho visto l'applicazione sul tuo sito, fantastica! Era proprio quello che stavo pensando di realizzare anch'io!

    Questo pomeriggio la provo, oh se ho problemi e ci resto sotto ci sei? :omini2:

    Certo! Non è difficile!
    L'importate è che fai attenzione agli id dei tuoi forum (se esistono) con restrizioni admin/moderatori e al link finale...(Cambia www.studenticroce.net con il tuo sito) ed eventualmente inserisci la patch della cartella in cui si trova phpbb

    wwww.tuosito.it/cartellaphpbb

    :ciauz:


  • User

    Ottimo, 🙂 son riuscito a fare andare qualcosina. Ho ritagliato quà e là il tuo codice per adattarlo alla mia idea. Ho ottenuto una cosa così:

    image"titolo del topic"

    Già sono contento, ma mi mancherebbe, (per essere soddisfatissimo) il nome dell'autore del nuovo topic:

    image"titolo del topic" (proposto da Napster)

    Mi vergogno un po' ma da smanettone ho provato:

     
    $target1=$riga["posting"];
    
    

    posting o qualcosa del genere, restituisce un numero, immagino corrisponda ad un numero progressivo che identifica univocamente ogni utente?
    come faccio ad avere il nick.


  • Bannato User Attivo

    Dunque devi usare più di una query

    • Ricavare l'id dell'utente che ha aperto il topic (se vuoi ricavare chi l'ha aperto, poco diverso se vuoi calcolare l'ultimo che ha risposto)

    • Una volta che hai il suo id, vai nella tabella degli iscritti e con una query tipo: SELECT * FROM phpbb_users WHERE id='$id_user';

    Poi

    while ($valori = mysql_fetch_array ($query)){
    $nick = $valori['user']; //Mi sembra che si chiami user il campo nel db...in caso controlla
    echo"$nick";
    }


  • User

    Non sembra funzionare. Non capisco cosa ho sbagliato.

     
    $sql="SELECT * FROM phpbb_topics WHERE forum_id!=2 ORDER BY topic_id DESC LIMIT 5";
    $risultati=mysql_query($sql);
    while($riga=mysql_fetch_array($risultati)) {
    $target=$riga["topic_title"];
    $target1=$riga["topic_id"];
    **$target3=$riga["topic_poster"]; **//questo mi da un numero, sembra funzionare
     
    **$sqlDUE="SELECT * FROM phpbb_users WHERE id='$target3'";**
    **while ($valori = mysql_fetch_array ($sqlDUE)){**
    **$nick = $valori['username']; **//*ho controllato mi pare andasse 'username' e non 'user'*
    **}**
    echo " <tr> ";
    echo " <td style=\"text-align:center; border:1px solid white;\"> <a href=\"<A href="http://www.miodominio.it/forum/viewtopic.php?t=$target1\"><img">http://www.miodominio.it/forum/viewtopic.php?t=$target1\"><img src=\"forum/templates/saphir/images/common/folder_new_hot.gif\" width=\"18\" height=\"20\" border=\"0\"></a> <a href=\"http://www.mio dominio.it/forum/viewtopic.php?t=$target1\" title=\"\"> $target</a> **$target3** **$nick** </td> ";
    echo " </tr>";
     
    }
     
    
    

  • Bannato User Attivo

    Non ti stampa proprio nulla?

    Prova con

    $sqlDUE="SELECT username FROM phpbb_users WHERE id='$target3'";
    while ($valori = mysql_fetch_array ($sqlDUE)){
    **$nick = $valori['username']; **//ho controllato mi pare andasse 'username' e non 'user'
    **}

    **Non ti assicuro nulla...


  • User

    @Napster said:

    Non ti stampa proprio nulla?

    Mi faccio stampare (provvisoriamente) il numero che identifica l'utente, ma per quanto riguarda lo username niente! Non stampa proprio nulla!

    Come posso vedere gli errori?

    PS: il test lo faccio su un secondo dominio, non sul sito vero e proprio!

    PPS: ma... è un'omonimia 😄 o ti sei iscritto al mio forum? Ho come ultimo utente iscritto un certo Napster 😉


  • Bannato User Attivo

    Certo! Ho un sito molto simile al tuo, dal punto di vista del target.
    Entrambi sono destinati agli studenti...

    Cmq...non mi viene in mente altro..Prova a stampare $target3 così vedi se ha preso l'id


  • User

    Bom, ho dovuto anche chiedere ad un mio amico xchè sn imbranato 😄 non m'ero accordo di un id al posto di user_id 🙂

    Vi posto qua sotto la versione perfettamente funzionante!

    
    $database = mysql_connect("host", "UserDatabase", "PasswordDatabase");
    mysql_select_db("NomeDatabase");
     
    $sql="SELECT * FROM phpbb_topics WHERE forum_id!=**2** ORDER BY topic_id DESC LIMIT **5**;";
    $risultati=mysql_query($sql,$database);
    while($riga=mysql_fetch_array($risultati)) {
    $target=$riga["topic_title"];
    $target1=$riga["topic_id"];
    $target3=$riga["topic_poster"];
    $sqlDUE="SELECT * FROM phpbb_users WHERE user_id='".$target3." LIMIT 1;'";
    $risultato=mysql_query($sqlDUE,$database);
    $valori = mysql_fetch_array ($risultato);
    $nick = $valori['username'];
     
    echo " <tr>";
    echo " <td style=\"text-align:center; border:1px solid white;\"> <a href=\"<A href="http://www.TUODOMINIO.it/forum/viewtopic.php?t=$target1\"><img">http://www.TUODOMINIO.it/forum/viewtopic.php?t=$target1\"><img src=\"forum/templates/subSilver/images/common/folder_new_hot.gif\" width=\"18\" height=\"20\" border=\"0\"></a> <a href=\"[http://www.TUODOMINIO.it/forum/viewtopic.php?t=$target1](http://www.TUODOMINIO.it/forum/viewtopic.php?t=$target1\)" title=\"\"> $target</a> (proposto da <a href=\"forum/profile.php?mode=viewprofile&amp;u=".$valori['user_id']."\">".$nick."</a>)</td> ";
    echo " </tr>";
     
    }
    
    

    In rosso vi ho evidenziato le cose da cambiare, rispettivamente: il forum dal quale non volete vengano attinti i topic (tipo io ho escluso le presentazioni, mi sembrava inutile riportare le presentazioni in prima pagina), il numero di titoli che volete vengano riportati in prima pagina (in qst caso vengono riportati solamente gli utimi 5 topic), per finire dovete modificare l'indirizzo del vostro dominio e la locazione dell'immagine da affiancare alle scritte (sempre se la volete!)

    il risultato sarà:

    imageTITOLO DEL TOPIC (proposto da USERNAME AUTORE)

    cliccando su TITOLO DEL TOPIC si va ovviamente nella pagina del topic e cliccando su USERNAME AUTORE si va al profilo dell'autore del topic!

    PS: Il codice funziona senza ulteriori modifiche così com'è se avete phpBB installato nella cartella forum/
    Semmai corregge i percorsi!

    Grazie, Napster! Senza il tuo aiuto ero ancora qui fra 2 anni!


  • User

    Eì possibile partendo da questo script ricavare una mod che ti stampa l'ultimo o gli ultimi topic aperto in home ma visualizzandone il contenuto, un sorta di news automatica?


  • Super User

    @likepassion said:

    Eì possibile partendo da questo script ricavare una mod che ti stampa l'ultimo o gli ultimi topic aperto in home ma visualizzandone il contenuto, un sorta di news automatica?

    Personalmente non credo che la modifica sia possibile (IHMO).

    Nella versione di phpbbplus c'è la possibilità di inserire le "news" nel forum e farle comparire nel portale 😄

    Per fare ciò che desideri, se hai una versione di phpbb 2, credo ci sia una mod da trovare che, al momento, non ho trovato. Magari qualcun'altro sa cosa si può fare 🙂


  • User

    Ciao a tutti...
    Ho provato il codice proposto da ZANARDI ma mi da un errore e non capisco il motivo sinceramente...
    ecco il cod:

    <?php
    $database = mysql_connect("host", "username", "password");
    mysql_select_db("nomedatabase");

    $sql="SELECT * FROM phpbb_topics WHERE forum_id!=2 ORDER BY topic_id DESC LIMIT 5;";
    $risultati=mysql_query($sql,$database);
    while($riga=mysql_fetch_array($risultati)) {
    $target=$riga["topic_title"];
    $target1=$riga["topic_id"];
    $target3=$riga["topic_poster"];
    $sqlDUE="SELECT * FROM phpbb_users WHERE user_id='".$target3." LIMIT 1;'";
    $risultato=mysql_query($sqlDUE,$database);
    $valori = mysql_fetch_array ($risultato);
    $nick = $valori['username'];

    echo " <tr>";
    echo " <td style="text-align:center; border:1px solid white;"> <a href="<A href="http://www.links4you.it/phpBB2/viewtopic.php?t=$target1"><img">http://www.links4you.it/phpBB2/viewtopic.php?t=$target1"><img src="forum/templates/subSilver/images/folder_new_hot.gif" width="18" height="20" border="0"></a> <a href="http://www.links4you.it/phpBB2/viewtopic.php?t=$target1" title=""> $target</a> (proposto da <a href="phpBB2/profile.php?mode=viewprofile&u=".$valori['user_id']."">".$nick."</a>)</td> ";
    echo " </tr>";

    }
    ?>

    Questo è il risultato :

    http://www.links4you.it/phpBB2/viewtopic.php?t=$target1">image $target (proposto da ".$nick.") "; echo " "; } ?>

    HELP PLEASE!!!!!!
    grazie a tutti


  • User

    Ma tu hai scritto così le ultime 3 istruzioni?

    
    echo " <tr>";
    
    echo " <td style=\"text-align:center; border:1px solid white;\"> <a href=\"<A href="http://www.links4you.it/phpBB2/viewtopic.php?t=$target1\"><img">http://www.links4you.it/phpBB2/viewtopic.php?t=$target1\"><img src=\"forum/templates/subSilver/images/folder_new_hot.gif\" width=\"18\" height=\"20\" border=\"0\"></a> <a href=\"http://www.links4you.it/phpBB2/viewtopic.php?t=$target1\" title=\"\"> $target</a> (proposto da <a href=\"phpBB2/profile.php?mode=viewprofile&amp;u=".$valori['user_id']."\">".$nick."</a>)</td> ";
    
    echo " </tr>";
    ```Ho dato un'occhiata veloce al codice riportato da te, mi è sembrato corretto, la prima cosa che ho pensato è stata, probabilmente manca qualche " ma così ad occhio mi pare ci sia tutto.
    
    Probabilmente è solo un errore dovuto alla visualizzazione nel forum (magari ricordati di usare i tag ```
     quando posti del codice ;) ) ma: 
    accertati che le tre istruzioni precedure da echo, siano su 3 righe distinte, nella forma quindi:
    
    [code]echo "      ";
    echo "      ";
    echo "      ";
    

    e non come le hai postate te:

    echo "      ";
    echo " ...
    ...
    ...
    ";
    echo "      "; 
    
    

    Altra cosa che mi viene in mente, è che io uso un foglio di stile, prova a sostituire:

     echo " <td style=\"text-align:center; border:1px solid white;\"> 
    ```con
    
    

    echo "<table style="text-align: center; width: 60%;" border="1" cellpadding="2" cellspacing="2">

    
    e 
    

    </td>

    con
    

    </table>

    Mi scuso se ho detto troppe monate! Facci sapere come va, che proviamo nuovamente!

  • User

    Ho provato ma.... nulla...
    Tengo a precisare che in php non sono una cima.... ma sinceramente non riesco a capire...

    ecco come visualizzo ora :

    "; echo " image $target(proposto da ".$nick.") "; echo " "; } ?>

    ed ecco la parte finale :
    code:

    echo " <tr>";
    echo " <table style="text-align: center; width: 60%;" border="1" cellpadding="2" cellspacing="2">
    <a href="<A href="http://www.links4you.it/phpBB2/viewtopic.php?t=$target1"><img">http://www.links4you.it/phpBB2/viewtopic.php?t=$target1\"<img src="phpBB2/templates/subSilver/images/folder_new_hot.gif" width="18" height="20" border="0"></a><a href="http://www.links4you.it/phpBB2/viewtopic.php?t=$target1" title=""> $target</a>(proposto da <a href="phpBB2/profile.php?mode=viewprofile&u=".$valori['user_id']."">".$nick."</a>)</table> ";
    echo " </tr>";

    alcune cose:

    • il file non deve essere necessariamente .php giusto ? io ce l'ho .html anche perchè la mia home page è in xhtml.
    • echo " " è su tre righe distinte, solo che la seconda essendo lunga la visualizza così.

    grazie per l'aiuto....


  • User

    dimenticavo..... il mio forum è situato nella cartell phpBB2...
    grazie ancora...


  • User

    @fabio.fp said:

    alcune cose:

    • il file non deve essere necessariamente .php giusto ? io ce l'ho .html anche perchè la mia home page è in xhtml.

    Ma certo che SI 😉 Deve essere .php! 🙂

    Ora si spiega tutto, prima cosa rinomina l'estensione della pagina da .html in .php!

    Poi, una volta scelto dove far comparire i 5 nuovi topic, nel codice sorgente della tua pagina scrivi:

    <?php
    

    e a seguire tutto il codice che avevo postato io!
    e concludi con:

    ?> 
    

    Prova, semmai ci sarà forse qualche piccolo ritocco. Facci sapere.


  • User

    forse non mi sono spiegato bene:

    Sto cercando di mettere il tutto in un livello in una pagina html :

    infatti nel codice è già presente l'apertura e la chiusura del php :

    <?php

    codice

    ?>

    :arrabbiato: