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;
}

Trovare il nome di un font partendo da un’immagine

2 dicembre 2011Categoria:servizi web

Spesso capita di dover cercare un font sconosciuto avendo a disposizione solo un’immagine. Per chi non conosce a memoria ogni font con tutte le relative varianti esistono per fortuna dei servizi che ci semplificano il lavoro.

Il primo è WhatTheFont : questo servizio permette di caricare un’immagine dal pc o da un url, successivamente il motore interno esegue una decodifica suggerendo un carattere per ognuno di quelli trovati nell’immagine.
Dopo un’eventuale correzione da parte dell’utente è possibile passare alla pagina successiva per vedere il font risultante.
Spesso, dato che molti font sono simili, vengono visualizzati più risultati in ordine di pertinenza.

Leggi tutto…

CakePHP: paginazione con condizioni su campi tradotti

30 novembre 2011Categoria:php

Per eseguire la paginazione in CakePHP utilizzando delle condizioni sui campi tradotti (Translate Behavior) è necessario aggiungere alcune funzioni nell’app_model (testato nella versione 1.3):

var $usePaginateMethod = 'standard';
function setPaginate($method=''){
    if (empty($method)){
        $this->usePaginateMethod = 'standard';
    }else{
        $this->usePaginateMethod = $method;
    }
}

function paginateCount($conditions, $recursive, $extra){
    switch ($this->usePaginateMethod) {
        case 'standard':
            return $this->standardPaginateCount($conditions, $recursive, $extra);
        break;

        case 'custom':
        return $this->customPaginateCount($conditions, $recursive, $extra);
        break;
    }
}

function standardPaginateCount($conditions, $recursive, $extra){
    $results = $this->find('count', compact('conditions', 'recursive', 'extra'));
    return $results;
}

function customPaginateCount($conditions, $recursive, $extra){
    $results = $this->find('all', compact('conditions', 'recursive', 'extra'));
    $count = count($results);
    return $count;
}

Leggi tutto…

Uniform JS: look uniforme per form crossbrowser

25 novembre 2011Categoria:javascript

Uniform è un plugin per jQuery (1.3 o superiore) che permette di applicare uno stile uniforme agli elementi di un form e che mantiene inalterata la visualizzazione tra i diverdi browsers e degrada correttamente in IE6.

Leggi tutto…

Google Page Speed: analisi delle prestazioni di una pagina web

21 novembre 2011Categoria:servizi web

google page speed icon Google Page Speed è uno strumento che permette di analizzare una pagina web e trovare le soluzioni per aumentare le performance della stessa.

E’ sufficiente inserire un link e cliccare il pulsante di analisi per poter visualizzare in pochi secondi la lista delle migliorie che si possono apportare suddivise per priorità.
Il test viene eseguito come se la pagina fosse visualizzata in un browser desktop ma è possibile controllare i risultati anche per la versione mobile.

Inoltre il tool è disponibile anche come estensione per Chrome (sarà visibile nel pannello degli strumenti per gli sviluppatori ) e Firefox (visibile nel pannello Firebug), come modulo per Apache e come SDK per l’implementazione in altre applicazioni.

Per il download delle estensioni: http://code.google.com/intl/it-IT/speed/page-speed/download.html

Per la guida sull’utilizzo delle estensioni: http://code.google.com/intl/it-IT/speed/page-speed/docs/extension.html .