[Symfony]: YUI Tooltip helper

Avevo bisogno di una libreria solida che mi permettesse di avere dei tooltip e anche altri effetti javascript, era da tempo che volevo provare la YUI (Yahoo User Interface), una libreria immensa di codice, molto documentata e facile da utilizzare, cosi non ho perso tempo e ho creato subito un piccolo Helper per Symfony (si adoro questo framework ogni giorno di più)

Questo è il codice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
_addYahooResources();
 
function tooltip($element_id, $text, $delay = 250, $options = array())
{
 
	$options['context'] = $element_id;
	$options['text'] = $text;
	$options['delay'] = $delay;
 
	$code = 'myTooltip = new YAHOO.widget.Tooltip("myTooltip",'._my_options_for_javascript($options).');';
 
	return javascript_tag($code);
}
 
function _addYahooResources()
{
	$response = sfContext::getInstance()->getResponse();
 
	/* Stylesheet */
        $response->addStylesheet('http://yui.yahooapis.com/2.3.0/build/container/assets/container.css');
 
	/* Javascript */
	$response->addJavascript('http://yui.yahooapis.com/2.3.0/build/yahoo-dom-event/yahoo-dom-event.js');
	$response->addJavascript('http://yui.yahooapis.com/2.3.0/build/animation/animation-min.js');
	$response->addJavascript('http://yui.yahooapis.com/2.3.0/build/container/container-min.js');
 
}
 
 function _my_options_for_javascript($options)
  {
    $opts = array();
    foreach ($options as $key => $value)
    {
      $value = '"'.$value.'"';
      $opts[] = "$key:$value";
    }
    sort($opts);
 
    return '{'.join(', ', $opts).'}';
  }

L’utilizzo è molto semplice, basta copiare questo helper in app/{APPLICAZIONE}/lib/helper/chiamalocomevuoiHelper.php

E poi chiamare la funzione quando ne avete bisogno nei template, in questo modo:

1
< ?php echo tooltip('id_elemento','testo'); ?>

L’helper supporta anche tutti i parametri della libreria originale, basta passarli in un array come terzo parametro.

Symfony si preoccuperà di caricare la libreria automaticamente, non vi resta che utilizzarla.

Per la documentazione del codice YUI Tooltip fate riferimento a questo sito:

http://developer.yahoo.com/yui/container/tooltip/ (documentazione ufficiale)

Per ora è tutto, ci sentiamo al prossimo helper ;)

Comments

6 Responses to “[Symfony]: YUI Tooltip helper”

  1. Traffyk on Agosto 22nd, 2007 1:42 pm

    Ciao Paolo arrivato qui da un po di tempo grazie a Stefano (tuo fratello giusto??) e seguo il tuo feed da allora.
    Veramente un bel post :D Prima o poi ci proverò anche io.

    PS: il nero come sfondo del codice è davvero un pugno nell’occhio :(

  2. Paolo Mainardi on Agosto 22nd, 2007 2:06 pm

    Si si, Stefano è mio fratello gemello :-)

    Comunque, hai ragione il nero non è che sia il massimo, ora cambiato schema di colori, come ti sembra ? Dovrebbe gia essere più leggibile.

    Ti seguo regolarmente da quanto ti ho nel mio feed reader, bel blog, ma non esagerare con gli adv ;)

  3. Stefano Mainardi on Agosto 22nd, 2007 7:52 pm

    Yes sono il suo carissimo (in tutti i sensi) fratellino :)

    Finalmente si è messo a bloggare alla grande, anche con template stilosi, sono contento.

  4. rpsblog.com » A week of symfony #34 (20->26 August 2007) on Agosto 27th, 2007 1:49 am

    […] [Symfony]: YUI Tooltip helper […]

  5. Andrea on Aprile 2nd, 2008 3:00 pm

    Beh. Allora ti conoscevo già!
    Ho usato questo tuo helper su Firmiamo.it
    Ciao

  6. Paolo Mainardi on Aprile 2nd, 2008 3:12 pm

    @Andrea

    Mi fa piacere :) Ottimo lavoro con Firmiamo.it, l’hai aggiunto nelle applicazioni sviluppate sul sito ufficiale di Symfony ?

    Ciao ;)

Leave a Reply




  • Cerca


  • About me

    Benvenuto nel mio Blog, un piccolo spazio virtuale in continua evoluzione che mi permette di condividere con voi tutto ciò che ritengo interessante. Sentiti libero di esplorare liberamente ogni contenuto di questo sito. Se vuoi altre informazioni su di me, puoi scaricare qui il mio curriculum aggiornato. Oppure scrivimi

  • Iscriviti ai feed

  • Archivi