Joomlashow arrow Articoli arrow Come usare il plugin/mambot GeSHi

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à &lt; e &gt;, 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 &lt;/pre&gt;

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;
  }
 

AstridServizi ItaliaPaolo 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

Nome
E-mail
Titolo  
Commento
 

Caratteri rimasti: 1000

   
   
   
‹ Precedente   Successivo ›

Categorie

Ricerca

Web Design

siti web su misura, design unico

Login

Hai dimenticato la password?

Registrati