Come usare il plugin/mambot GeSHi |
16-03-2009 06:00
scritto da Paolo Mariani
Joomla! è dotato di un plugin/mambot denominato GeSHi. Si tratta di una funzione piuttosto utile in caso di siti che trattano argomenti relativi al web design e alla programmazione come Joomlashow.it o HowToJoomla.net in cui è necessario condividere snippet di codice con i lettori.
Il funzionamento di GeSHi e la sintassi da utilizzare per attivarlo varia tra Joomla! 1.5 e Joomla! 1.0. In quest'articolo vedremo brevemente il suo uso su entrambe le versioni.
Questo articolo è è una traduzione dell'articolo How to use the GeSHi plugin / mambot scritto da Cory Webb su HowToJoomla.net.
L'articolo è stato tradotto da Paolo Mariani mentre Federico Capoano ha aggiunto l'esempio dell'uso con php e alcune e precisazioni al testo.
Cos'è GeSHi?
GeSHi significa "Generic Syntax Highlighter" (evidenziatore generico di sintassi) e serve ad evidenziare snippet di codici in diversi linguaggi web quali PHP, HTML e CSS. Esso permette anche di convertire i tag in questi linguaggi on modo che essi non siano resi come tag normali.
Per esempio per condividere un codice HTML è necessario usare qualcosa come GeSHi, altrimenti il browser tratterà il vostro codice HTML come un normale codice HTML.
Se scriviamo <p><strong>With GeSHi</strong></p> senza utilizzare GeSHi il risultato sarà il seguente:
Senza GeSHi
Se invece utilizziamo GeSHi non dovremmo preoccuparci neanche di effettuare l'escape dei caratteri che potrebbero essere intesi come inizio o fine di tag html ovvero i caratteri < e > che dovrebbero essere scritti rispettivamente con le entità < e >, infatti il plugin si occuperà della conversione autonomamente:
<p><strong>Con GeSHi</strong></p>
Come si vede, il codice con GeSHi mostra I tag HTML, mentre nella visualizzazione senza GeSHi essi non sono visibili. Le parole "Senza GeSHi" sono rese come un normale HTML.
Attenzione a eventuali tag di chiusura di <pre>:
se scrivete all'interno del codice destinato a GeSHi un tag di chiusura </pre> il plugin lo interpreterà come la fine dello snippet.
In questo caso dovrete scrivere </pre>
Utilizzare GeSHi in Joomla! 1.0
Per usare GeSHi in Joomla! 1.0 dovete usare il seguente codice HTML:
<pre lang="html">
<!-- your HTML code here -->
</pre>
Potete cambiare la stringa 'lang="html"' con altri linguaggi quali 'lang="php"' in modo che GeSHi produca l’evidenziazione secondo il linguaggio usato.
Utilizzare GeSHi in Joomla! 1.5
GeSHi presenta una leggera differenza in Joomla! 1.5. Ecco un esempio:
<pre xml:html>
<!-- your HTML code here -->
</pre>
Bisogna notare l’uso di 'xml:html' invece di 'lang="html"'.
Questa è l’unica differenza ma è importante ricordarla quando si utilizza il plugin GeSHi per Joomla! 1.5.
Esempio di utilizzo con php
Per concludere vediamo un esempio di utilizzo del plugin GeSHi con il linguaggio php:
function onPrepareContent( &$article, &$params, $limitstart ) { global $mainframe; // Se il plugin è attivato e se viene trovata la stringa {aboutme} all'interno del contenuto if ($this->params->get( 'enabled', 1 ) && strripos($article->text, "{aboutme}") !== false) { // Recupero il testo da inserire $about_text = $this->params->get('about_text', NULL); // Controllo HTML if(intval($this->params->get('htmlentities', NULL)) == 1) $about_text = htmlentities($about_text, ENT_QUOTES); // Recupero il tag selezionato $tag = $this->params->get('tag', 'blockquote'); // Recupero la classe css $class = $this->params->get('css_class', NULL); // Se la classe è vuota non ho bisogno di inserire l'attributo class $output = ($class != '') ? ' class="'. $class .'"' : "" ; // Inserisco il testo dentro il tag con la relativa classe $about_text = '<' . $tag . $output .'>' . $about_text . '</' . $tag . '>'; // Rimuovo eventuale tag <p> inserito automaticamente dall'editor $article->text = str_replace("<p>{aboutme}</p>", "{aboutme}", $article->text); // Effettuo la sostituzione finale $article->text = str_replace("{aboutme}", $about_text, $article->text); return true; } else return false; }
Paolo Mariani, traduttore e imprenditore, titolare di AstridServizi Italia, Monza e socio di Europrogettare, ha collaborato con importanti aziende, case editrici ed enti fieristici in qualità di traduttore, revisore e redattore, copywriter di testi e pagine pubblicitarie. Fin da giovane è appassionato di informatica, in passato si è accostato al PHP e gestisce il sito amatoriale www.tuttomonza.com, recentemente si sta dedicando al CMS Joomla con cui ha creato il sito www.europrogettare.eu.
Commenti utenti
Nessun commento postato
Aggiungi il tuo commento
| ‹ Precedente | Successivo › |
|---|















