Pagina 1 di 1

Mod Last TopicList info su seconda tabella

Inviato: 06/09/2011, 22:15
da metal master
Vorrei chiedere informazioni per questa mod che l'amico bingo creo' sul forum phpbb.it non piu raggiungibile.

Tale mod permette l'inserimento degli ultimi 10 post in ordine di tempo in una tabella.

Bisognava creare il file mod_last_topiclist.php e poi copiarlo nella root del sito con questo contenuto

Codice: Seleziona tutto

<?php
        // ##### Mod Last_TopicList - Lista ultimi Topics - created by Micogian #####
   
        $sql = "SELECT
            tp.post_id, tp.topic_id, tp.forum_id, tp.post_subject, tp.post_time, tp.poster_id,
            tt.topic_id, tt.forum_id, tt.topic_title, tt.topic_time, tt.topic_views, tt.topic_replies, tt.topic_poster, tt.topic_first_poster_name, tt.topic_first_poster_colour,
            tt.topic_last_poster_id, tt.topic_last_poster_name, tt.topic_last_poster_colour, tt.topic_last_post_time, tt.topic_moved_id,
            tf.forum_id, tf.forum_name,
            tu.user_id, tu.username, tu.user_colour

           FROM " . TOPICS_TABLE . " tt, " . POSTS_TABLE . " tp, " . FORUMS_TABLE . " tf, " . USERS_TABLE . " tu
           WHERE tp.poster_id = tu.user_id
           AND tp.forum_id = tf.forum_id
           AND tp.topic_id = tt.topic_id 
           ORDER BY tp.post_time DESC LIMIT 0,40";
            $result = $db->sql_query($sql);
            $n_post = 0 ;
            $lista_topics = '' ;
            while ($row = $db->sql_fetchrow($result))
            {
               if ($auth->acl_get('f_read', $row['forum_id']) == 1) {
                  if( strpos($lista_topics, $row['topic_id']) == '0' AND $n_post < 10 ){
             if (strlen($row['topic_title'] > '80'))
             {
             $topic_title_cor = substr($row['topic_title'],0,79) . "...";
             }else{
             $topic_title_cor = $row['topic_title'];
             }

               $template->assign_block_vars('last_topiclist', array(
           'TOPIC_LINK'        => "{$phpbb_root_path}viewtopic.$phpEx" . "?t=" . $row['topic_id'] . "&p=" . $row['post_id'] . "&#p" . $row['post_id'],
           'TOPIC_TITLE'       => $topic_title_cor ,
           'FORUM_LINK'        => "{$phpbb_root_path}viewforum.$phpEx" . '?f='.$row['forum_id'],
           'FORUM_NAME'        => $row['forum_name'],
           'TOPIC_VIEWS'       => $row['topic_views'],
           'TOPIC_REPLIES'     => $row['topic_replies'],
           'LAST_POST_TIME'    => date("d.m.Y, H:i",$row['topic_last_post_time']),
           'LAST_AUTHOR_FULL'  => get_username_string('full', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour'])   
                  ));
               $lista_topics .= "," . $row['topic_id'] ;
                  $n_post = ++$n_post ;
                  }
               }
            }
        // ##### END Mod Last_TopicList - Lista ultimi Topics - created by Micogian #####
?>
poi creare un file mod_last_topiclist_body.html con questo codice

Codice: Seleziona tutto

        <div class="forabg">
                    <div class="inner"><span class="corners-top"><span></span></span>
                    <ul class="topiclist">
                          <li class="header">
                             <dl>
                              <dt style="text-align: left; width: 42%;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ultimi Topics</dt>
                              <dd style="text-align: left; width: 17%;">&nbsp;Nome del Forum</dd>
                              <dd style="text-align: center; width: 6%;">&nbsp;{L_REPLIES}</dd>
                              <dd style="text-align: center; width: 6%;">&nbsp;{L_VIEWS}</dd>               
                              <dd style="text-align: center; width: 17%;">&nbsp;Ultimo Messaggio</dd>
                              <dd style="text-align: right;">&nbsp;Data</dd>
                             </dl>
                          </li>
                    </ul>
               <!-- BEGIN last_topiclist -->
                <ul class="topiclist forums">     
                          <li class="row">
                             <dl>
                                <dt style="text-align: left; width: 42%;"><a href="{last_topiclist.TOPIC_LINK}"><b>{last_topiclist.TOPIC_TITLE}</b></a></dt>
                                <dd style="text-align: left; width: 17%;"><a href="{last_topiclist.FORUM_LINK}"><span style="color:#0066FF"><b>{last_topiclist.FORUM_NAME}</b></dd>
                               
                                <dd style="text-align: center; width: 6%">{last_topiclist.TOPIC_REPLIES}</dd>
                                <dd style="text-align: center; width: 6%;">{last_topiclist.TOPIC_VIEWS}</dd>
                                <dd style="text-align: center;  width: 17%;"><b>{last_topiclist.LAST_AUTHOR_FULL}</b></dd><span style="color:#0066FF"><dd style="text-align: right;">{last_topiclist.LAST_POST_TIME}</dd>
                             </dl>
                          </li>
                </ul>
              <!-- END last_topiclist -->
                <span class="corners-bottom"><span></span></span>
                 </div>
            </div>
            <br />             
E bisogna copiarlo nel cartella template del tema in uso


bisogna poi aprire il file index.php nella root trovare

Codice: Seleziona tutto

// Output page
ed inserire prima

Codice: Seleziona tutto

include($phpbb_root_path . 'mod_last_topiclist.' . $phpEx);

ultimo passo: andare nella cartella template del tema,trovare e aprire index_body.html,trovare

Codice: Seleziona tutto

<!-- INCLUDE forumlist_body.html -->
ed inserire prima

Codice: Seleziona tutto

<!-- INCLUDE mod_last_topiclist_body.html -->

Vorrei chiedere all'amico bingo: e possibile creare una seconda tabella in un altro punto dell'index del forum,che comprenda gli ultimi 5 topic solo di una sezione del forum?

Re: Mod Last TopicList info su seconda tabella

Inviato: 06/09/2011, 23:40
da Micogian
Questa Mod è stata abbandonata in quanto la stessa cosa si ottiene con la Mod Topten Topics.
Uno dei problemi di quella Mod è che in alcuni casi si aveva un notevole rallentamento, specialmente con database corposi. Il Motivo è da attribuire al fatto che la query estrae i dati dalla tabella POSTS ma dato che uno solo post per Topic viene evidenziato a volte era necessario aumentare il numero dei records da trattare.
L'ultima versione di Topten Topics, che visualizza gli ultimi topics, i topics più visti e gli ultimi posts per quest'ultima Lista elabora la tabella topics.
Estrarre una Lista dei posts di una Sezione è la cosa più semplice, basta inserire nella query il forum_id da trattare.

Re: Mod Last TopicList info su seconda tabella

Inviato: 07/09/2011, 0:15
da metal master
Quindi praticamente la versione che ho nel mio forum e' stata abbandonata in favore della topten topics.

E' se nella topten topics vorrei includere solo gli ultimi post(risposte)come posso modificarla?

Re: Mod Last TopicList info su seconda tabella

Inviato: 07/09/2011, 0:21
da metal master
cioe quello che dico io e': e' possibile adattare la nuova,con la stessa struttura di questa vecchia? (Ultimi Topics,Nome del Forum,Risposte,Visite,Ultimo Messaggio,Data)