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

MOD Topten Topics ver. 1.0.2

Supporto MODs generale.
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: MOD Topten Topics ver. 1.0.2

Messaggio da Micogian » 13/01/2011, 15:43

Bastava andare a fondo pagina nell'indice e c'è la quantità: 58000.

Io ne ho 150000 nel mio Forum e non ho questi problemi.

Fai un'altra prova: devi creare 3 file diversi, non centrano nulla con il Template, sono file php che danno il risultato subito:

1) prova_topics.php

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
//include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

$user->setup('');

page_header('pagina di prova');
    //---------- 10 Topics più Recenti start -----------//
    // 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)

    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;
    }

$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'] . "&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']);

			echo $last_topic_data[$n1] . " <a style='font-weight: bold' href='" . $last_topic_link[$n1] . "' title='" . $last_topic_title[$n1] . "(in: " . $last_topic_forum[$n1] . ")'>" . $last_topic_title_short[$n1] . "</a> <span style='color: #708090'>(di " . $last_topic_author[$n1] . ")<span><br>";
			++$n1 ;             
			}
            }
	}
    //---------- 10 Topics più Recenti end -----------//

?>
2) prova_posts.php

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
//include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

$user->setup('');

page_header('Lista  ultimi posts');

    //---------- 10 Ultimi posts start -----------//
    // 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_posts = 50 ; // numero di posts da estrarre dalla tabella (il numero è più alto perchè viene inserito un solo post per topic)


    $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'] . "&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'] ;
echo "<a style='font-weight: bold' href='" . $last_post_link[$n4] . "' title='" . $last_post_title[$n4] . " (in: " . $last_post_forum[$n4] . "')>" . $last_post_title_short[$n4] . "</a><span style='color: #708090'> (di " . $last_post_author[$n4] . ")</span><br>";					
                    ++$n4 ;
                }
            }
        }
    //---------- 10 Ultimi posts end -----------//

?>
3) prova_views.php

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
//include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

$user->setup('');


if ($user->data['user_id'] == ANONYMOUS)
{
    login_box('', $user->lang['LOGIN']);
}

page_header('Topics più visti');

    // 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)

    //---------- 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'] . "&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'];
echo $view_topic_views[$n2] . " <a style='font-weight: bold' href='" . $view_topic_link[$n2] . "' title='" . $view_topic_title[$n2] . " (in: " . $view_topic_forum[$n2] . ")'>" . $view_topic_title_short[$n2] . "</a> <span style='color: #708090'>(di " . $view_topic_author[$n2] . ")</span><br>";					
                    ++$n2 ;
               }
           }
        }
    //---------- 10 Topics più visti end -----------//

?>
Li carichi tutti 3 nella rooot del Forum e li provi uno alla volta inserendo nell'url il relativo nome.
Ripeto che non crea nessuna tabella, solo l'elenco dei 10 topics come dovrebbe farlo per la Lista.
Così vedi quanto stanno ad aprirsi. Il più complesso è certamente prova_posts.
Non serve nessun aggiornamento della cache.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: MOD Topten Topics ver. 1.0.2

Messaggio da gennyna » 13/01/2011, 17:09

tra i tre file indicati solo quella dei posts ci mette tempo ad aprirsi mentre per le altre 2 subito fa

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: MOD Topten Topics ver. 1.0.2

Messaggio da Micogian » 13/01/2011, 17:15

E' quello che immaginavo.
Prova a ridurre il numero dei record da elaborare, nelle prime righe ci dovrebbe essere una variabile $lista_posts = 50 , prova con 20 o 30.

Il problema era che un Topic potrebbe avere più risposte e nella Mod viene preso uno solo dei post, l'ultimo. Ne consegue che se tu hai 10 risposte in un Topic ne viene presa solo una,
Se hai 5 topics di 10 post ciascuno la lista sarà di 5 topics se ne scegli 50.

EDIT:

Mi viene il sospetto che il problema si adovuto alla SEO (sempre odiato questa Mod)

Dovresti fare questa prova: nel file prova_posts devi commentare la riga che crea il link, questa

Codice: Seleziona tutto

//$last_post_link[$n4]      	= append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row4['forum_id'] . "&t=" . $row4['topic_id'] . "#p" . $row4['post_id']);
Con le due barre // davanti la riga è come non ci fosse.
Avrai una Lista senza Link ma per ora ci interessa capire il motivo si questa lentezza.

Poi mi devi dire a cosa corrisponde il numero che compare nell'url, se è il topic_id oppure il post_id.

In pratica l'url che crea la SEO è del tipo "topic69863.html", ecco, vorrei sapere se 69863 è il topic_id o il post_id.
Perchè se è uno di questi due si può aggirare l'ostacolo.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: MOD Topten Topics ver. 1.0.2

Messaggio da gennyna » 13/01/2011, 18:08

si ho gia provato, ma è sempre la stessa cosa... però io avevo una mod simile la nv recent topic non so se conosci che non mi bloccava affatto il sito.. l'ho tolta perchè occupava troppo spazio e non riuscivo a modificarne il template... quella faceva in pratica la stessa funzione solo che graficamente assomigliava alla ajax tagboard come c'è anche qui su phpbbitalia

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: MOD Topten Topics ver. 1.0.2

Messaggio da gennyna » 19/01/2011, 10:06

ok bingo ho tolto dalla tu amod la query degli ultimi post ( anche dal template). Ora per c'è da sistemare la tabella che mi risulta decentrata a proprio cke manca la colonna dei post.. ti posto il codice:

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>
                    </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>         
                    </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 -->

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: MOD Topten Topics ver. 1.0.2

Messaggio da Micogian » 19/01/2011, 11:43

Basta cambiare la percentuale della larghezza, la porti a 50%.
Basta sulla prima colonna perchè la seconda prende quello che resta.

Codice: Seleziona tutto

                       <dd style="width: 50%">&nbsp;Ultimi Topics</dd>
                       <dd>&nbsp;Topics pi&ugrave; visti</dd>
Al limite ci sarebbe la possibilità di inserire i Topics con più risposte al posto degli ultimi posts.
E' già previsto nel file php, solo che la parte è commentata (ha le doppie barre davanti)

Credo che il tuo problema sia la SEO. Forse ci sarebbe una soluzione ma io non ho e non ho mai voluto la SEO, secondo me sono più le complicazioni che i vantaggi, ma ognuno è libero di pensarla come crede.
Nei miei Forum non ho nessuna SEO ma l'indicizzazione è buona comunque. Quello che conta sono i contenuti e qualche modifica ai tag title e alt.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: MOD Topten Topics ver. 1.0.2

Messaggio da gennyna » 20/01/2011, 0:29

per quanto riguarda la seo posso darti ragione, alla fine non sevre a nulla, ma ormai la tengo e la uso :)
Magari fosse possibile inserirvi le ultime azione fatte da un utente?
tipo risposta a un messaggio... creazione sondaggio ecc?

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 46 ospiti