Passa ai contenuti principali

Post

Visualizzazione dei post da 2015

NGINX & Prestashop

NGINX lo ritengo un web server eccezionale: veloce e leggero. Ma soprattutto facile da configurare.
o appena implementato implementato da un cliente per il suo shop Pretsashop, riscontrando naturalmente qualche problema
Friendly URLs questa parte è stata la più facile. Basta seguire la guida ufficiale http://doc.prestashop.com/display/PS16/System+Administrator+Guide#SystemAdministratorGuide-NginxfriendlyURLs

        location  / {

          index /index.php;

          rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;

          #rewrite per immagini
          rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$1$2.jpg last;
          rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
          rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
          rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
          re…

Creare un ambiente di sviluppo PHP SYMFONY MYSQL DOCKER

Preferisco Docker a Vagrant, più leggero. Ognuno naturalmente ha le sue preferenze.
Docker lo trovo più facile e veloce da configurare.
Non conosci Docker, vai sul sito e scoprirai un tool fantastico per "virtualizzare" le macchine, anche se non è il termine corretto.
Docker crea un contenitore all'interno del tu S.O. senza però virtualizzare l'infrastruttura hardware.
A me piace sviluppare con Symfony: W Symfony2!

[update: ho trovato questa serie di post nuovi per lo sviluppo con symfony su docker
https://blog.vandenbrand.org/2016/02/03/developing-symfony-applications-with-docker-series-part-i-getting-started/
]

Utilizzare i servizi nei templates twig

Nello sviluppo di un'applicazione web spesso ci si imbatte nel dover progettare un'architettura dinamica
L'implementazione di un tema grafico è tutt'altro che che banale
Twig viene in aiuto con l'estensione dei template, i blocchi, gli include e i render controller
Inoltre c'è la possibilità di scrivere estensioni ad hoc per il proprio progetto
Partiamo dal presupposto che il tema grafico non deve essere fisso, ossia può essere cambiato col tempo
La progettazione del tema grafico richiede di renderlo il più possibile staccato dal controller
Quindi in twig è necessario fare un build di vari frammenti e dati
In linea generale i dati devono essere richiamati da twig e non viceversa
Partendo da questo presupposto, in fase di generazione del template il controller deve inserire tutti i dati, ma proprio tutti
Il controller però in questo caso diventa monolitico
Non è la soluzione migliore
L'altra opzione è inserire in twig i render controller, ma i due oggetti si…

Ionic Framework & Gradle

Ho riscontrato delle difficoltà nel build della web app con ionic + gradle, sopratutto dopo aver aggiornato cordova all'ultima version che non usa più ant
Prima con ant era facile ionic build -- --ant
con gradle invece è sufficiente dare ionic build
peccato che nel tentativo di deploy mi sia imbattuto in questo errore:
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> A problem occurred configuring project ':CordovaLib'.
   > Could not resolve all dependencies for configuration ':CordovaLib:classpath'.
      > Could not resolve com.android.tools.build:gradle:1.0.0+.
        Required by:
            android:CordovaLib:unspecified
         > Could not resolve com.android.tools.build:gradle:1.0.0+.
            > Failed to list versions for com.android.tools.build:gradle.
               > Unable to load Maven meta-data from https://jcenter.bintray.com/com/android/tools/build/gradle/maven-m…

Inserire gli scopes in phpstorm

Gli scope sono utili perchè permettono di vedere solo l'albero di codice che interessa invece di tutto il progetto
Sono anche comodi per filtrare i TODO da visualizzare solo per il codice che ci interessa

Nella configurazione è presente la voce "Appearence & Behavior" > Scope
Vediamo velocemente come funzionano.
Effettuiamo un filtro sui file
Lo scope funziona con i pattern (o regex?)  Sono con u progetto symfony quindi voglio filtrare solo i files sotto src In pattern inserisco:        file:src//* e voilà, phpstorm mi presenta solo la cartella src che posso espondere. a questo punto con i vari tasti include o exclude, include recursive o exclude recursive posso includere o escludere porzioni singole di codice Un guida utile alla configurazione degli scopes si trova qui: http://www.jetbrains.com/phpstorm/help/scopes.html

Estrarre i dati da prestashop dei clienti che non ordinano da un certo tempo

Ecco un breve snippet sql per estrarre i dati da PrestaShop che non ordinano da un X di mesi

SELECT customer.firstname, customer.lastname, customer.email, customer.date_add as registrata, addr.city,addr.postcode, state.name 
FROM ps_customer as customer 
 left join ps_address as addr on addr.id_customer = customer.id_customer 
 left join ps_state as state on state.id_state = addr.id_state and state.id_country = addr.id_country 
WHERE customer.id_customer NOT IN (SELECT id_customer FROM ps_orders where date_add > '2015-02-27')

Attenzione che la data '2015-02-27' indica la data di partenza su cui fare l'analisi
Quindi lo snippet tra tutti i clienti esistenti estrae solo quelli che hanno NON ordinato dopo la data '2015-02-27'
Spero possa esservi di aiuto e se avete necessità contattatemi

BrowserSync o LiveReload?

Sviluppando in AngularJs on anche mettendo in piedi un semplicissima pagina statica, è utile vedere in realtime il risultato dell'editing
Utilizzando un edito come Atom o SublimeText è possibile solo se si attiva un sistema che controlla la modifica dei file del progetto e che fa un aggiornamento automatico della pagina
A questo riguardo c'è un progetto LiveReload che può aiutare
Ma preferisco parlarvi di BrowserSync
BrowserSync makes your tweaking and testing faster by synchronising file changes and interactions across multiple devices. It’s wicked-fast and totally free Installazione L'installazione è veloce e semplice utilizzando npm npm install -g browser-sync finito... Come funziona E' necessario lanciare un ascoltatore, alla fine è un server, che controlla la modifica dei file. Per i files statici, in questo caso CSS:
browser-sync start --server --files "css/*.css" Ma è possibile anche puntare ad un progetto web: browser-sync start --proxy "myproject.de…

Inflate view android

Cosa vuol dire?
Semplice... Creare una una view da un xml.
Supponi di avere la tua activity. Legata all'activity di solito c'è una botte di default.
Sono di voler inserire un oggetto  di un'altra view all'interno della view dell'activity. Come fare?
Utilizzare l'inflate.
L'inflate permette di istanziare una view da un file xml.
Infatti l'inflate restituisce un oggetto view.
In rete è possibile trovare molti esempi di codice.

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Aggironamento PrestaShop e Magento: trasferimento files server to server

Come trasferire PrestaShop server to server? e perchè?L'aggiornamento di PrestaShop è un'attività tecnica che richiede attenzione per non perdere i dati. Per questo ho l'abitudine di fare un clone sul mio server dell'e-commerce del cliente e poi aggiornarlo e poi ripristinare l'e-commerce aggiornato. Ma l'attività di creazione clone prevede lo scarico dei file, che con immagini e altro sono veramente tanti. Avendo un server personale di solito faccio scaricare direttamente dal server i files senza scaricarli in locale passando da FileZilla Lo stesso vale per il caricamento. Quindi il processo è: mi connetto via ssh (terminale) al mio serverdal server mi connetto via ftp all'hosting del clientescarico i files direttamente sul serveraggiorno dal server mi connetto via ftp all'hosting del clientecarico i file sull'hosting del clientecompleto le ultime operazioni sull'e-commerce del cliente Questa procedura ha il vantaggio di fare un backup preventi…