Guida di installazione di WkHtmlToPdf su Ubuntu Trusty 64bit (14.04 LTS)

In questi giorni mi sono imbattuto in un problema con il tool WkHtmlToPdf, che veniva utilizzato dal noto ERP Odoo (anche conosciuto come OpenErp) per generare stampe di report e, più in generale, di documenti HTML in formato PDF. Andiamo quindi a vedere come installare correttamente WkHtmlToPdf su Ubuntu Trusty 64bit (14.04 LTS) ed in particolare come installare correttamente le librerie QT (patchate), che consento a WkHtmlToPdf correttamente. La guida che leggerete è stata adattata da questa originale presente su GIST, di cui io ho effettuato un fork che potete trovare qui.

Prima di tutto è fondamentale avere sulla macchina un completo accesso root. Per quanto riguarda Ubuntu quindi, apriamo il terminale (a meno che non siate già collegati sulla vostra macchina server), e digitiamo:

sudo su -

Inseriamo la password dell’utente root e diamo “Invio”. Quindi creamo una cartella di appoggio, e spostiamoci al suo interno:

cd && mkdir wkhtmltopdf-inst && cd wkhtmltopdf-inst

Andiamo quindi ad installare, a meno che non l’abbiamo già fatto, git:

apt-get install git-core

Installazione a cui segue l’installazione delle dipendenze di wkhtmltopdf:

apt-get install openssl build-essential xorg libssl-dev libxrender-dev

Quindi cloniamo il repository di wkhtmltopdf:

git clone git://github.com/antialize/wkhtmltopdf.git wkhtmltopdf

Installiamo quindi le dipendenze di qt per la versione 4.8.4:

apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev

Ed anche questa volta, cloniamo il repository ed effettuiamo il checkout della versione 4.8.4 di qt (eseguite i comandi “uno alla volta”):

git clone https://qt.gitorious.org/qt/antializes-qt.git wkhtmltopdf-qt
cd wkhtmltopdf-qt
git checkout 4.8.4
QTDIR=. ./bin/syncqt

Iniziamo ora con la configurazione preliminare alla compilazione delle librerie qt:

./configure -nomake "tools examples demos docs translations" -opensource -prefix ../wkqt

Quindi ora avviamo la compilazione delle librerie qt. Attenzione, questo processo può durare anche qualche ora su hardware non molto performanti, quindi armatevi di pazienza, sigarette, e tutto quello che può aiutarvi nel ammazzare l’attesa:

make -j3 && make install

Ora siamo pronti, finalmente, per compilare wkhtmltopdf con l’ausilio delle librerie qt appena compilate. Questo processo sarà molto più veloce del precedente:

cd ../wkhtmltopdf && ../wkqt/bin/qmake

Terminiamo il processo di compilazione con:

make && make install

L’installazione è terminata qui. Ora dovreste avere la versione di wkhtmltopdf funzionante e compatible con Odoo (OpenERP). Qualora riscontraste problemi, commentate!

Breve manuale di convivenza tra CSS e Internet Explorer

Che Internet Explorer sia uno dei browser più buggati della storia del world wide web è una cosa nota, meno nota è il suo totale menefreghismo per gli standard W3C. Questo ultimo aspetto, fondamentale nella programmazione web, è causa di malanni psicofisici di ogni programmatore che almeno una volta nella vita ha dovuto lottare con tutte le sue forze per rendere compatibile con Internet Explorer con le proprie direttive.

La mia esperienza con la programmazione web, ed in particolar modo con l’aspetto grafico di un sito o di un applicazione web, mi ha portato spesso a dover trovare soluzioni, spesso folli, per la convivenza di regole css standard con il motore di Internet Explorer, ho così voluto condivedere questi trucchetti, veri e propri hack in alcuni casi, in un brebe manuale di convivenza tra CSS e Internet Explorer. Read more

Favicon su WordPress compatibili con Browser, iOS, Android e Windows Metro

Questa che vi scrivo oggi è una semplicissima guida su come impostare una Favicon su WordPress, compatibile con tutti i browser per pc, segnalibri dei sistemi iOS Apple, Google Android e per la nuova interfaccia di casa Microsoft, Windows Metro.

Cos’è una favicon immagino lo sappiamo tutti, ma con l’avvento di smartphone e tablet iniziano a diventare sempre più importanti e utili. Infatti non tutti sanno che è possibile, programmaticamente, tramite codice, definire favicon specifiche per ogni dispositivo. Per approfondire l’argomento, vi consiglio l’ottimo articolo presente su Wikipedia, in inglese.

Impostare programmaticamente le favicon, per ogni dispositivo, può diventare un lavoro lungo e anche un po’ pesante. Ci viene in aiuto però un, relativamente nuovo, plugin per WordPress: Favicon by RealFaviconGenerator.
Vediamo quindi come fare ad usare questo semplice plugin.

Per prima cosa, ovviamente, il plugin va installato. Andiamo quindi nel backend di wordpress, alla voce “Plugin”, e clicchiamo quindi su “Aggiungi Nuovo”.

Guida Favicon by RealFaviconGenerator: Passo 1

Una volta installato, attiviamolo. Spostiamoci quindi nella sezione “Aspetto”, quindi “Favicon”. A questo punto ci troveremo davanti una schermata simile alla prossima, che vi permetterà di scegliere il file da usare per generare la favicon, direttamente dal Media Manager di wordpress (dal quale potrete anche caricarne una dal vostro hard disk). Non c’è un vero requisito all’icona da usare come base, tuttavia il plugin stesso vi consiglia misure di almeno 260×260, io personalmente consiglio, ove possibile, di utilizzarne una da almeno 512×512. Read more

Rimuovere le notifiche di aggiornamento dalla Dashboard di WordPress

Wp Update Nag

WordPress di default mostra in altro nella dashboad, in caso di aggiornamenti del suo core, dei temi, o dei plugin, un messaggio di notifica.
Questa notifica, la “update nag”, però, viene mostrata non solo all’amministratore, ma a tutti gli utenti loggati.
Ovviamente esiste la possibilità di rimuovere completamente questa funzione, oppure come nel nostro caso, con un semplice if, rimuoverla per tutti (o per una parte) gli utenti, eslcuso gli amministratori.

Come fare? Iniziamo! Andiamo nel functions.php del nostro tema, ed aggiungiamo queste poche righe di codice:

function hide_update_notice() {

    // controlliamo i permessi sull'utente loggato
    if ( !current_user_can('manage_options') ) {
        remove_action('admin_notices',
                        'update_nag', 3 );
    }
}

// richiamiamo la funzione per rimuovere la notifica
add_action('admin_menu','hide_update_notice');

Il risultato dovrebbe essere il il seguente:
Update Nag rimossa per gli utenti non amministratori