Molti topic richiedono info sul funzionamento delle 'faccine' e allora scrivo una piccola pillola semplice semplice per spiegarne a grandi linee il funzionamento.

Nella realizzazione di un Guestbook ( libro degli ospiti ), di un Forum o comunque di tutte i moduli di interattività con l'utente può tornare utile l'utilizzo degli 'smiles' o 'emotions'.

Cosa sono le 'emotions' ?

Le 'emotions' non sono altro che faccine o comunque piccole immagini che appaioni vicino a posts o messaggi e servono ad espriemere uno stato d'animo, un parere e quindi espressioni del momento in cui si scrive. Nei forum ormai il loro utilizzo è entrato prepotentemente come una delle componenti di maggior utilizzo e sviluppo, teciniche di gestione sempre più avantzate, ma il loro significato e sostanza non cambia.

Qua sul forum sono queste :

e tante altre

Le componenti HTML

Anzitutto le 'emotions' devono essere inserite nel contesto di una form la quale elaborerà i dati a seconda dello scopo ( che sia un forum o un guestbook poco importa ). Quindi dobbiamo prima creare la form e poi penseremo alle 'emotions'.

Sul codice HTML spero non servano delucidazioni :

codice:
<form action="pagina.php/asp" method="post" name="nomeform">
<textarea name="nomecampo" cols="10" rows="10"></textarea>
<input type="submit" value="Invia">
</form>
Con il codice proposto creaiamo un modulo con una TEXTAREA e un campo di SUBMIT.

Ma come inseriamo le 'emotions' nel testo ? Possiamo nel modo più rudimentale e grezzo suggerire all'utente con che condici crearle, del tipo :-) o :-D e così via. Ma personalmente preferisco qualcosa di più automatizzato e comodo per l'utente. Quindi vorrei fare in modo che l'utente cliccando su una 'emotions' di esempio, faccia 'scrivere' nella textarea il codice di trasformazione. Chiediamo aiuto a JavaScript e dove si vuole si inseriscono le immagini delle 'emotions' in questo modo :

codice:
[img]emotions/smile.gif[/img]
In questo modo, nella form nomeform di questo documento, aumenterà ( grazie al + che non va rimosso ! ) il value del campo nomecampo con ':-)'. Quindi se nella form avremmo questo contenuto :

ciao, come va ?

Dopo il click sull'immagine sarà :

ciao, come va ? :-)

Oppure per automatizzare il tutto una funzione JavaScript del tipo :

codice:
<script language="JavaScript">
function emotions(smilietext) {
	opener.document.nomeform.nomecampo.value += smilietext+" ";
}
</script>
Richiamata così :

[img]emotions/smile.gif[/img]

Ora sappiamo come inserire il codice, ma adesso vediamo come trasformare il codice in immagine.

Elaborazione PHP

La pagina a cui verranno inviati via POST i dati del modulo ( nel nostro esempio pagina.php ) dovrà convertire il codice ':-)' in :

[img]emotions/smile.gif[/img]

Per fare ciò utilizziamo la funzione str_replace() di PHP che permette di effettuare un 'replace' tra due stringhe.

Ci creaimo quindi ad hoc una funzione per trasformare e gestire tutte le 'emotions' che vorremo :

codice:
function emotions($testo){
                          $corretto = str_replace(":-)","<img src=\"emotions/smile.gif\">",$testo);
                          return $corretto;
                          }
In questo modo dando 'in pasto' alla funzione emotions un testo, trasformerà tutti le smile ( codici ) in immagini !

codice:
<?
$testo = $_POST['nomecampo'];
echo emotions($testo);
?>
E in ASP ?

In ASP il funzionamento è pressochè identico, cambia la sintassi :

codice:
corretto = Replace(testo, ":-)", "[img]emotions/smile.gif[/img]")
Come avete visto è tutto molto semplice e facilmente gestibile, e naturalemnte potete aggiungere infinite nuove emotions nella funzione.

P.s. Molte faccine le trovate qui

Per eventuali errori ( sia grammaticali che concettuali ) contattatemi.

Sono ben accette aggiunte o integrazioni !