[RELEASED] Mod Topten Topics ver 1.0.2

Questa discussione si intitola [RELEASED] Mod Topten Topics ver 1.0.2 nella sezione MODs in sviluppo. Nome MOD: [DEV] Top Ten Topics ver. 1.0.2 Descrizione MOD: Crea una tabella nella Home con tre liste diverse: i 10 Topics più recenti (data, ...

[RELEASED] Mod Topten Topics ver 1.0.2

Messaggioda Micogian » 11/12/2010, 17:59

Nome MOD: [DEV] Top Ten Topics ver. 1.0.2
Descrizione MOD: Crea una tabella nella Home con tre liste diverse: i 10 Topics più recenti (data, Titolo, Autore), i 10 Topics più visti (Visite, Titolo, Autore) ed i 10 ultimi Posts (risposte) (Titolo, Autore).

Demo: http://www.actafungorum.org/actaforum/ (fondo pagina)

Cronologia:
  • 23/01/2010 - Iniziato sviluppo della MOD a due colonne (più recenti e più visti).
  • 25/01/2010 - Modifica della Mod con inserimento di una terza lista (Topics con maggiori repliche)
  • 11/12/2010 - Revisione della Mod: creato un file mod_topten.php che contiene 4 query relative a "Ultimi Topics, Topics più visti, Topics con maggiori risposte e Ultimi Posts (ultime risposte)".
    Di queste 4 possibilità se ne possono scegliere 3 (per ragioni di spazio).
    Il codice non viene più inserito nel file index.php ma viene inserito tramite un "include", questo semplifica le cose lasciando quasi inalteraro il file index.php originale.
    La stessa cosa avviene con il template, attraverso un file esterno che viene "incluso" in insex_body.html.

Autore: Micogian (alias Bingo)
Versioni phpBB compatibili: 3.0.x

Istruzioni:

1) creare un file mod_topten_topics.php
2) inserire "include" nel file index.php
3) creare template mod_toptent_topics_body.html
4) inserire "include" nel file styles/prosilver/template/index_body.html

1) Creare il file mod_topten_topics.php
Il file va inserito nella root del forum, questo il contenuto:
Codice: Seleziona tutto
<?php
// MOD Topten Topics ver. 1.0.2
// Topics più recenti, Topics più visti, Topics con maggiori risposte e Posts più recenti
// created by Micogian 2010

// configurazione: numero dei recods da visualizzare nella Lista

$lista = 10 ; // sostituire il numero della variabile $lista se si desidera diminuire/aumentare il numero dei Topics
$lista_dati = 20 ;  // numero di topics  da estrarre dalla tabella (alcuni topics potrebbero non aver il permesso di lettura)
$lista_posts = 50 ; // numero di posts da estrarre dalla tabella (il numero è più alto perchè viene inserito un solo post per topic)

function mese_cor($data_cor)
{
$data_short = str_replace("Jan","gen", $data_cor);
$data_short = str_replace("Feb","feb", $data_cor);
$data_short = str_replace("Mar","mar", $data_cor);
$data_short = str_replace("Apr","apr", $data_cor);
$data_short = str_replace("Mag","mag", $data_cor);
$data_short = str_replace("Jun","giu", $data_cor);
$data_short = str_replace("Jul","lug", $data_cor);
$data_short = str_replace("Aug","ago", $data_cor);
$data_short = str_replace("sep","set", $data_cor);
$data_short = str_replace("Oct","ott", $data_cor);
$data_short = str_replace("Nov","nov", $data_cor);
$data_short = str_replace('Dec','dic', $data_cor);
return $data_short;
}
//---------- 10 Topics più Recenti start -----------//

$sql1 = "SELECT tt.topic_id, tt.forum_id, tt.topic_title, tt.topic_time, tt.topic_moved_id, tt.topic_first_poster_name,
    ft.forum_id, ft.forum_name
    FROM " . TOPICS_TABLE . " tt, " . FORUMS_TABLE . " ft
    WHERE tt.topic_type = 0
    AND tt.topic_moved_id = 0
    AND tt.forum_id = ft.forum_id
    ORDER BY tt.topic_time DESC LIMIT 0,$lista_dati";
$result1 = $db->sql_query($sql1);
    $n1 = 0;
    while ($row1 = $db->sql_fetchrow($result1))
    {
          if ($auth->acl_get('f_read', $row1['forum_id']) == 1)
        {
            if ($n1 < $lista)
       {
           if (strlen($row1['topic_title']) > 28)
      {
          $topic_title1 = substr($row1['topic_title'],0,27) . "...";
      }else{
          $topic_title1 = $row1['topic_title'];
      }
      $last_topic_link[$n1]   = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row1['forum_id'] . "&amp;t=" . $row1['topic_id']);
                $last_topic_title[$n1]     = $row1['topic_title'];
         $last_topic_title_short[$n1]  = $topic_title1;
         $last_topic_forum[$n1]     = $row1['forum_name'];
                $last_topic_author[$n1]    = $row1['topic_first_poster_name'];
                $last_topic_data[$n1]      = date("d M",$row1['topic_time']);
             ++$n1 ;             
            }
        }
    }
//---------- 10 Topics più Recenti end -----------//


//---------- 10 Topics più Visti start -----------//

$sql2 = "SELECT tt.topic_id, tt.forum_id, tt.topic_title, tt.topic_first_poster_name, tt.topic_views,
    ft.forum_id, ft.forum_name
    FROM " . TOPICS_TABLE . " tt, " . FORUMS_TABLE . " ft
    WHERE tt.forum_id = ft.forum_id
    ORDER BY tt.topic_views DESC LIMIT 0,$lista_dati";
$result2 = $db->sql_query($sql2);
    $n2 = 0 ;
    while ($row2 = $db->sql_fetchrow($result2))
    {
       if ($auth->acl_get('f_read', $row2['forum_id']) == 1)
       {
           if ($n2 < $lista)
      {
      if (strlen($row2['topic_title']) > 28)
      {
          $topic_title2 = substr($row2['topic_title'],0,27) . "...";
      }else{
          $topic_title2 = $row2['topic_title'];
      }
         $view_topic_link[$n2]      = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row2['forum_id'] . "&amp;t=" . $row2['topic_id']);
                $view_topic_title[$n2]      = $row2['topic_title'];
         $view_topic_title_short[$n2]  = $topic_title2;   
         $view_topic_forum[$n2]     = $row2['forum_name'];      
                $view_topic_author[$n2]    = $row2['topic_first_poster_name'];
                $view_topic_views[$n2]     = $row2['topic_views'];
                ++$n2 ;
           }
       }
    }
//---------- 10 Topics più visti end -----------//

/*

//---------- 10 Topics con più risposte start -----------//
$sql3 = "SELECT tt.topic_id, tt.forum_id, tt.topic_title, tt.topic_first_poster_name, tt.topic_replies,
    ft.forum_id, ft.forum_name
    FROM " . TOPICS_TABLE . " tt, " . FORUM_TABLE . " ft
    ORDER BY tt.topic_replies DESC LIMIT 0,$lista_dati";
$result3 = $db->sql_query($sql3);
    $n3 = 0 ;
    while ($row3 = $db->sql_fetchrow($result3))
    {
        if ($auth->acl_get('f_read', $row2['forum_id']) == 1)
        {
            if ($n3 < $lista)
            {
                if (strlen($row3['topic_title']) > 28)
      {
          $topic_title3 = substr($row3['topic_title'],0,27) . "...";
      }else{
          $topic_title3 = $row3['topic_title'];
      }
      $replies_topic_link[$n3]     = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row3['forum_id'] . "&amp;t=" . $row3['topic_id']);
                $replies_topic_title[$n3]          = $row3['topic_title'];
                $replies_topic_title_short[$n3]       = $topic_title3;
                $replies_topic_forum[$n3]          = $row3['forum_name'];
                $replies_topic_author[$n3]         = $row3['topic_first_poster_name'];
                $replies_topic_replies[$n3]        = $row3['topic_replies'];
                ++$n3 ;
            }
        }
    }
//---------- 10 Topics con più risposte end -----------//
*/


//---------- 10 Ultimi posts start -----------//

$sql4 = "SELECT pt.post_id, pt.topic_id, pt.forum_id, pt.post_subject, pt.post_time, pt.poster_id,
    tt.topic_id, tt.topic_title,
    ut.user_id, ut.username,
    ft.forum_id, ft.forum_name
    FROM " . POSTS_TABLE . " pt, " . TOPICS_TABLE . " tt, " . FORUMS_TABLE . " ft, " . USERS_TABLE . " ut
    WHERE pt.poster_id = ut.user_id
    AND pt.forum_id = ft.forum_id
    AND tt.topic_id = pt.topic_id
    ORDER BY pt.post_time DESC LIMIT 0,$lista_posts";
$result4 = $db->sql_query($sql4);
    $n4 = 0 ;
    $lista_topics = '' ;
    while ($row4 = $db->sql_fetchrow($result4))
    {
        if ($auth->acl_get('f_read', $row4['forum_id']) == 1)
        {
              if( strpos($lista_topics, $row4['topic_id']) == '0' AND $n4 < $lista )
            {
           if (strlen($row4['topic_title']) > 28)
           {
          $post_title = substr($row4['topic_title'],0,27) . "...";
           }else{
          $post_title = $row4['topic_title'];
           }
         $last_post_link[$n4]      = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row4['forum_id'] . "&amp;t=" . $row4['topic_id'] . "#p" . $row4['post_id']);
                $last_post_title[$n4]       = $row4['topic_title'];
                $last_post_title_short[$n4]   = $post_title;
                $last_post_forum[$n4]       = $row4['forum_name'];
                $last_post_author[$n4]      = $row4['username'];
                $lista_topics .= "," . $row4['topic_id'] ;
                ++$n4 ;
            }
        }
    }
//---------- 10 Ultimi posts end -----------//

for ($x = 0; $x < $lista; ++$x)
{
 $template->assign_block_vars('topten_list',array(
   'LAST_TOPIC_LINK'   => $last_topic_link[$x],
   'LAST_TOPIC_TITLE'      => $last_topic_title[$x],
   'LAST_TOPIC_TITLE_SHORT'   => $last_topic_title_short[$x],
   'LAST_TOPIC_FORUM'      => $last_topic_forum[$x],
   'LAST_TOPIC_AUTHOR'      => $last_topic_author[$x],
   'LAST_TOPIC_DATA'         => mese_cor($last_topic_data[$x]),

   'VIEW_TOPIC_LINK'   => $view_topic_link[$x],
   'VIEW_TOPIC_TITLE'      => $view_topic_title[$x],
   'VIEW_TOPIC_TITLE_SHORT'   => $view_topic_title_short[$x],
   'VIEW_TOPIC_FORUM'      => $view_topic_forum[$x],
   'VIEW_TOPIC_AUTHOR'      => $view_topic_author[$x],
   'VIEW_TOPIC_VIEWS'      => $view_topic_views[$x],

   //'REPLIES_TOPIC_LINK'      => $replies_topic_link[$x],
   //'REPLIES_TOPIC_TITLE'      => $replies_topic_title[$x],
   //'REPLIES_TOPIC_TITLE_SHORT'   => $replies_topic_title_short[$x],
   //'REPLIES_TOPIC_FORUM'      => $replies_topic_forum[$x],
   //'REPLIES_TOPIC_AUTHOR'   => $replies_topic_author[$x],
   //'REPLIES_TOPIC_REPLIES'   => $replies_topic_replies[x],

   'LAST_POST_LINK'         => $last_post_link[$x],
   'LAST_POST_TITLE'         => $last_post_title[$x],
   'LAST_POST_TITLE_SHORT'      => $last_post_title_short[$x],
   'LAST_POST_FORUM'         => $last_post_forum[$x],
   'LAST_POST_AUTHOR'      => $last_post_author[$x],
   ));
}

?>


2) Modifica file index.php

TROVA
Codice: Seleziona tutto
// Output page

INSERISCI: prima

Codice: Seleziona tutto
include($phpbb_root_path . 'mod_topten_topics.' . $phpEx);


3) Creare file mod_topten_topics_body.html (Prosilver)
Il file va inserito in styles/prosilver/template/ questo il contenuto:
Codice: Seleziona tutto
<!--  Mod topten_topics ver 1.0.2 by Micogian start -->
<div class="forabg">
   <div class="inner"><span class="corners-top"><span></span></span>
      <ul class="topiclist">
         <li class="header">
            <dl class="icon">
               <dd style="width: 34%">&nbsp;Ultimi Topics</dd>
               <dd style="width: 33%">&nbsp;Topics pi&ugrave; visti</dd>
               <dd>&nbsp;Ultimi Posts</dd>
            </dl>
         </li>
      </ul>
      <ul  class="topiclist forums" >
<!-- BEGIN topten_list -->
         <li>
            <dl>
               <dd style="width: 34%; padding: 1px">{topten_list.LAST_TOPIC_DATA} &nbsp;<a style="font-weight: bold" href="{topten_list.LAST_TOPIC_LINK}" title="{topten_list.LAST_TOPIC_TITLE} (in: {topten_list.LAST_TOPIC_FORUM})">{topten_list.LAST_TOPIC_TITLE_SHORT}</a> <span style="color: #708090">(di {topten_list.LAST_TOPIC_AUTHOR})</span></dd>
               <dd style="width: 33%; padding: 1px">{topten_list.VIEW_TOPIC_VIEWS} &nbsp;<a style="font-weight: bold" href="{topten_list.VIEW_TOPIC_LINK}" title="{topten_list.VIEW_TOPIC_TITLE} (in: {topten_list.VIEW_TOPIC_FORUM})">{topten_list.VIEW_TOPIC_TITLE_SHORT}</a> <span style="color: #708090">(di {topten_list.VIEW_TOPIC_AUTHOR})</span></dd>
               <dd style="padding: 1px"><a style=" font-weight: bold" href="{topten_list.LAST_POST_LINK}" title="{topten_list.LAST_POST_TITLE} (in: {topten_list.LAST_POST_FORUM})">{topten_list.LAST_POST_TITLE_SHORT}</a> <span style="color: #708090">(di {topten_list.LAST_POST_AUTHOR})</span></dd>               
            </dl>
         </li>   
<!-- END topten_list -->
      </ul>
   <span class="corners-bottom"><span></span></span></div>
</div>
<!--  Mod topten_topics ver 1.0.2 by Micogian end -->


3 bis) Creare file mod_topten_topics_body.html (Subsilver2)
Il file va inserito in styles/subsilver2/template/ questo il contenuto:
Codice: Seleziona tutto
<!--  Mod topten_topics ver 1.0.2 by Micogian start -->
<table class="tablebg" width="100%" cellspacing="1">
<tr>
   <th style="width: 34%">Ultimi topics</th>
   <th style="width: 33%">Topics pi&ugrave; visti</th>
   <th>Ultimi posts</th>
</tr>
<!-- BEGIN topten_list -->
<tr class= "row1">
   <td width="34%">{topten_list.LAST_TOPIC_DATA} &nbsp;<a style="font-weight: bold" href="{topten_list.LAST_TOPIC_LINK}" title="{topten_list.LAST_TOPIC_TITLE} (in: {topten_list.LAST_TOPIC_FORUM})">{topten_list.LAST_TOPIC_TITLE_SHORT}</a> <span style="color: #708090">(di {topten_list.LAST_TOPIC_AUTHOR})</span></td>
   <td width="33%">{topten_list.VIEW_TOPIC_VIEWS} &nbsp;<a style="font-weight: bold" href="{topten_list.VIEW_TOPIC_LINK}" title="{topten_list.VIEW_TOPIC_TITLE} (in: {topten_list.VIEW_TOPIC_FORUM})">{topten_list.VIEW_TOPIC_TITLE_SHORT}</a> <span style="color: #708090">(di {topten_list.VIEW_TOPIC_AUTHOR})</span></td>
   <td><a style=" font-weight: bold" href="{topten_list.LAST_POST_LINK}" title="{topten_list.LAST_POST_TITLE} (in: {topten_list.LAST_POST_FORUM})">{topten_list.LAST_POST_TITLE_SHORT}</a> <span style="color: #708090">(di {topten_list.LAST_POST_AUTHOR})</span></td>               
</tr>
<!-- END topten_list -->
<br />
</table>

<br clear="all" />
<!--  Mod topten_topics ver 1.0.2 by Micogian end -->


4) Modifica index_body.html

APRI: index_body.html
TROVA:
Codice: Seleziona tutto
<!-- INCLUDE forumlist_body.html -->

INSERISCI: dopo
Codice: Seleziona tutto
<!-- INCLUDE mod_topten_topics_body.html -->

Se vogliamo inserire la tabella prima dell'indice dei Forum l'include lo mettiamo prima.

Modifica effettuata il 12/12/2010
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

  • Condividi questa discussione
  • Ti piace questa discussione?
    Condividila! :)

Re: [DEV] Mod Topten Topics ver 1.0.2

Messaggioda Haku » 12/12/2010, 3:45

Bingo,hai anche sotto mano la modifica per subsilver?O provo a modificare e poi la posto io? =)
Avatar utente
Haku
Traduttore
Traduttore
 
Messaggi: 2527
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Mod Topten Topics ver 1.0.2

Messaggioda Micogian » 12/12/2010, 5:58

Inserita anche la versione per subsilver2.
Se vogliamo eliminare le righe di divisione nella tabella va cambiata la class="row1".
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

Re: [DEV] Mod Topten Topics ver 1.0.2

Messaggioda Carlo » 02/05/2011, 13:13

MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Dropbox: 2 GB di spazio di archiviazione GRATIS! Registrati ora!
BidVertiser: Guadagna con il tuo sito! Registrati ora!
Avatar utente
Carlo
Amministratore
Amministratore
 
Messaggi: 8897
Iscritto il: 19/04/2009, 10:24
Località: Puglia
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:
PHP: 5.3.8
Database: MySQL 5.1.60-community-log



Torna a MODs in sviluppo

SEO Search Tags

       Mod topten_topics ver 1.0.2 by Micogian

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

  • Pubblicità
cron