Benvenuto sul blog di EmaWebDesign

Web Developer/SEO Specialist. CMS & Framework MVC expert. Sviluppo progetti e strategie web dal 1999.

Posso aiutarti a realizzare il tuo progetto/business online. Contattami subito per una consulenza gratuita.

CONTATTAMI ORA

CakePHP: invalidare un form in un controller

Per la validazione dei dati di un form, inviato con CakePHP, esistono le apposite regole gestibili all’interno dei model. Nel caso di esigenze particolari, per invalidare l’invio del form in un controller, possiamo procedere impostando l’array degli errori nel seguente modo: <?php   $validationErrors = array(); $validationErrors[’myfile’][] = "Puoi caricare solo file JPG o PNG"; $this->Photo->validationErrors = array_merge($this->Photo->validationErrors, $validationErrors);   ?>

Leggi tutto

jQuery scrollTop e scroll to div: un esempio pratico

In questo articolo vediamo come implementare lo scroll verso un elemento della pagina web (scroll to div) e lo scroll al top tramite jQuery. Ci può tornare utile per implementare un menu di navigazione con effetto “smooth scroll“, particolarmente adeguato per una landing page o single-page application. Se, per esempio, il nostro link al top avesse id uguale a “btnHome”, il codice jQuery sarebbe: $("#btnHome").click(function(event) { event.preventDefault(); $(’html, body’).animate({ scrollTop: 0 }, 1000); }); Un link “btnContact” che punta alla sezione contatti, invece, sarebbe: $("#btnContact").click(function(event) { event.preventDefault(); $(’html, body’).animate({ scrollTop: $("#contacts").offset().top }, 1000); }); Per l’animazione abbiamo utilizzato il metodo...

Leggi tutto

Google Maps API e PHP: usare il Geocode

Per visualizzare una mappa a partire da un indirizzo, possiamo usare il geocoding per ricavare latitudine e longitudine necessari per il caricamento della mappa. Vediamo come usare il Geocoding con le API di Google Maps e PHP. Per prima cosa otteniamo una chiave API: https://developers.google.com/maps/documentation/geocoding/get-api-key Dopodichè ricaviamo latitudine e longitudine con PHP: <?php   $url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=".urlencode($address) ."&key=" .$apiKey;   $lat_long = get_object_vars(json_decode(file_get_contents($url)));   $lat_long = $lat_long[’results’][0]->geometry->location->lat . "," . $lat_long[’results’][0]->geometry->location->lng;   ?> Carichiamo la mappa con Javascript:   <div id="map" style="width:100%;height:300px;"></div> <script src="http://maps.googleapis.com/maps/api/js"></script> <script> (function() { function initialize() { var myLatlng = new google.maps.LatLng(<?php echo $lat_long; ?>), mapOptions =...

Leggi tutto

Perchè sei schiavo del tuo smartphone?

  In un post su Medium mi sono imbattuto nel corto dello studente cinese Xie Chenglin che ha vinto il premio come miglior corto della Central Academy of Fine Arts di Pechino. Non so cosa cazzo sia ma immagino sia un premio di grande valore 😀 Il video (lo trovi alla fine del post) merita di essere visto e ci mostra quanto siamo (anzi, siete 🙂 ) diventati dipendenti dallo smartphone. Il problema non è il dispositivo ovviamente; chi non è schiavo dello smartphone è schiavo della poltrona, del telecomando, della sigaretta o di cose, probabilmente, peggiori. Perchè sei schiavo...

Leggi tutto

CakePHP e MongoDB: utilizzare un database NoSQL

Chi si occupa di sviluppo di applicazioni web di grandi dimensioni, dove c’è necessità di archiviare ed elaborare una mole notevole di dati, conosce bene l’importanza di puntare su un database NoSQL per lo storage. In questo post ti illustro come utilizzare l’ormai famoso MongoDB con CakePHP grazie all’utilizzo di un plugin che ho testato con la versione 2.6 di Cake. Per prima cosa, scarica il plugin da qui e caricalo nella cartella app/Plugin/Mongodb. Ora devi attivarlo in app/Config/bootstrap.php: CakePlugin::load(’Mongodb’); A questo punto, come array di connessione in app/Config/database.php, devi specificare il datasource: public $default = array( ‘datasource’ => ‘Mongodb.MongodbSource’,...

Leggi tutto