Creazione BBCODE personalizzati
Transcript
Creazione BBCODE personalizzati
http://www.e107italia.org/e107_plugins/content/content.php?content.36 Pagina 1/6 Creazione BBCODE personalizzati Un metodo per creare BBCODE personalizzati. elbambolo, lun 11 aprile 2011 - 08:18 1. COSA SONO I BBCODE Fonte Wikipedia BBCode è una abbreviazione di Bulletin Board Code (codice per bacheche elettroniche), una volta usato nelle BBS per scambiarsi pagine data la maggior semplicità d'interpretare il codice per la visualizzazione, oggi il linguaggio di markup è usato per formattare i messaggi in molti forum. I comandi (tag) disponibili sono di solito indicati racchiudendo tra parentesi quadre le parole chiave e sono interpretati dal sistema prima di essere tradotti in un linguaggio di markup comprensibile per il browser web, di solito HTML o XHTML. Il BBCode fu ideato per mettere a disposizione dell'utente medio un sistema più sicuro, più semplice e più limitato di formattare i propri messaggi. Prima, molti forum permettevano l'uso di HTML, che poteva essere usato per danneggiare l'impostazione grafica del sito, o per lanciare codice JavaScript malevolo. Alcune implementazioni di BBCode hanno comunque sofferto di vari problemi causati dal metodo di traduzione in codice HTML, che portavano in seno le stesse falle che ci si aspettava fossero risolti da un sistema come questo. Nonostante i comandi base di BBCode siano simili in quasi tutti i software di gestione di forum, ci sono molte varianti. Alcune di queste richiedono che i comandi siano maiuscoli o minuscoli. Alcune varianti hanno comandi per colorare il codice HTML, PHP, SQL ed altri linguaggi di markup e linguaggi di programmazione. Questo ci può far capire fin da subito le potenzialità di questo sistema. 2. STRUTTURA DEL BBCODE Nella fase pratica, il bbcode effettua esclusivamente una sostituzione di codice, la struttura è abbastanza semplice e con un minimo di conoscenza di html saremmo in grado di costruirci i nostri bbcode. La semantica della struttura è la seguente: [nomebbcode=$parm]$code_text[/nomebbcode] Prendiamo in esempio uno dei bbcode più utilizzato: Il bbcode » » [link] [/link] » Questo BBCODE prende solitamente due parametri: » url della pagina da linkare http://www.e107italia.org/e107_plugins/content/content.php?content.36 Pagina 2/6 » nome visualizzato della pagina Questa è la classica scrittura del bbcode: » » [link=url della pagina]nome visualizzato della pagina[/link] » Quando il nostro amato e107, trova il tag [ link ] non fà altro che andare a sostituire [ link ] al codice html che noi gli diciamo di sostituire. Questo codice si trova in: » e107_files/bbcode/url.bb la struttura di questo file, come si può vedere è abbastanza semplice. Ora che sappiamo come e107 tratta i bbcode, possiamo andare avanti e iniziare a creare un nostro bbcode. 3. CREAZIONE DI UN BBCODE PERSONALIZZATO Analisi: Cosa dovrà fare il nostro bbcode? Supponiamo di dover scrivere del testo all'interno di una tabella simile a questa: Titolo tutto il testo che vogliamo Come vedete, la nostra tabella ha bisogno di due parametri: » Titolo » Testo Noi utilizzeremmo » $parm per il titolo http://www.e107italia.org/e107_plugins/content/content.php?content.36 Pagina 3/6 e » $code_text per il testo. Prima di tutto, andiamo ad analizzare il codice per la costruzione della tabella. In html, per creare una tabella di questo genere dovremmo scrivere: » <table style="text-align: left;" border="1" cellpadding="2" » cellspacing="2"><tbody><tr align="center"><td style="vertical-align: top;">Titolo<br></td></tr><tr align="center"><td style= "vertical-align: top; text-align: center;">tutto il testo che vogliamo<br></td></tr></tbody></table> iniziamo la creazione del nostro bbcode che chiameremmo ts (acronimo di tabella singola) la prima cosa da fare sarà quella di creare un nostro file chiamato ts.bb e posizionarlo all'interno della cartella: e107_files/bbcode andiamo a sostituire » 'Titolo' con $parm e » 'Tutto il testo che vogliamo' con $code_text. Il tutto racchiuso in un return. Ecco il codice: » » return " » <table style='text-align: left;' border='1' cellpadding='2' » cellspacing='2'><tbody><tr align='center'><td style='vertical-align: top;'>$parm<br></td></tr><tr align='center'><td style='vertical-align: top; text-align: center;'>$code_text<br></td></tr></tbody></table>"; » » Come potete vedere finora è tutto molto semplice. Salvate il file e chiudete. Ora dobbiamo dire a e107 che ogni volta che incontra del testo racchiuso fra i tag [ts] deve andare a prendere il codice da ts.bb Apriamo il file: http://www.e107italia.org/e107_plugins/content/content.php?content.36 Pagina 4/6 e107_handlers/bbcode_handler.phpLa parte che ci interessa è la seguente: » » global $pref; » $core_bb = array( » 'blockquote', 'img', 'i', 'u', 'center', » '_br', 'color', 'size', 'code', » 'html', 'flash', 'link', 'email', » 'url', 'quote', 'left', 'right', » 'b', 'justify', 'file', 'stream', » 'textarea', 'list', 'php', 'time', » 'spoiler', 'hide', 'youtube', 'menu', 'sanitised' » ); » non dobbiamo fare altro che andare ad inserire il nostro bbcode all'interno di questa porzione di codice. Ecco come cambia il codice quando andiamo ad inserire il nostro bbcode: » global $pref; » $core_bb = array( » 'blockquote', 'img', 'i', 'u', 'center', » '_br', 'color', 'size', 'code', » 'html', 'flash', 'link', 'email', » 'url', 'quote', 'left', 'right', » 'b', 'justify', 'file', 'stream', » 'textarea', 'list', 'php', 'time', » 'spoiler', 'hide', 'youtube', 'menu', 'sanitised', 'ts' » ); » ts è stato aggiunto alla fine dopo sanitised salviamo e chiudiamo il file. A questo punto dobbiamo solo registrare la nostra bbcode, assegnarli un'help e un'icona. Per fare questo dobbiamo editare il file: e107_themes/templates/bbcode_template.phpall'interno di questo file, troviamo già un'esempio per la registrazione di una nuova bbcode, e più esattamente: http://www.e107italia.org/e107_plugins/content/content.php?content.36 Pagina 5/6 » $register_bb['blank'] = array("", "[blank][/blank]","Blank example helper text",e_IMAGE."generic/bbcode/template.png"); » la struttura è molto intuitiva, andiamo a scrivere quindi, appena al disotto di questa riga, il codice per la registrazione della nostra bbcode, che nello specifico apparirà come segue: » // $register_bb['ts'] = array("", "[ts=titolo][/ts]","utilizzo: [ts=titolo]testo[/ts]",e_IMAGE."generic/bbcode/ts.png"); » $register_bb['ts'] array("","[ts=titolo][/ts]" "utilizzo: [ts=titolo]testo[/ts]" e_IMAGE."generic/bbcode/ts.png" Fatto questo e personalizzato tutto a dovere, dobbiamo solo compiere un'ultima azione: Dobbiamo specificare in quali pagine dovrà apparire il nostro bbcode. Per fare ciò, sempre nel file: e107_themes/templates/bbcode_template.php troviamo una lista di pagine, non dobbiamo fare altro che aggiungere la nostra in quelle che ci interessano. Se ad esempio vogliamo che la nostra bbcode sia visibile solo all'interno dell'editor che si trova in menu/pagine personali, dovremmo scendere fino a trovare il seguente blocco di codice: » » $BBCODE_TEMPLATE_CPAGE = " » {BB_HELP}<br /> {BB=newpage} » {BB=link}{BB=menu}{BB=b}{BB=i}{BB=u}{BB=img}{BB=center}{BB=left}{BB=right}{BB=justify} » {BB=bq}{BB=code}{BB=list}{BB=fontcol}{BB=fontsize}{BB=emotes} » {BB_PREIMAGEDIR=".e_IMAGE."custom/} » {BB=preimage}{BB=prefile}{BB=flash}{BB=youtube} » "; » e all'interno di questa porzione di codice inserire la nostra bbcode. Inserire la nostra bbcode è molto semplice, ci basterà modificare il codice come segue: » http://www.e107italia.org/e107_plugins/content/content.php?content.36 Pagina 6/6 » $BBCODE_TEMPLATE_CPAGE = " » {BB_HELP}<br /> {BB=newpage} » {BB=link}{BB=menu}{BB=b}{BB=i}{BB=u}{BB=img}{BB=center}{BB=left}{BB=right}{BB=justify} » {BB=bq}{BB=code}{BB=list}{BB=fontcol}{BB=fontsize}{BB=emotes} » {BB_PREIMAGEDIR=".e_IMAGE."custom/} » {BB=preimage}{BB=prefile}{BB=flash}{BB=youtube}{BB=ts} » "; » 4. CONCLUSIONI Come potete vedere, inserire, creare o personalizzare un bbcode è abbastamza semplice. Le conoscenze tecniche per poter applicare un bbcode rimangono a mio avviso alla portata di tutti e questo anche grazie ad un team di sviluppatori che ci REGALANO e ci mettono a disposizione ogni giorno guide, tutorial e strumenti in grado di semplificarci la vita.