Very short trick: avoid error message in PHP

Mercoledì 8 Ottobre, 2008

Se non vogliamo che una funzione PHP emetta un qualsiasi errore o warning, basta inserire prima della chiamata alla funzione il carattere chiocciola - o at - (@):

PHP:
  1. // invece di usare la forma canonica
  2. $res = miaFunc();
  3. // è possibile usare
  4. $res = @miaFunc();

Post correlati

Wordpress: come scrivere un reply to comment usando jQuery

Venerdì 3 Ottobre, 2008

Recentemente Cristiano Fino ha rilasciato un utile Plugin per Wordpress in grado di aggiugere due link ad ogni commento di un post (forse ne avete uno simile installato, visto che nella directory di Wordpress.org ne ho travati un paio, tuttavia essendo un software italiano sarebbe il caso di onorare l'ottimo lavoro fatto da Cristiano). Questi Link (reply & quote) permettono di rispondere e/o quotare l'autore di un commento, eseguendo quella noiosa operazione di inserire il carattere at (@) per indicare a chi ci si rivolge. In questo tutorial voglio illustrare - per gli utenti medio-esperti - il modo di aggiugere queste due funzionalità "a mano", senza ricorrere all'istallazione di nessun Plugin. Inoltre sfrutterò le capacità di jQuery per la parte in Javascript. La tecnica che espongo è la medesima che ho usato per introdurre questa funzionalità in questo blog.

Nota: l'uso di un plugin è la miglior soluzione per chi tende a modificare spesso il proprio template Wordpress o, al limite, ha in previsione di farlo. Questo tutorial vuole solo mostrare come eseguire interventi mirati all'interno del codice Wordpress ed è dedicato ai più curiosi.

Modifica del file comments.php

La prima modifica che apportiamo è quella di inserire i link "reply" e "quote" all'interno di ogni commento. Per fare questo editiamo il file comments.php situato nella cartella del nostro tema. Questo file contiene tutte le istruzioni che consentono di visualizzare i commenti alla fine di un post. La sezione che ci interessa (che può variare leggermente da tema a tema) è il loop di creazione dei vari commenti, riconoscibile da:

Continua a leggere... »

Post correlati

Very short trick: PHP auto echo

Giovedì 2 Ottobre, 2008

In PHP è possibile usare una forma abbreviata, o contratta, per visualizzare variabili o ritorni di funzioni:

PHP:
  1. // al posto di
  2. <?php echo $miavar ?>
  3. // è possibile scrivere
  4. <?=$miavar?>
  5. // al posto di
  6. <?php echo miaFunc() ?>
  7. // è possibile scrivere
  8. <?=miaFunc()?>

Post correlati

Actionscript 3.0 for beginners: lesson #3

Domenica 28 Settembre, 2008

Continuiamo l'analisi dell'esempio del gioco Tic Tac Toe, presentato in Actionscript 3.0 for beginners: lesson #2. Eravamo arrivati alla funzione che crea la griglia di gioco:

Actionscript:
  1. /**
  2. * Disegno graficamente la griglia (3x3) a video
  3. *
  4. * @param        void
  5. * @return       void
  6. * @private
  7. */
  8. private function createGrid():void {
  9.     // puntatore temporaneo ad uno oggetto MovieClip
  10.     // nota: qui si sarebbe potuto usare anche un oggetto Sprite
  11.     // ma in questo caso mi serve di poter estendere l'oggetto
  12.     // aggiungendo alcune proproetà personali. L'oggetto Sprite
  13.     // è una classe chiusa e quindi non estendibile runtime, mentre
  14.     // la classe MovieClip è una classe dinamica e quindi rende
  15.     // possibile l'aggiunta di proprietà runtime
  16.     var tm:MovieClip, i:uint = 0;
  17.     // aggiungo in uno schema 3x3 i MovieClip
  18.     for(; i <9; i++) {
  19.         tm                    = new MovieClip();
  20.         addChild( tm );
  21.         tm.x                  = OFFSETX+( (i%3)*(PLAYER_WIDTH+PLAYER_OFFSET) )
  22.         tm.y                  = OFFSETY+Math.floor(i/3)*(PLAYER_HEIGHT+PLAYER_OFFSET)
  23.         tm._index             = i;
  24.         drawPlayer( tm, 0 );
  25.     }
  26.     // disegno le 2 linee veriticali e le 2 orizzontali
  27.     with( this.graphics ) {
  28.         lineStyle(6,0x666666);
  29.         moveTo(OFFSETX,OFFSETY+(PLAYER_HEIGHT+15));
  30.         lineTo(OFFSETX+( (PLAYER_WIDTH+20)*3 ),OFFSETY+(PLAYER_HEIGHT+15));
  31.         moveTo(OFFSETX,OFFSETY+(PLAYER_HEIGHT+20)*2);
  32.         lineTo(OFFSETX+( (PLAYER_WIDTH+20)*3 ),OFFSETY+(PLAYER_HEIGHT+20)*2);
  33.         moveTo(OFFSETX+(PLAYER_WIDTH+15),OFFSETY);
  34.         lineTo(OFFSETX+(PLAYER_WIDTH+15),OFFSETY+( (PLAYER_HEIGHT+20)*3 ));
  35.         moveTo(OFFSETX+(PLAYER_WIDTH+20)*2,OFFSETY);
  36.         lineTo(OFFSETX+(PLAYER_WIDTH+20)*2,OFFSETY+( (PLAYER_HEIGHT+20)*3 ));
  37.     }
  38. }

Continua a leggere... »

Post correlati

jQuery: come costruire un’estensione Plugin

Martedì 23 Settembre, 2008

Come tutte le librerie di questo tipo anche jQuery permette di estendere le sue funzionalità base tramite dei veri e propri plugin. Rispettando le regole del suo funzionamento, cioè restituiendo sempre un puntatore all'elemento selezionato o a jQuery stessa, è possibile scrivere un plugin con poche righe di codice. Prendiamo come esempio il codice proposto in jQuery contro tutti: un benchmark con 5 browser che era (dopo la correzione segnalata da Luca):

JavaScript:
  1. $('h2.dropdown').css('cursor','pointer').click(
  2.     function() {
  3.         if( $(this).next().is(':hidden') ) $(this).next().slideDown(); else $(this).next().slideUp();
  4.     }
  5. );

Continua a leggere... »

Post correlati

Actionscript 3.0 for beginners: lesson #2

Mercoledì 3 Settembre, 2008

Come promesso ecco la seconda lezione su ActionScript 3.0! Oggi inizieremo l'analisi di un semplice progetto che riproduce il giochino del Tris o Tic Tac Toe. Ho cercato di inserire in questo esempio alcune caratteristiche particolari di ActionScript 3.0, cercando di dare spazio alla comprensione e non allo stile. Ne segue che se avessi dovuto scrivere il "gioco" davvero, probabilmente l'avrei strutturato in modo assai diverso, ma in questo caso ho cercato di mediare tra una classica programmazione compatta ed ermetica con una maggiormente comprensibile per i neofiti. Ho realizzato un'unica classe documento, procedura non necessaria ma utile per rimanere in linea con la precedente lezione.

Tic Tac Toe

Loading Flash Player...

Continua a leggere... »

Post correlati

Very short snippet: inviare email in HTML con PHP

Mercoledì 27 Agosto, 2008

Il codice necessario e sufficiente per inviare una semplice email in formati HTML, tramite il comando mail() di PHP è:

PHP:
  1. // preparo l'header per indicare il formato HTML
  2. $headers = "MIME-Version: 1.0\n".
  3.     "Content-type: text/html; charset=utf-8\n".
  4.     "From: Undolog.com <info@undolog.com>\n".
  5.     "Bcc: Copia <g.fazioli@undolog.com>\n";
  6.  
  7. mail( "Destinatario <info@e-lementi.com>", "Oggetto della mail", "<p>Corpo della mail in <strong>HTML</strong></p>", $headers );

Post correlati

WP-ABS: aggiungere il proprio blog al search del browser

Giovedì 21 Agosto, 2008
Aggiornamento: ultima versione

OpenSearch è uno standard che definisce una serie di formati per la condivisione dei risultati di ricerca. Questo standard è utilizzato, ad esempio, da Social Network come Facebook, che possiedono uno proprio sistema di ricerca. Uno degli utilizzi di questo standard, per i browser che lo supportano, è la possibilità di riconoscere in automatico  e quindi aggiungere, il proprio sito web o blog alla lista dei motori di ricerca presenti nel menu a tendina del browser:

image

Se visitate (con FireFox o Flock) il motore di ricerca Divoogle, potrete inserirlo tra i motori di ricerca presenti nel menu.
Questa operazione, tuttavia, potrebbe essere svolta manualmente selezionando "Gestione motori di ricerca..." in Firefox, ad esempio. Ma oltre ad essere un'operazione particolare, ogni utente singolarmente dovrebbe svolgere. Browser di ultima generazione, come Flock, permettono grazie allo standard OpenSearch di automatizzare questa funzione, segnalando in automatico all'utente che il sito web o blog propone un suo motore di ricerca:

image

WordPress Plugin: il vostro Blog nei lista dei motori di ricerca

Il procedimento manuale, utile per attivare questa funzione dappertutto, lo vedremo più sotto. Nel frattempo, se avete un Blog Wordpress, potete installare questo semplice Plugin (wp-abs.zip) che svolge tutto il lavoro per voi. Una volta installato e attivato non dovrete configurare nulla! Caricando il vostro Blog Wordpress su Firefox o Flock, troverete magicamente il vostro Blog elencato nel menu a tendina dei motori di ricerca.
Per il sorgente fate riferimento qui.

Installazione manuale dello standard OpenSearch

Per chi volesse svolgere l'installazione dello standard OpenSearch in modo manuale può seguire il semplice tutorial di esempio esposto qui sotto e/o fare riferimento alla documentazione presente sul sito OpenSearch.

Per segnalare la presenza di un motore di ricerca al browser è sufficiente creare un file XML sul nostro sito o Blog. Eccone ad esempio il file opensearch_desc.xml di undolog.com:

XML:
  1. <?xml version="1.0"?>
  2. <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
  3.         xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  4.     <ShortName>Undolog</ShortName>
  5.     <Description>Open Search Undolog.com</Description>
  6.     <Image height="16" width="16" type="image/x-icon">http://www.undolog.com/favicon.ico</Image>
  7.     <Url type="text/html" method="get" template="http://www.undolog.com/?s={searchTerms}"/>
  8.     <moz:SearchForm>http://www.undolog.com/</moz:SearchForm>
  9. </OpenSearchDescription>

Come potete vedere il suo formato è abbastanza semplice. Il punto importate è la riga 7:

XML:
  1. ...
  2. <Url type="text/html" method="get" template="http://www.undolog.com/?s={searchTerms}"/>
  3. ...

Questa indica al browser dove e come effettuare la ricerca. Normalmente, come in questo caso, Wordpress usa lo standard:

CODE:
  1. http://mioblog.com/?s=stringa da cercare

Tuttavia a seconda delle esigenza, come ho fatto per Divoogle, questa parte di codice può variare. Una volta creato questo file è sufficiente inserire un tag link all'interno della sezione head della nostra home page:

HTML:
  1. <!-- opensearch -->
  2. <link rel="search" type="application/opensearchdescription+xml" href="http://www.undolog.com/opensearch_desc.xml" title="Undolog" />

Tramite l'attributo rel="search", questo link segnalerà al browser (che lo supporta) dove recuperare tutte le informazioni per aggiungere il motore di ricerca.

Post correlati

Simple Accordion con la classe USimpleTabStrip

Mercoledì 20 Agosto, 2008

La classe USimpleTabStrip, presentata in Unobtrusive Simple TabStrip, può essere utilizzata anche per realizzare un semplice menu Accordion.
Utilizzando gli effetti di BlindUp() e BlindDown() offerti da Scriptaculous:

JavaScript:
  1. function init(){
  2.     uts = new USimpleTabStrip();
  3.     uts.Init();
  4.     uts.onShow = function(e) {
  5.         new Effect.BlindDown(e);
  6.     }           
  7.     uts.onHide = function(e) {
  8.         new Effect.BlindUp(e);
  9.     }           
  10. }

E riposizionando gli elementi HTML (sorgente HTML):

HTML:
  1. <div class="accordion">
  2.     <a href="#acc1">Accordion 1</a>
  3.     <a name="acc1"></a>
  4.     <div>
  5.         <h1>Content #1</h1>
  6.          <p>Bla bla bla....</p>
  7.     </div>
  8.  
  9.     <a href="#acc2">Accordion 2</a>
  10.     <a name="acc2"></a>
  11.     <div>
  12.         <h1>Content #2</h1>
  13.          <p>Bla bla bla....</p>
  14.     </div>
  15.  
  16.     <a href="#acc3">Accordion 3</a>
  17.     <a name="acc3"></a>
  18.     <div>
  19.         <h1>Content #3</h1>
  20.          <p>Bla bla bla....</p>
  21.     </div>
  22.  
  23. </div>

Si ottiene un semplice menu Accordion che può essere utilizzato in modo estremamente rapido.

Post correlati

Unobtrusive Simple TabStrip

Giovedì 14 Agosto, 2008

USimpleTabStrip è un Unobtrusive Javascript in grado di migliorare i classici link anchor (ancora) all'interno di una pagina HTML. Questo sorgente è un miglioramento della funzione presentata in Unobtrusive Tabstrip. In questa versione oltre ad allineare il codice alle release 1.6 di prototype.js è stata creata una vera e propria classe per gestire i TabStrip. La release qui presentata è molto semplice e lineare. Il suo principale lavoro risiede nell'aggiungere un evento click ai normali link anchor. Non sono inoltre presentati stili CSS, proprio per lasciare la massima libertà d'azione; tuttavia è possibile ottenere un efficace TabStrip con poche righe di codice CSS aggiuntivo; vedi Aggiungere degli stili CSS più sotto.

Codice HTML

La classe USimpleTabStrip lavora su un HTML molto semplice, sftuttando gli anchor (<a name></a>):

HTML:
  1. <!-- Semplice lista di link all'interno della pagina -->
  2.     <li><a href="#tbs1">Link 1</a></li>
  3.     <li><a href="#tbs2">Link 2</a></li>
  4.     <li><a href="#tbs3">Link 3</a></li>
  5. </ul>
  6.  
  7. <!-- Blocchi/tabs -->
  8.  
  9. <a name="tbs1"></a>
  10.     <div>
  11.         <h1>Scheda #1</h1>
  12.         <p>Bla bla bla....</p>
  13.     </div>
  14.  
  15. <a name="tbs2"></a>
  16.     <div>
  17.         <h1>Scheda #2</h1>
  18.         <p>Bla bla bla....</p>
  19.     </div>
  20.  
  21. <a name="tbs3"></a>
  22.     <div>
  23.         <h1>Scheda #3</h1>
  24.         <p>Bla bla bla....</p>
  25.     </div>

Il tag div subito sotto l'anchor a funziona da contenitore.

Continua a leggere... »

Post correlati