Pagine

venerdì 24 settembre 2010

Come inserire codice php, html, javascript ... formattato in un post di Blogger

Già dal primo post mi sono scontrato con la necessità di aggiungere dei frammenti di codice. Il normale utilizzo del tag <pre> rende la lettura di grossi blocchi di codice al più difficoltosa.
Per fortuna esiste SyntaxHighlighter, uno script veramente utile e di semplicissima implementazione che permette di visualizzare il codice con la sintassi evidenziata, i numeri di riga e tutto quello che permette una maggiore leggibilità dello stesso.
Lo script può essere usato in qualsiasi ambiente (non esclusivamente blogger) ed esistono già plugin per alcune delle piattaforma blog più diffuse.
Per inserirlo in blogger è sufficiente aggiungere al modello ( Design / Modifica HTML ) subito prima del tag </body>

<!-- Inizio SyntaxHighlighter -->
<link href='http://IL TUO DOMINIO/styles/SyntaxHighlighter.css' rel='stylesheet' type='text/css'/>  
<link href='http://IL TUO DOMINIO/styles/shCoreDefault.css' rel='stylesheet' type='text/css'/>  
<script src='http://IL TUO DOMINIO/scripts/shCore.js' type='text/javascript'/>  
<!-- Elenco brushes, in questo caso per CSS, JavaScript, SQL, XML e PHP --> 
<script src='http://IL TUO DOMINIO/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://IL TUO DOMINIO/scripts/shBrushCss.js' type='text/javascript'/>  
<script src='http://IL TUO DOMINIO/scripts/shBrushJScript.js' type='text/javascript'/>  
<script src='http://IL TUO DOMINIO/scripts/shBrushSql.js' type='text/javascript'/>  
<script src='http://IL TUO DOMINIO/scripts/shBrushXml.js' type='text/javascript'/>  
  
<script class='javascript'>  
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
<!--FINE SyntaxHighlighter -->  

Gli script/CSS fanno riferimento alle cartelle che contengono i file e che devono essere esterni a Blogger (che non fornisce uno spazio web dove uplaodare files oltre a Picasa). E' possibile scaricare i files dalla pagina di download di SyntaxHighlighter o usare quelli gentilmente offerti in hosting gratuito dal creatore dello script (in questo caso sostituire a IL TUO DOMINIO il percorso alexgorbatchev.com/pub/sh/current )

A questo punto non resta che inserire nei nostri post il codice da formattare usando il marcatore <pre> con una sintassi simile (in questo caso per un blocco php).

<pre class="brush:php">
<?php
echo('Ciao mondo');
?>
</pre>

Sarà lo script, una volta caricato, ad occuparsi della conversione! facile, rapido ed indolore.
L'unico accorgimento richiesto è l'utilizzo di &lt; e &gt; al posto di < e > all'interno del codice (basta fare il "copia/incolla" del codice nell'editor WYSIWYG di blogger).

Per maggiori opzioni/funzionlità fare riferimento alla pagina di configurazione di SyntaxHighlighter

giovedì 23 settembre 2010

Usare TinyMCE con Symfony

Dato che normalmente nei miei progetti utilizzo TinyMCE come editor WYSIWYG ho deciso di usarlo anche in una applicazione che sto sviluppando per symfony. Cercando su google ho trovato un widget interessante: sfWidgetFormTextareaTinyMCE, facente parte del plugin sfFormExtraPlugin che promette con pochi passaggi, ad esempio quelli evidenziati in questo post in inglese,di utilizzare con semplicità tinyMCE.

Ho provato il plugin e l'ho disinstallato, l'idea di creare un widgetd customizzato per la gestione delle aree di testo mi è sembrato inutile. TinyMCE ha infatti un'utilizzo molto semplice, basato su un javascript esterno e uno script di configurazione. Dato che in symfony è semplice abilitare/disabiltiare gli script trovo inutile farlo con un widget.

Per usare TinyMCE è infatti sufficiente:
  1. scaricare TinyMCE dall'area download del sito 
  2. Scompattarlo nella cartella web/js del progetto (senza esempio, basta la sottocartella tiny_mce)
  3. Inserire nel template/layout (a seconda di dove dovrà essere utilizzato) il codice seguente

<?php use_javascript('tiny_mce/tiny_mce.js') ?>  
<?php use_javascript('tiny_mce_myconfig.js') ?>    

dove tiny_mce_myconfig.js è un file contenente la configurazone di tinyMCE (vedi documentazione) ad esempio:

tinyMCE.init({  
      mode : "textareas",  
      theme : "simple"  
 });  

per un'interfaccia minima


Volendo è possibile definire gli script direttamente nel file view.yml dell'applicazione (es. frontend) con la sintassi

javascripts:  [tiny_mce/tiny_mce.js, tiny_mce_myconfig.js]

Molto più semplice che installare un plugin e definire un widget no ?

martedì 21 settembre 2010

Ok, il primo passo è fatto

E' un po' di tempo che mi diletto con l'idea di aprire un blog dove inserire piccoli trucchi (ed a volte ovvietà) che, da utente inesperto del framework Symfony, avrei voluto scoprire più facilmente.

Symfony è veramente un prodotto eccellente, ma si rivolge ad una fascia di pubblico un po' troppo elitaria. La documentazione ad esempio è ben fatta ed estensiva ma difetta di esempi, e spesso un esempio vale più di 1000 parole.

Via via che imparo nuove cose su questo software penso "questa me la devo segnare da qualche parte"... ed ora sono pieno di foglietti e files txt sul desktop, senza contare i preferiti troppo lunghi e caotici.

"Perchè non usare un blog ?" mi sono detto. Almeno queste note e link possono servire anche ad altri... ed eccomi qua a scrivere.

Pausa finita... torno a programmare :)