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

Top Mods,bbcode,guide

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Top Mods,bbcode,guide

Messaggio da Tiger » 06/04/2012, 22:20

Perfetto Micogian soltanto il titolo link Ovviamente.Grazie Mille.

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: Top Mods,bbcode,guide

Messaggio da Micogian » 06/04/2012, 22:35

Si, ma il link cosa deve aprire ?, la prima pagina del topic o l'ultima risposta ?
perchè le cose sono diverse.
Si possono fare anche entrambe le cose, il titolo che apre la prima pagina e una icona come quella utilizzata per i messaggi che apre l'ultimo post.
Altra cosa: il titolo va accorciato se troppo lungo ?
Come accennavo all'inizio bisogna avere le idee chiare di quello che si vuole ottenere e pensare a tutte le evenienze.
E se un topic è stato spostato ? altra cosa da prevedere. Quando si sposta un Topic a volte si lascia il vecchio riferimento ma se si apre il topic non lo si trova.
Va considerato anche il fatto che essendo una Lista pubblica i topics non devono avere limitazioni di visibilità.

Come vedi è più complicato pensare a cosa fare piuttosto che a realizzare la query.

Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Top Mods,bbcode,guide

Messaggio da Tiger » 06/04/2012, 22:41

Si possono fare anche entrambe le cose, il titolo che apre la prima pagina e una icona come quella utilizzata per i messaggi che apre l'ultimo post.
Si perfetto.
Altra cosa: il titolo va accorciato se troppo lungo ?
Se e' possibile si.
Va considerato anche il fatto che essendo una Lista pubblica i topics non devono avere limitazioni di visibilità.
Certamente sono d'accordo.
E se un topic è stato spostato ?
In questo caso che succederebbe?si puo' ovviare al problema?altrimenti non fa niente l'importante 'e' creare la query per gli ultimi 10 argomenti.

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: Top Mods,bbcode,guide

Messaggio da Micogian » 06/04/2012, 23:17

Vediamo di ricapitolare: idati richiesti si possono estrarre da una sola tabella, la tabella topics.
I campi necessari vanno elencati nella query, vengono esclusi i topics spostati, si da per scontato che non ci siano topics riservati essendo tutti nello stesso Forum, viene estratto anche l'ultimo post e il nome di chi ha postato perchè possiamo metterlo nel tag "title" del link.

Questa è la query (modifica 99 con il tuo forum_id:

Codice: Seleziona tutto

// Lista degli ultimi Topics - by Micogian
$sql = "SELECT topic_id, forum_id, topic_title, topic_time, topic_moved_id, topic_first_poster_name, topic_last_post_id
        FROM " . TOPICS_TABLE . "
        WHERE forum_id = 99       // Metti il forum_id interessato
    AND topic_type = 0        // se vuoi solo i topics normali
        AND topic_moved_id = 0    // se il topic è spostato
        ORDER BY topic_time DESC LIMIT 0,10";
    $result = $db->sql_query($sql);
    $n = 0;
    while ($row = $db->sql_fetchrow($result))
    {
        if (strlen($row['topic_title'] > '28'))
        {
        $topic_title = substr($row['topic_title'],0,27) . "...";
        }else{
        $topic_title = $row['topic_title'];
        }
        $template->assign_block_vars('lista_topics', array(
        'TOPIC_LINK'      => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row['forum_id'] . "&t=" . $row['topic_id']),
        'POST_LINK'      => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=" . $row['topic_id'] . "&p=" . $row['topic_last_post_id'] . "#p" .  $row['topic_last_post_id'] ),
        'TOPIC_TITLE'     => $topic_title ,
        'FIRST_POSTER'    => $row['topic_first_poster_name'],
        'LAST_POSTER'     => $row['topic_last_poster_name'],
        ));
        $n = ++$n ;
    } 

Questo puoi inserirlo nella Home oppure in un file esterno e nella Home ci metti un "include".

A questo punto il template riceverà l'array "lista_topics" e userai un BEGIN per visualizzare la Lista, ovviamente puoi usare il CSS per la formattazione, vedi tu se usare i <div> o i tag <li>.

Codice: Seleziona tutto

<!-- BEGIN lista_topics -->
<div class="xxxx"><a href="{lista_topics.TOPIC_LINK}" title="di {lista_topics.FIRST_POSTER}">{lista_topics.TOPIC_TITLE}</a>
 <span><a href="{lista_topics.POST_LINK}" title="{lista_topic.LAST_POSTER}" /><img src="images/icon_post.gif" alt=""></a></span></div>
 
Vedi di formattare la Lista che sarà costituita dal titolo (accorciato se superiore a 27 caratteri) e una icona che aprirà l'ultimo post.

Non ho provato, visto che ho fatto tutto di corsa potrei aver fatto qualche errore.

Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Top Mods,bbcode,guide

Messaggio da Tiger » 06/04/2012, 23:50

Mi da errore generale:

Codice: Seleziona tutto

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/ Metti il forum_id interessato AND topic_type = 0 // se vuoi solo i' at line 3 [1064]
Se tolgo i tre commenti:

Codice: Seleziona tutto

// Metti il forum_id interessato
ecc mi da pagina bianca ma essendo commentati non sono la causa del problema.

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: Top Mods,bbcode,guide

Messaggio da Micogian » 07/04/2012, 7:26

Togliere i commenti va bene ma bisogna vedere il resto, prova a mettere il forum_id tra apici

Codice: Seleziona tutto

WHERE forum_id = '99' 

Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Top Mods,bbcode,guide

Messaggio da Tiger » 07/04/2012, 8:27

Stessa cosa pagina bianca.

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: Top Mods,bbcode,guide

Messaggio da Micogian » 07/04/2012, 8:42

Posta il codice che hai usato.

Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Top Mods,bbcode,guide

Messaggio da Tiger » 07/04/2012, 8:48

Codice: Seleziona tutto

    // Lista degli ultimi Topics - by Micogian
    $sql = "SELECT topic_id, forum_id, topic_title, topic_time, topic_moved_id, topic_first_poster_name, topic_last_post_id
            FROM " . TOPICS_TABLE . "
            WHERE forum_id = '66'      
        AND topic_type = 0        
            AND topic_moved_id = 0    
            ORDER BY topic_time DESC LIMIT 0,10";
        $result = $db->sql_query($sql);
        $n = 0;
        while ($row = $db->sql_fetchrow($result))
        {
            if (strlen($row['topic_title'] > '28'))
            {
            $topic_title = substr($row['topic_title'],0,27) . "...";
            }else{
            $topic_title = $row['topic_title'];
            }
            $template->assign_block_vars('lista_topics', array(
            'TOPIC_LINK'      => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row['forum_id'] . "&t=" . $row['topic_id']),
            'POST_LINK'      => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=" . $row['topic_id'] . "&p=" . $row['topic_last_post_id'] . "#p" .  $row['topic_last_post_id'] ),
            'TOPIC_TITLE'     => $topic_title ,
            'FIRST_POSTER'    => $row['topic_first_poster_name'],
            'LAST_POSTER'     => $row['topic_last_poster_name'],
            ));
            $n = ++$n ;
        } 

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: Top Mods,bbcode,guide

Messaggio da Micogian » 07/04/2012, 8:55

In una query bisogna prima inserire l'elenco dei campi che si vuole estrarre, mancano i campi "topic_type" e "topic_last_poster_name", errore mio.

Codice: Seleziona tutto

$sql = "SELECT topic_id, forum_id, topic_title, topic_time, topic_type, topic_moved_id, topic_first_poster_name, topic_last_post_id, topic_last_poster_name
	FROM " . TOPICS_TABLE . "
	WHERE forum_id = '66'   
	AND topic_type = 0
	AND topic_moved_id = 0
	ORDER BY topic_time DESC LIMIT 0,10";

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 62 ospiti