Rilasciato CodeIgniter 1.7

E’ stata rilasciata il 23 ottobre la nuova versione di CodeIgniter, la 1.7.

La novità più rilevante è la nuova classe Form Validation che presenta diverse novità rispetto alla precedente.

In pratica viene semplificato e velocizzato il modo in cui si impostano i campi, le label e le regole. Anziché usare i metodi $this->validation->set_fields() e $this->validation->set_rules() si può utilizzare un unico comando per ciascun input — $this->form_validation->set_rules(NOMECAMPO, LABEL, REGOLA); — oppure impostare direttamente un array multidimensionale, per tutti i campi, in una sola volta. Ulteriore vantaggio è la possibilità di impostare le regole di validazione su un file di configurazione esterno, snellendo quindi il codice da usare nel controller.

Anche il codice lato vista, per visualizzare gli errori, beneficia dell’introduzione di appositi helper per visualizzare i messaggi di errore e per ripopolare il form. Anziché dover utilizzare i metodi $this->validation->nomecampo e $this->validation->nomecampo_error sarà sufficiente utilizzare le funzioni set_value('nomecampo') e form_error('nomecampo')

Per tutti i dettagli e le altre novità vi rimando alla pagina di annuncio e al relativo change log

Progetto Step by Step Codeigniter – l’applicazione (edit)

Riprendo dopo qualche tempo il tutorial su CodeIgniter, dato che ho ultimato una prima versione preliminare dell’applicazione (molto scarna, ma rende l’idea). Potete quindi già testarne il funzionamento e seguire i prossimi tutorial direttamente sul codice finito.

L’installazione è semplicissima se avete un webserver php attivo con mysql configurato. Provate visitando l’indirizzo http://localhost/ (altrimenti esistono ambienti preconfigurati come XAMPP per windows o MAMP per macintosh molto facili da installare).

Innanzitutto scaricate il file contenente tutto il necessario: [Scarica]

Create poi una cartella (io l’ho chiamata “homeDB”) all’interno del vostro “localhost” (dove avete le cartelle dei vostri progetti in php, per intenderci) e scompattate all’interno il file zip. Quest’ultimo contiene, oltre al framework e all’applicazione, un file SQL per creare le tabelle necessarie (eseguite la query all’interno di phpMyAdmin o della vostra interfaccia MySQL preferita).

Ora non resta che modificare la configurazione dell’applicazione per adattarla al vostro ambiente. Per prima cosa aprite il file config.php all’interno di [vostraCartella]/system/application/config/ e modificate la riga $config['base_url'] = "http://127.0.0.1/homeDB/"; con la vostra cartella al posto di homeDB.

In secondo luogo bisognerà indicare i nuovi parametri di connessione al database. Per farlo aprite database.php nella stessa cartella e modificate in fondo alla pagina i parametri con quelli corretti.

A questo punto tutto dovrebbe essere configurato correttamente e dovreste già poter vedere l’applicazione funzionante visitando l’indirizzo http://localhost/[vostraCartella]. Potete creare qualche record fittizio per provare il tutto: vi suggerisco di partire dalle tipologie e dagli stati dato che sono campi obbligatori. Potete anche vedere, nell’inserimento degli articoli, la libreria Validation fornita direttamente da CodeIgniter (provate a creare un articolo vuoto).

Nei prossimi giorni vedremo gli altri elementi dell’applicazione, ovvero i controller e le viste, nonché l’utilizzo di helper e librerie.

Edit: ho messo on-line una demo di questo primo abbozzo di applicazione a questo indirizzo se volete provarla “dal vivo”. Mi raccomando non scrivete oscenità :)

jQuery plugin

Oggi ho realizzato un piccolo plugin in jQuery che ben si presta a fare da breve introduzione allo sviluppo di plugin per il famoso framework javascript.

Quello di cui avevo bisogno era un plugin per simulare il comportamento della pseudo-classe “focus” in modo da renderla compatibile con tutti i browser. Nella fattispecie quando ci si posiziona su un campo di input, a questo viene aggiunta una classe in modo da cambiarne lo stile. In questo modo si evidenzia all’utente il campo in cui sta operando favorendo l’accessibilità e l’usabilità.

Read more »

XML Cross-domain con PHP

Come potete vedere qui a destra ho implementato da poco le API di last.fm tramite i feed xml.

Nel mio post precedente ho spiegato come utilizzare i dati in Xml nel codice PHP per creare i propri widget. Questo sistema però ha un inconveniente: finché il php non ha avuto il file dal server di last.fm la pagina non viene completata e il sito non si carica. E questo vale in generale.

Tramite javascript invece i contenuti vengono aggiunti dopo e se per qualche motivo il server non rispondesse, avremmo comunque possibilità di consultare il sito. E’ per questo che ho deciso di implementare la soluzione via jQuery.

Read more »

ShareThis: il social dei social

icons.jpg

Di serivzi di social bookmarking ce ne sono a decine: del.icio.us, Technorati, Digg, StubleUpon solo per citare i più famosi. Come utenti possiamo scegliere quello che più ci soddisfa, ma come blogger quale scegliamo di integrare nel nostro sito?

Per venire incontro ai lettori e non perdere la possibilità di aumentare la popolarità del sito molti inseriscono i pulsanti di ciascun network, con l’effetto di creare una selva di iconcine che disorientano.
social.jpg

Share This offre una semplice soluzione al problema, integrando in un’unica tendina i link ai maggiori siti di social web. Come potete vedere qui sotto, cliccando sul link “Share This” si può decidere se aggiungere la pagina ai preferiti, di segnalarla tramite un post nel proprio blog — supporta tra tutti wordpress e twitter — o addirittura se inviare il link direttamente via e-mail.

Anche Add This offre una soluzione simile, più rapida e semplice (non c’è la possibilità di postare o inviare via e-mail). Inoltre va inserito manualmente nelle pagine, a differenza di ShareThis che dispone invece di un comodo plugin per WordPress.

Non resta che provarli e decidere quale fa al caso vostro!

Google Static Maps

staticmap.gif

Molti di voi probabilmente conoscono il servizio Google Maps, l’avrete visto sicuramente in molti siti. Nella stragrande maggioranza viene usato via javascript tramite le API pubbliche o tramite iFrame.

Qualche volta però queste soluzioni non sono applicabili, ad esempio se stiamo realizzando un sito per dispositivi portatili che non supportano bene i contenuti dinamici, oppure se non vogliamo appesantire la pagina con troppe mappe dinamiche, o in generale per tutte quelle situazioni dove javascript non è la soluzione migliore.

La cosa che forse non tutti sanno è che Google mette a disposizione anche la possibilità di generare mappe statiche, che diventano quindi semplici immagini jpeg, gif o bitmap. I vantaggi possono essere moltissimi:

Read more »

Flickr Feeds

Continua la mia caccia alla ricerca di API e feed per i servizi di social network più diffusi. Stavolta tocca a Flickr.

Anche qui il nostro obiettivo è reperire le nostre ultime foto per utilizzarle nel proprio sito come più ci aggrada.

Pur non essendo disponibili liberamente tutte le API, per i nostri scopi possiamo utilizzare i feeds pubblici forniti da Flickr.

Read more »

Twitter API

269E7D5A-38CA-49F0-8105-3654900F3FAB.jpgSe cinguettate su Twitter e volete inserire i messaggi nel vostro sito avete a disposizioni le completissime API. La documentazione la trovate qui ma vi do due dritte al volo…
Read more »

Progetto step by step CodeIgniter – i modelli

E’ finalmente giunto il momento di cominciare ad usare CodeIgniter. Come detto nel precedente step vediamo come strutturare i modelli della nostra applicazione all’interno del framework CodeIgniter, seguendo il pattern MVC su cui si basa.

Read more »

Progetto step by step CodeIgniter – il database

Vi avevo annunciato un paio di post fa il piccolo progetto in CodeIgniter che volevo realizzare. Si tratta di una piccola webapplication per tenere organizzata la propria collezione di cd, dvd e vhs.

Nel capitolo introduttivo ho descritto genericamente il funzionamento e le entità in gioco, ora vediamo più concretamente come sarà strutturata definendo le tabelle del nostro database.

Read more »

« Pagina precedentePagina successiva »