[DEV] Mod Topic of the week

Questa discussione si intitola [DEV] Mod Topic of the week nella sezione MODs in sviluppo. Mod Topic of the week Nome Mod: Mod Topic of the week Autore: Bingo Descrizione della Mod: Consente di selezionare un certo numero di Topic ...

[DEV] Mod Topic of the week

Messaggioda Micogian » 06/10/2010, 13:45

Mod Topic of the week

Nome Mod: Mod Topic of the week
Autore: Bingo
Descrizione della Mod: Consente di selezionare un certo numero di Topic che contengono nel testo il bbcode [img].
La Mod provvede a estrarre il link dell'immagine inserito tra i bbcode e visualizzarla in una striscia inserita nella Home page del Forum.
Può tornare utile per evidenziare immagini che richiamano alcuni Topics, come "Foto del mese", "Topics della settimana", ecc.
Versione Mod: 1.0.1
Versioni compatibili phpBB: 3.0.x

Istruzioni

1) Creare un Topic in area riservata. Questo Topic ha lo scopo di contenere nel testo la lista dei topic_id selezionati separati da una virgola.
(es. 4523,4530,4600,4602,4607) Il testo non deve contenere altre stringhe al di fuori della Lista topic_id.

2) Nella root del Forum creare il file mod_week_img.php con il contenuto seguente:
Codice: Seleziona tutto
<?php
// Mod Topic of the week - by Bingo 2010

$post_ori = '9999';  // inserire il post_id del Topic contenente la Lista dei topic_id

// Estrae la lista dei post_id da elaborare
$sql = "SELECT post_id, post_text FROM " . POSTS_TABLE . " WHERE post_id = " . $post_ori ;
    $result = $db->sql_query($sql);
   {
   $row = $db->sql_fetchrow($result);
       $topic_list = $row['post_text'];     
   }

// elabora i topic selezionati
$sql1 = "SELECT topic_id, post_id, post_subject, post_text, bbcode_uid FROM " . POSTS_TABLE . " WHERE topic_id IN(" . $topic_list . ") ORDER BY topic_id, post_id";
    $result1 = $db->sql_query($sql1);

    $lista_topics = '' ;
    while ($row1 = $db->sql_fetchrow($result1))
    {
       // estrae solo il primo post di ogni Topic.
          if( strpos($lista_topics, $row1['topic_id']) == '0'){
         // Titolo
         if (strlen($row1['post_subject'] > '28'))
         {
         $topic_title_short = substr($row1['post_subject'],0,27) . "...";
         }else{
         $topic_title_short = $row1['post_subject'];
         }
         // immagine compresa tra i tag [img]...[/img]
         $post_text_tmp = $row1['post_text'] ;  // testo del post
        $post_text_tmp = str_replace($row1['bbcode_uid'],"",$post_text_tmp);
         $post_text1 = str_replace("[/img:]","[img:]", $post_text_tmp) ;
         $post_text2 = explode("[img:]", $post_text1) ;
         $post_img = $post_text2[1] ;   // link dell'immagine

         // descrizione compresa tra i tag [quote]...[/quote]
         $post_quote_tmp = str_replace("[/quote:]","[quote:]", $post_text_tmp) ;
         $post_quote2 = explode("[quote:]", $post_quote_tmp) ;
         $post_quote = $post_quote2[1] ;
         if (strlen($post_quote) > 200){
         $post_quote_short = substr($post_quote,0,200) . "..." ;
         }else{
         $post_quote_short = $post_quote ;
         }

      $template->assign_block_vars('week_topic', array(
            'U_WEEK_TITLE'         => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=" . $row1['topic_id']),
            'WEEK_TITLE'            => $row1['post_subject'] ,
            'WEEK_TITLE_SHORT' => $topic_title_short,
            'WEEK_IMG'              => $post_img ,
            'WEEK_SHORT_TEXT' => $post_quote_short
             ));
          $lista_topics .= "," . $row1['topic_id'] ;
            }
    }
?>


3) inserire nel file index.php la riga seguente:
Codice: Seleziona tutto
include($phpbb_root_path . 'mod_week_img.' . $phpEx);

La riga "include" va inserita verso la fine del file, prima della riga
Codice: Seleziona tutto
// Output page


4) Template subsilver2
Creare nella cartella "template" dello style di derivazione subsilver2 il file mod_week_img_body.html con il seguente contenuto:
Codice: Seleziona tutto
<div align='center'>
   <table class="tablebg" width="100%" cellspacing="1">
      <tr class="nav">
         <td class="cat" valign="middle" align="center">I Films della settimana</td>
      </tr>
      <tr>
         <td class="row1">
         <div align="center">
            <table width="98%" border="0" cellspacing="2" cellpadding="0">
               <tr>
         <!-- BEGIN week_topic -->
                  <td align="center" valign="top" width="20%" style="font-size: 0.9em;"><a href="{week_topic.U_WEEK_TITLE}" title="{week_topic.WEEK_TITLE}">{week_topic.WEEK_TITLE_SHORT}</a></td>
         <!-- END week_topic -->
               </tr>
               <tr>
         <!-- BEGIN week_topic -->
                  <td>
                     <div align="center">         
                     <a href="{week_topic.U_WEEK_TITLE}" title="{week_topic.WEEK_SHORT_TEXT}"><img src="{week_topic.WEEK_IMG}" alt="{week_topic.WEEK_TITLE}" height="250" border="0"></a></div>                          
         </td>
         <!-- END week_topic -->
               </tr>
            </table>
            <br>
            </div>
         </td>
      </tr>
   </table>
</div>

<br clear="all" />


4) Nel file index_body.html trovare la riga:
Codice: Seleziona tutto
<!-- INCLUDE forumlist_body.html -->

Inserire: PRIMA la riga
Codice: Seleziona tutto
<!-- INCLUDE mod_week_img_body.html -->

In questo modo la tabella viene posta prima della Lista dei Forums.

Naturalmente la Mod, con opportune modifiche, si presta per realizzare una striscia di immagini relative a Topic da mettere in evidenza, come "Foto del mese", "Topics della settimana", ecc.

Non l'ho provata, è solo teorica, spero funzioni.
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 Topic of the week

Messaggioda gennyna » 06/10/2010, 14:38

solo una cosa; come vedo il post ID?
Avatar utente
gennyna
Utente
Utente
 
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Mod Topic of the week

Messaggioda Micogian » 06/10/2010, 14:44

gennyna ha scritto:solo una cosa; come vedo il post ID?

Vai sul post, clicca col tasto destro sul titolo, "proprietà" e vedi il numero dopo il carattere "p".
Anche se entri in modifica nel post vedi il post_id nell'url
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 Topic of the week

Messaggioda gennyna » 06/10/2010, 15:07

fatto; però ora mi da la pagina bianca all'apertura del sito
Avatar utente
gennyna
Utente
Utente
 
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Mod Topic of the week

Messaggioda Carlo » 06/10/2010, 16:01

Dovrebbe esserci qualche errore nel file di bingo. Infatti vedo in questa parte di codice, delle parentesi graffe che non c'entrano.

Codice: Seleziona tutto
   {
   $row = $db->sql_fetchrow($result);
       $topic_list = $row['post_text'];     
   }
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


Re: [DEV] Mod Topic of the week

Messaggioda Micogian » 06/10/2010, 16:09

C'è un errore qui:
Codice: Seleziona tutto
if (strlen($post_quote'] > '200')){

il codice corretto è
Codice: Seleziona tutto
if (strlen($post_quote) > '200'){
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 Topic of the week

Messaggioda gennyna » 06/10/2010, 16:28

Bingo con la modifica da te proposta ecco alcuni errori:

Codice: Seleziona tutto
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 34: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 34: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 34: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 34: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 34: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Undefined offset: 1
Avatar utente
gennyna
Utente
Utente
 
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Mod Topic of the week

Messaggioda gennyna » 06/10/2010, 23:32

ancora errore:

Codice: Seleziona tutto
SQL ERROR [ mysql4 ]

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 ') ORDER BY topic_id, post_id' at line 1 [1064]

SQL

SELECT topic_id, post_id, post_subject, post_text, bbcode_uid FROM phpbb_posts WHERE topic_id IN() ORDER BY topic_id, post_id

BACKTRACE

FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()

FILE: mod_week_img.php
LINE: 16
CALL: dbal_mysql->sql_query()

FILE: index.php
LINE: 295
CALL: include('mod_week_img.php')
Avatar utente
gennyna
Utente
Utente
 
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Mod Topic of the week

Messaggioda Micogian » 07/10/2010, 7:15

Non trova la Lista dei Topics, dovrebbe essere tra le parentesi dopo IN:
Codice: Seleziona tutto
WHERE topic_id IN()

Forse non hai sostituito il post_id= '9999' con quello del tuo post

La variabile $post_ori deve corrispondere al post_id del Topic che hai creato e che contiene la Lista dei Topic.
Io non lo conosco, per quello ho messo '9999'
Codice: Seleziona tutto
$post_ori = '9999';


Lo avevo detto:
Sostituisci il contenuto del file mod_week_img.php con quello che ho inserito adesso al punto 2)

Ricordati di sostituire il post_id



EDIT:
Altra cosa: nel file mod_week_img_body.html mancano due "virgolette" che non fanno funzionare il link e la variabile non è U_WEEK_LINK ma U_WEEK_TITLE.
Nella riga
Codice: Seleziona tutto
<td align="center" valign="top" width="20%" style="font-size: 0.8em;"><a href="{week_topic.U_WEEK_LINK} title="{week_topic.WEEK_TITLE}">{week_topic.WEEK_TITLE}</a></td>

manca la virgoletta che chiude il link prima di "title", la riga giusta è
Codice: Seleziona tutto
<td align="center" valign="top" width="20%" style="font-size: 0.8em;"><a href="{week_topic.U_WEEK_TITLE}" title="{week_topic.WEEK_TITLE}">{week_topic.WEEK_TITLE}</a></td>


Stessa cosa per la riga che riguarda le immagini
Codice: Seleziona tutto
<a href="{week_topic.U_WEEK_LINK} title="{week_topic.WEEK_TITLE}"><img src="{week_topic.WEEK_IMG}" alt="{week_topic.WEEK_SHORT_TEXT}" height="250" border="0"></a></div>

che deve essere
Codice: Seleziona tutto
<a href="{week_topic.U_WEEK_TITLE}" title="{week_topic.WEEK_TITLE}"><img src="{week_topic.WEEK_IMG}" alt="{week_topic.WEEK_SHORT_TEXT}" height="250" border="0"></a></div>


In alternativa copia il nuovo codice che ho corretto nel primo post. In pratica mancano le virgolette prima della parola title e la variabile non è U_WEEK_LINK ma U_WEEK_TITLE
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 Topic of the week

Messaggioda gennyna » 07/10/2010, 18:23

ancora errore:

Codice: Seleziona tutto
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Array to string conversion
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 40: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 35: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Array to string conversion
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 40: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Array to string conversion
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 40: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Array to string conversion
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 40: Undefined offset: 1
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 39: Array to string conversion
[phpBB Debug] PHP Notice: in file /mod_week_img.php on line 40: Undefined offset: 1
Avatar utente
gennyna
Utente
Utente
 
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO:

Prossimo

Torna a MODs in sviluppo

SEO Search Tags

evidenziare un topic in phpbb      mod topic colorati phpbb      phpbb3 evidenziare un topic      topic colorati mod phpbb      topic of the week mod phpbb      topic più letto settimana phpbb3      undefined offset: 1 phpbb            differenza prosilver e subsilver tabelle      mettere in evidenza un topic forum phpbb

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

  • Pubblicità
cron