[Gdrcd 5.1] BBcode nelle missive
[Gdrcd 5.1] BBcode nelle missive postato il 05/05/2012 18:08:22 nel forum programmazione, open source e hosting
Vorrei implementare il bbcode nelle missive, ovvero quando vado a leggere la lettera che mi è arrivata, essa mi dovrebbe apparire in grassetto, corsivo, sottolineata ecc ecc...
E complicato da fare?
O dovrei semplicemente richiamare il bbcode in qualche punto del codice preciso?
Pagine → 1
08/05/2012 01:42:13 e modificato da zenida il 08/05/2012 01:43:14
In realtà è molto semplice, basta solo prendere il testo del messaggio prima che venga stampato a schermo e convertirlo con gli appositi plug-in che già esistono in GDRCD.
Volendo per completezza puoi fare un controllo se è abilitata la funzione di Mr. Faber oppure quella di Blanks, dopo di che passi il corpo del messaggio alla funzione e quello che ne verrà fuori è il testo convertito in HTML che potrai stampare tranquillamente.
Questo passaggio va fatto preferibilmente in fase di lettura del messaggio e non di storage sul db, dove conviene lasciare il testo con i tag BBCode piuttosto che già convertito in HTML.
Spero di essere stato chiaro, caso mai esprimi pure i tuoi dubbi.
08/05/2012 11:31:22 e modificato da maretempestoso_staff il 08/05/2012 11:32:51
Puoi dirmi se questo è la parte di codice che devo guardare?
<?php /*Visualizzazione completa di un messaggio*/
if (gdrcd_filter('get',$_REQUEST['op'])=='read'){
$result=gdrcd_query("SELECT * FROM messaggi WHERE id = ".gdrcd_filter('num',$_REQUEST['id_messaggio'])." LIMIT 1", 'result');
if (gdrcd_query($result, 'num_rows')>0){
$record=gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
}
//Leggi id messaggio
//Formatta messaggio
//Bottoni Rispondi, Rispondi e allega, cancella ?>
<div class="read_message_box">
<div class="infos">
<span class="title"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['date']).": "; ?></span>
<span class="body">
<?php $quando=explode(' ',$record['spedito']);
echo gdrcd_format_date($quando[0]) ?>
</span>
<span class="title">
<?php echo ' '.gdrcd_filter('out',$MESSAGE['interface']['messages']['time']).' '; ?>
</span>
<span class="body">
<?php echo gdrcd_format_time($quando[1]); ?>
</span>
</div>
<div class="infos">
<span class="title"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['sender']).": "; ?>
</span>
<span class="body"><?php echo gdrcd_filter('out',$record['mittente']);?></span>
</div>
<?php if (($record['destinatario']==$_SESSION['login'])&&($record['letto']==0)){
gdrcd_query("UPDATE messaggi SET letto = 1 WHERE id = ".gdrcd_filter('num',$_REQUEST['id_messaggio'])." LIMIT 1");
}?>
<div class="read_message_box_text">
<?php echo nl2br(gdrcd_filter('out', $record['testo']));?>
</div>
<div class="read_message_box_forms">
<div class="read_message_box_form">
<?php if((($row['mittente']=='all')&&($_SESSION['permessi']>=MODERATOR))||
((is_numeric($record['mittente'])===TRUE)&&($_SESSION['affiliato_gilda']==$record['mittente'])&&($_SESSION['permessi']>=GUILDMODERATOR))||
((is_numeric($record['mittente'])===FALSE)&&($record['mittente']!='all'))){ ?>
<!-- erase -->
<form action="main.php?page=messages_center"
method="post">
<input type="hidden"
name="op"
value="erase" />
<input type="hidden"
name="id_messaggio"
value="<?php echo gdrcd_filter('num',$_REQUEST['id_messaggio']);?>" />
<input type="image"
src="imgs/icons/erase.png"
value="submit"
alt="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['erase']); ?>"
title="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['erase']); ?>" />
</form>
<?php } else { echo ' '; } ?>
</div>
<div class="read_message_box_form">
<!-- attach -->
<form action="main.php?page=messages_center"
method="post">
<input type="hidden"
name="reply_dest"
value="<?php echo $record['mittente'];?>" />
<input type="hidden"
name="testo"
value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attachment'].$record['testo']);?>" />
<input type="hidden"
name="op"
value="attach" />
<input type="image"
src="imgs/icons/attach.png"
value="submit"
alt="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attach']); ?>"
title="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attach']); ?>" />
</form>
</div>
<div class="read_message_box_form" >
<!-- reply -->
<form action="main.php?page=messages_center" method="post">
<input type="hidden"
name="reply_dest"
value="<?php echo $record['mittente'];?>" />
<input type="hidden"
name="op"
value="reply" />
<input type="image"
src="imgs/icons/reply.png" value="submit"
alt="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['reply']); ?>"
title="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['reply']); ?>" />
</form>
</div>
</div><!-- read_message_box_form -->
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php } ?>
09/05/2012 00:15:19 e modificato da zenida il 09/05/2012 00:17:12
Oddio hai praticamente copiato l'intero codice... ma se leggi questa parte:
<div class="read_message_box_text">
<?php echo nl2br(gdrcd_filter('out', $record['testo']));?>
</div>
Noterai che è proprio l'istruzione di cui ti parlavo prima. Questa non fa altro che prendere il testo del messaggio dall'array $record e stamparlo a video.
Ovviamente prima che questo avvenga dovrai convertire quel testo utilizzando l'apposita funzione di Mr. Faber o Blanks.
if ($PARAMETERS['settings']['forum_bbcode']['type'] == 'bbd'){
echo bbdecoder(gdrcd_filter('out',$record['testo']), true);
}else{
echo gdrcd_bbcoder(gdrcd_filter('out',$row['testo']));
}
In questo modo dovresti risolvere senza problemi ;)
09/05/2012 12:31:45
Un prezioso aiuto, grazie infinite! :-)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
War Thunder ↗
Tiles Survive ↗
New Orleans ↗
Foundation Galactic Frontier ↗
The Coven ↗