Mettere un'url nel messaggio in un guestbook

piero06

Utente Attivo
16 Mar 2004
41
0
0
www.mytag.org
In un guestbook, oppure in un "Muro" come il mio ultimo caca-script può essere utile inserire la possibilità di mettere un'url nel messaggio.

Si può semplicemnete inserire con <a href="">link</a> , ma molte volte i caratterei di formattazione di HMTL vengono volutamente cancellati e visualizzati con < e >.

Allora possiamo ricorrere ai BBCode ! :p

Possiamo fare in modo che inserento :
Codice:
[url]http://www.mytagorg //carttere_separatore// testo link[/url]
Venga "trasformato" in <a href="http://www.mytag.org">testo link</a>

Per fare ciò usiamo sia javascripte PHP

La funzione Js per inserire il testo di prima :

Codice:
<script language="JavaScript"> 
<!--
function AddFormat(formattazione) 
{ 
txtdaformattare=prompt('Inserire il testo da porre fra <'+formattazione+'> e </'+formattazione+'>:');
if (formattazione=='url')
{
url=prompt('Immettere la risorsa da associare al link:');
txt="["+formattazione+"]"+url+"}-{"+txtdaformattare+"[/"+formattazione+"]";
}
else
txt="["+formattazione+"]"+txtdaformattare+"[/"+formattazione+"]";
document.form.msg.value+=txt;
} 
--> 
</script>
e il bottone che richiama la funzione

HTML:
<input type="button" value="http://" onclick="AddFormat('url');">
Fino a qui tutto OK sono js

Ora entra in azione PHP per "scomporre" le parti di codice con un explode :

PHP:
$sep = '}-{';      // carattere separatore
$primo = explode("[url]",$testo);
$sec = explode("[/url]",$primo[1]);
$terzo = explode($sep,$sec[0]);

//ed ora scriviamo l'URL
$testo = str_replace("[url]","<a href=\"".$terzo[0]."\"",$testo);
$testo = str_replace("[/url]","class=\"link\">".$terzo[1]."</a>",$testo);
Può essere utile come soluzione e altamente personalizzabile :)

ciaps
 
Ultima modifica di un moderatore: