Build e Uglify delle applicazioni JavascriptMVC

2 maggio 2012Categoria:javascript

JavascriptMVC integra un builder che permette di riunire i files js e css richiamati tramite steal() in 2 files unici per l’ambiente di produzione:

  • production.js
  • production.css

Questi 2 files vengono inoltre compressi. Per i files .js la compressione di default è eseguita tramite Google Closures ma è possibile velocizzare il processo utilizzando la libreria Uglify che permette di eseguire le stesse operazioni in circa 1/10 del tempo.

L’unico requisito di tale libreria è l’utilizzo di NodeJS.
In ambiente Windows è molto semplice: basta infatti scaricare il file node.exe dal sito principale ( http://nodejs.org/#download ) e copiarlo nella cartella dell’applicazione (ovvero nella stessa directory del file js.bat). Il file singolo è scaricabile dal link “Other relase files”.

 

Leggi tutto…

Kalendae: un date picker javascript indipendente da frameworks

2 aprile 2012Categoria:javascript

Kalendae è uno script per la creazione di calendari indipendente da altre librerie.

Tra le caratteristiche principali:

  • nessuna dipendenza da librerie quali jQuery, Prototype o MooTools. E’ sufficiente aggiungere lo script e il file css per utilizzarlo.
  • completamente personalizzabile: il tema di default usa una sola immagine (per i pulsanti), tutti gli altri stili sono modificabili via css
  • supporto per tutti i browser moderni (per IE serve la versione 8 o superiore)
  • supporta la selezione di date singole, multiple o range
  • è possibile visualizzare il calendario inline o come popup; inoltre si possono visualizzare mesi multipli
  • output delle date in diversi formati

La DEMO è visibile a questo indirizzo: http://chipersoft.github.com/Kalendae/.

Leggi tutto…

FuelPHP: risolvere l’errore “Call to undefined function Fuel\Core\finfo_open()” in Windows

29 marzo 2012Categoria:php

Utilizzando la classe Upload di FuelPHP è possibile rimanere bloccati a causa di questo errore:

Call to undefined function Fuel\Core\finfo_open()

Il problema è causato dalla mancanza dell’estensione php_fileinfo.dll che deve essere attivata nel file php.ini rimuovendo il commento (il punto e virgola) all’inizio della riga

extension=php_fileinfo.dll

e riavviando il server Apache.

turn.js: page flip in JavaScript e HTML5

4 marzo 2012Categoria:javascript

turn.js è un piccolo plugin (solo 6K) per jQuery 1.7 o superiore che permette di ottenere un effetto page flip senza ricorrere all’utilizzo di software flash.
Con una singola linea di codice è infatti possibile animare le proprie pagine codificate in HTML come se fossero un vero libro.

Leggi tutto…

Ricavare la lista dei layers da Geoserver

26 gennaio 2012Categoria:open source

Se non si conoscono i nomi del layers resi disponibili da un servizio di mappe gestito con Geoserver è possibile ricavare un file xml tramite la richiesta GetCapabilities all’url del servizio. Esempio:

http://demo.opengeo.org/geoserver/wms?request=GetCapabilities

Eventualmente è possibile anche inserire ulteriori informazioni nella richiesta:

http://demo.opengeo.org/geoserver/wms?request=GetCapabilities&service=WMS&version=1.0.0

Il file xml conterrà diverse informazioni utili su servizio e una lista dei layers interrogabili nel seguente formato:

Leggi tutto…

CakePHP: caching semi automatico delle query tramite AppModel

23 gennaio 2012Categoria:database | php

In un precedente articolo è stata mostrata una semplice struttura per salvare i dati in cache da controller.
Per automatizzare questa funzionalità e scrivere meno codice è possibile centralizzare le funzioni necessarie all’interno della classe AppModel.

La classe contiene:

  • una variabile $cache_key per impostare la chiave per il salvataggio in cache
  • una funzione findCached() da richiamare con gli stessi parametri della funzione find() standard che ritorna i risultati salvati in cache oppure, nel caso in cui non ci siano risultati salvati, esegue la funzione find()
  • il callback afterFind() per salvare i risultati in cache dopo la prima esecuzione della query

Ed ecco la classe completa con i commenti necessari per comprenderne il funzionamento:

Leggi tutto…

Applicare sconti su tutti i prodotti di una categoria in Prestashop

2 gennaio 2012Categoria:php

Un piccolo modulo che può far risparmiare diverse ore di lavoro: Sale Category.
Con questo modulo è possibile impostare con un click uno sconto (sul totale o in percentuale) ad un’intera categoria di prodotti. Inoltre è possibile applicare allo stesso modo anche il flag “saldi” .

Ovviamente esiste anche la funzione per rimuovere velocemente gli sconti e i flags inseriti.

Il modulo è gratuito e al momento è compatibile con le versioni 1.2, 1.3 e 1.4 di Prestashop (testato personalmente sulla versione 1.4.6).

Link per il download: http://btcdev.net/2011/11/30/sale-category/

Prestashop: ordinamento degli attributi in ordine non alfabetico

20 dicembre 2011Categoria:php

Come default Prestashop visualizza gli attributi dei prodotti in ordine alfabetico, quindi un attributo tipo “Taglia” sarà visualizzato dagli utenti del negozio e-commerce in questo modo:

  • L
  • M
  • S
  • XL
  • XXL

Per ottenere l’ordinamento corretto sono necessarie un paio di piccole modifiche ai files di Prestashop.
Nel file classes/Product.php cercare la funzione getAttributesGroups e modificare l’ordinamento della query da

ORDER BY agl.`public_name`, al.`name`');

a

ORDER BY a.`id_attribute`')

Nel file controllers/ProductController.php è invece necessario commentare le seguenti righe

Leggi tutto…

woorank: analisi seo gratuita di un sito web

12 dicembre 2011Categoria:servizi web

Per incrementare la visibilità di un sito web sono necessari diversi accorgimenti per fare in modo che i motori di ricerca indicizzino correttamente i contenuti proposti.

Anche utilizzando le “best practices” durante la fase di sviluppo può sempre esserci una dimenticanza o un errore riguardante l’aspetto SEO. Se poi si lavora su un sito fatto da altri trovare eventuali problemi di indicizzazione risulta ancora più complesso.

Per risolvere queste situazioni può tornare molto utile woorank, un servizio web gratuito che esegue in automatico una scansione del sito desiderato analizzando i diversi aspetti riguardanti il posizionamento. Alla fine dell’analisi viene restituito un indice di valutazione del sito e tutte le indicazioni per risolvere eventuali problemi.

Leggi tutto…

CakePHP Paginator: ordinamento in base a un campo Translated

6 dicembre 2011Categoria:database | php

Nel caso in cui si utilizzi il Paginator Helper e si vogliano ordinare i risultati in base ad un campo tradotto con Tranlsate Behavior

var $actsAs = array(
    'Translate'=> array(
        'name'
    )
);

si deve utilizzare all’interno delle view la funzione sort in questo modo

echo $paginator->sort('name','I18n__name.content');

e aggiungere  nell’AppModel la seguente funzione (testato in CakePHP 1.3):

function hasField($fieldName) {
    if (parent::hasField($fieldName))
        return true;
    else
        switch ($fieldName) {
            case "content":
                return true;
            default:
                return false;
        }
    return false;
}