CakePOWER :: HowTo :: jQuery Plugin

CakePOWER viene distribuito con un plugin specifico per l'utilizzo di jQuery. Questo plugin 1) fornisce un helper JqueryHelper ed una struttura di files per distribuire jQuery ed alcuni suoi plugin particolarmente utili.

Utilizzare jQuery

Il seguente codice dimostra la ridicola facilità con cui jQuery viene integrato nel sistema di inclusione Javascript di CakePOWER.

...
 
$jquery->core();
 
...
 
echo $pow->js_for_layout();

Includere Plugins

Il seguente codice dimostra la ridicola facilità con cui è possibile includere plugins jQuery nella pagina.

...
 
$jquery->core();
$jquery->plugin('tab');
$jquery->plugin('my_cake_plugin::my_jquery_plugin');
$jquery->plugins('ui,datepicker,foo::foo,user::users_management');
 
...
 
echo $pow->js_for_layout();

NOTA: la sintassi “my_cake_plugin::my_jquery_plugin” indica a $jquery di cercare il plugin jQuery “my_jquery_plugin” nella directory del plugin CakePHP “my_cake_plugin”. Già… il sistema è estendibile… strano?

jQuery Plugin è distribuito con un set di plugins jQuery pronti all'uso e collaudati dal team di CakePOWER. Tuttavia jQuery Plugin offre un sistema estremamente elastico permettendo di includere plugin jQuery da altri plugins CakePHP!

$jquery->plugins('ui?theme=theme_I_want,my_cake_plugin::my_jquery_plugin?var1=content&var2=content&...');

Ogni plugin jQuery è caricato mediante un file di configurazione (vedi a seguito) che definisce quali risorse (js, css, etc) sono coinvolte nella vita stessa del plugin.

Questo file di configurazione è uno script PHP e, come si può intuire, CakePOWER consente di passare a questo script dei dati variabili che possano influenzare il caricamento stesso dei dati.

E' possibile utilizzare questa feature per gestire il caricamento di files di lingua, temi CSS, etc…

Organizzazione dei Plugins

I plugins di jQuery vanno sempre distribuiti all'interno di plugins CakePHP per una questione di organizzazione del codice. Supponiamo di avere il plugin “prjs” il quale funge da contenitore per i plugins jquery necessari al nostro progetto.

Il nostro plugin jQuery si chiama “users” e sarà organizzato come segue:

/app/plugins/prjs/
                 /vendors/
                         /css/
                             /users/
                                   /main.css
                                   /main_print.css
                                   /ie_hack.css
                         /js/
                            /users/
                                  /config.php
                                  /jquery.users.js
                         /img/

Il file config.php contiene la configurazione del plugin e illustra all'helper $jquery quali risorse sono necessarie al plugin.

<?php
/**
 * config.php
 */
JC::write('tmp.jquery.config',array(
  'js' => array(
    'jquery.users',
  ),
  'css' => array(
    'main',
    'main_print::print', // @media: print
  ),
  'ccss' => array(
    'ie' => array(
      'datepicker.IE',
    ),
));
?>

Come si può vedere un plugin può essere composto da più file js, da più file CSS, ma varie definizioni di inclusioni condizionali di CSS (vedere il capitolo dedicato).

I CSS inoltre possono essere dettagliati per specificare il media cui sono destinati utilizzando la sintassi “file_name::media”. Il media di default è “screen”.

Scorciatorie PowHelper

jQuery è ormai talmente necessario nei nostri progetti web che CakePOWER integra all'interno dell'helper Pow delle funzionalità “ponte” per l'utilizzo di jQuery:

$pow->jq(); // Corrispettivo di $jquery->core()
$pow->jqp(); // Corrispettivo di $jquery->plugins()
1) distribuito con CakeLibrary
 
/home/juniorcm/public_html/wiki/data/pages/cakepower/howto/jquery_plugin.txt · Ultima modifica: 05/08/2009 11:52 da peg
 
Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è sotto la seguente licenza:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki