phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Topten Topics

Forum contenente i topic di tutte le MODs rilasciate nel nostro forum.
Possono essere scaricate anche tramite phpBBItalia.net Downloader.
maverix
Utente
Utente
Messaggi: 337
Iscritto il: 29/04/2011, 13:22
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
PHP: 5.4.43
Database: MySQL(i) 5.5.42-cll
Località: Lago di Garda
Contatta:

Re: Topten Topics

Messaggio da maverix » 26/09/2011, 21:02

Interessante la proposta, un utente si sceglie il lasso di tempo preferito :)
Se ti va di descrivere la modifica io ci provo :)

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Topten Topics

Messaggio da Micogian » 26/09/2011, 22:19

Modifica alla sezione "Topic più visti"
Viene aggiunta la possibilità di selezionare il periodo di valutazione (6 mesi per default, 12 mesi, tutto l'archivio):

Sostituire la parte relativa a "Topics più visti" nel file mod_topten_topics.php con la seguente:

Codice: Seleziona tutto

//---------- 10 Topics più Visti start -----------//
// modifica Mod: inserisce la selezione del periodo di valutazione
$data_cor = time() ; // timestamp data corrente
$data_6 = ($data_cor - 15811200) ;  // timestamp di 182 giorni fa
$data_12 = ($data_cor - 31536000) ; // timestamp di 365 giorni fa

$data_views = $_POST['sel_views'] ; // opzione selezionata

// assegnazione dell'opzione scelta, per default (nessuna selezione) è 6 mesi
if ($data_views == '' || $data_views == '1')
{
$template->assign_var('TIME_SELECTED', '1');
$data_ini = $data_6 ;
}
if ($data_views == '2' )
{
$template->assign_var('TIME_SELECTED', '2');
$data_ini = $data_12 ;
}
if ($data_views == '3')
{
$template->assign_var('TIME_SELECTED', '3');
$data_ini = '0' ;
}
// fine modifica Modifica periodo di valutazione

$sql2 = "SELECT tt.topic_id, tt.forum_id, tt.topic_title, tt.topic_first_poster_name, tt.topic_views,tt.topic_time,
    ft.forum_id, ft.forum_name 
    FROM " . TOPICS_TABLE . " tt, " . FORUMS_TABLE . " ft
    WHERE tt.forum_id = ft.forum_id
    AND tt.topic_time > $data_ini
    ORDER BY tt.topic_views DESC LIMIT 0,$list_rec";
$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 < $list_view)
            {
                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'] . "&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 ;
            }else{
            break ;
            }
        }
    }
//---------- 10 Topics più visti end -----------//
 
Modifica del file mod_topten_topics_body.html (versione per style Prosilver)
Sostituire la riga:

Codice: Seleziona tutto

<dd style="width: 33%">&nbsp;Topics pi&ugrave; visti</dd>
con questa:

Codice: Seleziona tutto

<dd style="width: 33%"> 
					<form name="views" action="index.php" method="post">
						&nbsp;Topics pi&ugrave; visti&nbsp;&nbsp;&nbsp;&nbsp;
						<select style="font: 10px Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; background: #859D90; width: 150px;" name="sel_views" onChange='this.form.submit()' >
							<!-- IF TIME_SELECTED == '1' --><option value='1' selected><!-- ELSE --><option value='1'><!-- ENDIF -->ultimi 6 mesi</option>
							<!-- IF TIME_SELECTED == '2' --><option value='2' selected><!-- ELSE --><option value='2'><!-- ENDIF -->ultimi 12 mesi</option>
							<!-- IF TIME_SELECTED == '3' --><option value='3' selected><!-- ELSE --><option value='3'><!-- ENDIF -->tutto</option>
						</select>
					</form>
					</dd>
E' possibile modificare il colore del modulo select. Se volete assegnare lo stesso colore della tabella è necessario controllare il codice esadecimale del file bg_list.gif che gestisce la class="forabg" e che si trova in theme/images/ del vostro stile e modificare il valore background: #859D90;
Anche il valore color: #FFFFFF; può essere modificatoe va inserito a seconda del colore della tabella.

Aggiornare la cache del template da PCA e tutto dovrebbe funzionare. Il periodo di default è di 6 mesi, le altre opzioni sono 12 mesi e tutto il periodo.

DEMO: http://www.actafungorum.org/actaforum/index.php

maverix
Utente
Utente
Messaggi: 337
Iscritto il: 29/04/2011, 13:22
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
PHP: 5.4.43
Database: MySQL(i) 5.5.42-cll
Località: Lago di Garda
Contatta:

Re: Topten Topics

Messaggio da maverix » 27/09/2011, 10:26

bingo ha scritto:.

Aggiornare la cache del template da PCA e tutto dovrebbe funzionare. Il periodo di default è di 6 mesi, le altre opzioni sono 12 mesi e tutto il periodo.

DEMO: http://www.actafungorum.org/actaforum/index.php
Cliccando sul tuo forum però di default è "TUTTO" .... è corretto?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Topten Topics

Messaggio da Micogian » 27/09/2011, 11:32

maverix ha scritto:
bingo ha scritto:.

Aggiornare la cache del template da PCA e tutto dovrebbe funzionare. Il periodo di default è di 6 mesi, le altre opzioni sono 12 mesi e tutto il periodo.

DEMO: http://www.actafungorum.org/actaforum/index.php
Cliccando sul tuo forum però di default è "TUTTO" .... è corretto?
Si, è una modifica che ho fatto in seguito. Ho ritenuto che sia più corretto visualizzare la lista completa e lasciare la scelta all'utente per le altre opzioni.
Per default si intende l'opzione "vuota", quindi quando si apre la pagina e non sono attivate le opzioni di scelta.
Basta usare queste condizioni:

Codice: Seleziona tutto

// assegnazione dell'opzione scelta, per default è Tutto
if ($data_views == '' || $data_views == '3')
{
$template->assign_var('TIME_SELECTED', '3');
$data_ini = '0' ;
}
if ($data_views == '1' )
{
$template->assign_var('TIME_SELECTED', '1');
$data_ini = $data_6 ;
}
if ($data_views == '2')
{
$template->assign_var('TIME_SELECTED', '2');
$data_ini = $data_12 ;
}

maverix
Utente
Utente
Messaggi: 337
Iscritto il: 29/04/2011, 13:22
Sesso: Maschio
Versione: 3.1.5
Server: UNIX/Linux
PHP: 5.4.43
Database: MySQL(i) 5.5.42-cll
Località: Lago di Garda
Contatta:

Re: Topten Topics

Messaggio da maverix » 28/09/2011, 19:13

Ciao Bingo, ho fatto tutta la modifica e funziona perfettamente :)
Ma ci avevi già pensato o è stata una mia idea?
Ho fatto come te, lascio per default "di sempre" (ho modificato la scritta) e poi uno si seleziona il periodo che vuole.
Il colore della casella invece mi va bene che sia diverso, lo si nota di più.
Grazie ancora per la disponibilità.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Topten Topics

Messaggio da Micogian » 28/09/2011, 19:49

In effetti ci pensavo da un pò perchè ero consapevole che dei topics piuttosto vecchi avrebbero condizionato la Lista.
Il tuo intervento mi ha convinto a trovare una soluzione, non mi sembrava giusto limitare il periodo, credo che la soluzione adottata sia quella più corretta. Si potrebbe anche modificare il periodo di ricerca ma questo dipende da Forum a Forum.

girello
Utente
Utente
Messaggi: 191
Iscritto il: 16/02/2010, 11:36
Sesso: Maschio
Versione: 3.1.4
Server: UNIX/Linux
PHP: 5.5.19
Località: mantova
Contatta:

Re: Topten Topics

Messaggio da girello » 29/09/2011, 14:00

bingo ha scritto:Modifica alla sezione "Topic più visti"
Viene aggiunta la possibilità di selezionare il periodo di valutazione (6 mesi per default, 12 mesi, tutto l'archivio):

Sostituire la parte relativa a "Topics più visti" nel file mod_topten_topics.php con la seguente:

Codice: Seleziona tutto

//---------- 10 Topics più Visti start -----------//
// modifica Mod: inserisce la selezione del periodo di valutazione
$data_cor = time() ; // timestamp data corrente
$data_6 = ($data_cor - 15811200) ;  // timestamp di 182 giorni fa
$data_12 = ($data_cor - 31536000) ; // timestamp di 365 giorni fa

$data_views = $_POST['sel_views'] ; // opzione selezionata

// assegnazione dell'opzione scelta, per default (nessuna selezione) è 6 mesi
if ($data_views == '' || $data_views == '1')
{
$template->assign_var('TIME_SELECTED', '1');
$data_ini = $data_6 ;
}
if ($data_views == '2' )
{
$template->assign_var('TIME_SELECTED', '2');
$data_ini = $data_12 ;
}
if ($data_views == '3')
{
$template->assign_var('TIME_SELECTED', '3');
$data_ini = '0' ;
}
// fine modifica Modifica periodo di valutazione

$sql2 = "SELECT tt.topic_id, tt.forum_id, tt.topic_title, tt.topic_first_poster_name, tt.topic_views,tt.topic_time,
    ft.forum_id, ft.forum_name 
    FROM " . TOPICS_TABLE . " tt, " . FORUMS_TABLE . " ft
    WHERE tt.forum_id = ft.forum_id
    AND tt.topic_time > $data_ini
    ORDER BY tt.topic_views DESC LIMIT 0,$list_rec";
$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 < $list_view)
            {
                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'] . "&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 ;
            }else{
            break ;
            }
        }
    }
//---------- 10 Topics più visti end -----------//
Modifica del file mod_topten_topics_body.html (versione per style Prosilver)
Sostituire la riga:

Codice: Seleziona tutto

<dd style="width: 33%">&nbsp;Topics pi&ugrave; visti</dd>
con questa:

Codice: Seleziona tutto

<dd style="width: 33%"> 
					<form name="views" action="index.php" method="post">
						&nbsp;Topics pi&ugrave; visti&nbsp;&nbsp;&nbsp;&nbsp;
						<select style="font: 10px Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; background: #859D90; width: 150px;" name="sel_views" onChange='this.form.submit()' >
							<!-- IF TIME_SELECTED == '1' --><option value='1' selected><!-- ELSE --><option value='1'><!-- ENDIF -->ultimi 6 mesi</option>
							<!-- IF TIME_SELECTED == '2' --><option value='2' selected><!-- ELSE --><option value='2'><!-- ENDIF -->ultimi 12 mesi</option>
							<!-- IF TIME_SELECTED == '3' --><option value='3' selected><!-- ELSE --><option value='3'><!-- ENDIF -->tutto</option>
						</select>
					</form>
					</dd>
E' possibile modificare il colore del modulo select. Se volete assegnare lo stesso colore della tabella è necessario controllare il codice esadecimale del file bg_list.gif che gestisce la class="forabg" e che si trova in theme/images/ del vostro stile e modificare il valore background: #859D90;
Anche il valore color: #FFFFFF; può essere modificatoe va inserito a seconda del colore della tabella.

Aggiornare la cache del template da PCA e tutto dovrebbe funzionare. Il periodo di default è di 6 mesi, le altre opzioni sono 12 mesi e tutto il periodo.

DEMO: http://www.actafungorum.org/actaforum/index.php

ciao bingo è possibile averla anche per subsilver 2? grazie mille
Capitan Girello

http://www.photolandia.net
phpbb V 2.0-RC1
FORUM FOTOGRAFICO

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Topten Topics

Messaggio da Micogian » 29/09/2011, 15:29

girello ha scritto:ciao bingo è possibile averla anche per subsilver 2? grazie mille
E' da tempo che non lavoro più con subsilver2 ma basta modificare solamente una riga nel template (il php è uguale per tutti).

Nel file mod_topten_topics.html trova la riga

Codice: Seleziona tutto

<th style="width: 33%">Topics pi&ugrave; visti</th>
e sostituiscila con

Codice: Seleziona tutto

<th style="width: 33%">
               <form name="views" action="index.php" method="post">
                  &nbsp;Topics pi&ugrave; visti&nbsp;&nbsp;&nbsp;&nbsp;
                  <select style="font: 10px Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; background: #859D90; width: 150px;" name="sel_views" onChange='this.form.submit()' >
                     <!-- IF TIME_SELECTED == '1' --><option value='1' selected><!-- ELSE --><option value='1'><!-- ENDIF -->ultimi 6 mesi</option>
                     <!-- IF TIME_SELECTED == '2' --><option value='2' selected><!-- ELSE --><option value='2'><!-- ENDIF -->ultimi 12 mesi</option>
                     <!-- IF TIME_SELECTED == '3' --><option value='3' selected><!-- ELSE --><option value='3'><!-- ENDIF -->tutto</option>
                  </select>
               </form>
               </th>
In pratica è uguale alla modifica per prosilver, cambiano solo i tag <dd> che in subsilver2 sono <th>
Il resto è codice HTML.

Avatar utente
Lohanne
Utente
Utente
Messaggi: 78
Iscritto il: 13/06/2011, 15:45
Sesso: Femmina
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.4.6
Database: MySQL(i) 5.0.75-0ubuntu10.5
Contatta:

Re: Topten Topics

Messaggio da Lohanne » 05/10/2011, 18:47

scusami bingo,
ho installato la tua ottima mod che ha funzionato benissimo pre tre mesi.
adesso mi ha reso inaccessibile il forum

Immagine

cosa può essere successo ?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Topten Topics

Messaggio da Micogian » 05/10/2011, 20:34

Se la Mod ha funzionato finora si può pensare a qualcosa di nuovo che crea un errore e le cose nuove nella Mod sono i Topics.
Potrebbe essere qualcosa nel Topic che mette in crisi la query, può essere il titolo (un carattere strano, un apice), qualcosa insomma che non viene correttamente interpretato.
La prova più semplice potrebbe essere quella di modificare il numero dei Topics elaborati.
Nella query la parte finale ORDER BY .... DESC LIMIT 0,50"; indica di controllare 50 topic partendo dal primo (che poi è l'ultimo perche c'è il DESC che inverte l'ordine).
Io proverei per eliminazione, con 0,40, 0,30, 0,20, 0,10
se a un certo punto funziona (anche se la lista è più corta) abbiamo individuato il topic incriminato.

Sul momento non mi viene altro in testa.

Rispondi

Torna a “Database MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti