Avevo già parlato di come configurare Notepad++ per far riconoscere il codice HTML e PHP presente nei file .ctp, usati da CakePHP per la creazione di templates.
Questa che riporto è una procedura che non richiede la modifica manuale dei file di configurazione di Notepad++
aprire Notepad++ e selezionare dal menu “Configurazione > Configura gli slili …”;
nella colonna “Linguaggio” selezionare “PHP”;
nel campo in basso sotto la colonna “Stile” inserire “ctp”
fare click su Salva & Chiudi
riavviare Notepad++
Ora il codice dei file .ctp verrà interpretato e colorato come fossero file .php
E’ un classico problema per i form da utilizzare nelle web application: selezionare in una select un elemento e popolare una seconda select con elementi ottenuti dalla scelta della prima.
Il tipico esempio è quello della scelta del Comune: per facilitare la vita all’utente gli si chiede di selezionare la provincia in una prima select per poi scegliere nella seconda tra i comuni della sola provincia selezionata.
Tra i vari modi di ottenere delle select in cascata, ho scelto di sfruttare JQuery, ma soprattutto gli oggetti messi a disposizione da CakePHP nella versione 1.3 per accedervi facilmente.
Installazione di JQuery
Si potrebbe scaricare la libreria sul proprio server e richiamarla da lì, ma preferisco richiamarle dal repository di Google.
A questo punto bisogna inserire il codice JQuery che attiva il meccanismo, ma lo facciamo utilizzando i metodi del component JS.
Inserire prima del form il seguente codice:
Volendo utilizzare un campo data, quello con le select per giorno mese e anno, avendo i nomi dei mesi in italiano, è sufficente sfruttare l’opzione offerta dalla funzione.
Grazie al suggerimento di Tox che ha + fiuto del cane di Lycos nello scovare risorse in rete, ho provato il LinkableBehavior per risolvere un problema con una query che con Containable non riuscivo a rendere efficente.
Problema
Ho il seguente schema di modelli:
Regions hasMany District hasMany City hasMany Customer.
Ho necesità di ottenere l’elenco dei clienti (Customer) che risiedono nella provincia (District) di Torino (id=1).
SELECT `Customer`.`id`, `Customer`.`nome`, `Customer`.`cognome`, `City`.`name` FROM `customers` AS `Customer` LEFT JOIN `cities` AS `City` ON (`City`.`id` = `Customer`.`city_id`) LEFT JOIN `districts` AS `District` ON (`District`.`id` = `City`.`district_id`) WHERE `District`.`id` = 1
Con CakePHP 1.3 è possibile sfruttare altri framework Javascript oltre all’accoppiata Prototype/Scriptaculous utilizzando il JsHelper.
Per utilizzare JQuery è sufficiente seguire le istruzioni del manuale on line http://book.cakephp.org/view/1592/Js che riassumo di seguito.
Un editor leggero e veloce che uso al posto del classico blocco note e anche per eseguire delle piccole modifiche su semplici progetti.
Per progetti in php + complessi uso Eclipse con plugin legati al PHP.
Utilizzando massicciamente i template con i vari sistemi da me utilizzati (Smarty, CakePHP, ecc), mi trovo di fronte a estensioni del tipo tpl, thtml, che non contengono altro che codice HTML, ma che non sono riconosciuti dall’editor come tali e quindi non viene attivata la colorazione del codice.
Per Notepad++ è sufficente aggiungere l’estensione nel file langs.xml che si trova nella directory di installazione del programma.
La dove è definito il linguaggio html
E’ sufficente aggiungere le estensioni da associare all’HTML
e poi registrare le due estensioni selezionando da menu:
CONFIGURAZIONE > OPZIONI > ASSOCIAZIONE TIPI DI FILE > CUSTOMIZE
e inserire nel campo le estensioni “thtml” e “ctp” per poi trasferirle con la freccietta
Immaginiamo di avere un form con una select che mi permette di selezionare la nazione a cui fa riferimento l’articolo.
Voglio consentire che l’utente traduca la nazione selezionata nella sua lingua nativa senza uscire dalla compilazione del form. Leggi l’appunto »