Uccio.org

Abbonamento a feed Uccio.org
Aggiornato: 3 settimane 2 giorni fa

How-To Solr Core per Drupal

Ven, 08/08/2014 - 16:02

Il seguente HowTo parte dalla precedente guida How-To installare Solr su Ubuntu 14.04 e quindi daremo per scontato che l'installazione di Solr sia avvenuta con successo.
Per utilizzare Solr con Drupal 7 è necessario configurare un core affinchè la configurazione dell'indice sia compatibile con i dati forniti da drupal.
Per creare un core per il nostro Drupal possiamo clonare il template base dell'esempio precedente e quindi fare così:

Creiamo un nuovo core
  1. /etc/init.d/jetty stop
  2. cd /opt/solr/solr
  3. cp -R  template_base/ template_D7
  4. echo "name=template_D7" > template_D7/core.properties
  5. chown solr:solr template_D7/ -R
Configuriamo il core per Drupal

Ora che abbiamo un indice per Drupal non ci resta che configurarlo per le esigenze specifiche di Drupal.

  1. cd /tmp
  2. wget http://ftp.drupal.org/files/projects/apachesolr-7.x-1.6.tar.gz
  3. tar -xvf apachesolr-7.x-1.6.tar.gz
  4. cp apachesolr/solr-conf/solr-4.x/*.* /opt/solr/solr/template_D7/conf/ -R
  5. cd /opt/solr/solr/template_D7/conf/
  6. wget https://drupal.org/files/search_api_4.5.patch
  7. patch solrconfig.xml < search_api_4.5.patch
  8. chown solr:solr template_D7/ -R
  9. /etc/init.d/jetty stop

Il file di configurazione fornito con il modulo per Drupal apachesolr-7.x-1.6 ha un problema con Solr dalla 4.5 e pertanto necessita dell'applicazione di una piccola patch.
Ora che abbiamo un indice non ci resta che usarlo a nostro piacimento inserendo lo stesso nome del "core" nella GUI di Solr ed il gioco è fatto!.

Tags: Drupal, Drupal 7, Solr

How-To Solr Core per Drupal

Ven, 08/08/2014 - 16:02

Il seguente HowTo parte dalla precedente guida How-To installare Solr su Ubuntu 14.04 e quindi daremo per scontato che l'installazione di Solr sia avvenuta con successo.

Per utilizzare Solr con Drupal 7 è necessario configurare un core affinchè la configurazione dell'indice sia compatibile con i dati forniti da drupal.
Per creare un core per il nostro Drupal possiamo clonare il template base dell'esempio precedente e quindi fare così:

Creiamo un nuovo core


etc/init.d/jetty stop

leggi tutto

Drupal Services 3 - XML-RPC Session Autentication con Zend Framework

Mer, 23/01/2013 - 17:36

Questo piccolo esempio cerca di riassumere cosa deve fare un client XML-RPC per sfruttare le risorse esposte da un server XML-RPC creato con Services 3.x .
Il server in questione richiede l'autenticazione della sessione come metodo di accesso, pertanto il client dovrà effettuare un login con un utente di Drupal e poi sfruttare la sessione autenticata per utilizzare le risorse.
Il client per semplicità è stato creato utilizzando Zend Framework.

  1. /*
  2.  * This example is based on the XML-RPC client library
  3.  * included in the Zend Framework
  4.  */
  5.   require_once 'Zend/XmlRpc/Client.php';
  6.   require_once('Zend/Http/Client.php');
  7.   header('Content-type: text/plain');
  8.  
  9.   //Setup
  10.   $username = 'user';
  11.   $password = 'password';
  12.   $url = 'http://127.0.0.1/endpointxmlrpc';
  13.  
  14.   //Create client
  15.   $client = new Zend_XmlRpc_Client($url);
  16.   $http_client = new Zend_Http_Client();
  17.   $http_client->setCookieJar();
  18.   $client->setHttpClient($http_client);
  19.  
  20.   //Start execution
  21.   echo "Server: $url\n";
  22.  
  23.         // Get Anonymous Session
  24.         echo "Connect: ";
  25.         try {
  26.                 $result = $client->call('system.connect');
  27.     echo "OK\n";
  28.   }
  29.   catch (Exception $e) {
  30.                 var_dump($e);
  31.         }
  32.  
  33.   // Do Login to create an authenticate sessionid
  34.         echo "Login: ";
  35.         try {
  36.                 $result = $client->call('user.login',array($username, $password));
  37.     echo "OK\n";
  38.     echo "User Details:\n---------\n";
  39.     var_dump($result);
  40.     echo "\n---------\n";
  41.   }
  42.   catch (Exception $e) {
  43.                 var_dump($e);
  44.         }
  45.  
  46.   //Logout
  47.         echo "Logout: ";
  48.         try {
  49.                 $result = $client->call('user.logout');
  50.     echo "OK\n";
  51.         }
  52.   catch (Exception $e) {
  53.                 var_dump($e);
  54.         }
  55.   echo 'End';
Tags: Drupal, Drupal Services 3, XML-RPC, Zend Framework

Drupal Services 3 - XML-RPC Session Autentication con Zend Framework

Mer, 23/01/2013 - 17:36

Questo piccolo esempio cerca di riassumere cosa deve fare un client XML-RPC per sfruttare le risorse esposte da un server XML-RPC creato con Services 3.x .
Il server in questione richiede l'autenticazione della sessione come metodo di accesso, pertanto il client dovrà effettuare un login con un utente di Drupal e poi sfruttare la sessione autenticata per utilizzare le risorse.
Il client per semplicità è stato creato utilizzando Zend Framework.

leggi tutto

Upload progress

Mar, 04/09/2012 - 16:44

La libreria UploadProgress è una simpatica libreria che consente all'utente finale di poter visualizzare lo stato di caricamento (upload) di file verso il server.
La libreria è consiglaita per i server che ospitano installazioni di drupal (ma non solo) e di fatto il nostro CMS preferito ci ricorda di intallarla.

Per installarla ci sono 2 strade alternavive che come sempre sono da pacchetti (non è un vero pacchetto) e da sorgenti

Metodo A Consigliato (PECL)
  1. apt-get install make
  2. apt-get install php5-dev
  3. apt-get install php-pear
  4. pecl install uploadprogress
  5. echo extension=uploadprogress.so >  /etc/php5/conf.d/uploadprogress.ini
  6. /etc/init.d/apache2 restart
Metodo B (da Sorgente)
  1. wget "http://pecl.php.net/get/uploadprogress"
  2. tar xf uploadprogress
  3. cd uploadprogress-1.0.X.X/
  4. phpize
  5. ./configure
  6. make install
  7. echo extension=uploadprogress.so >  /etc/php5/conf.d/uploadprogress.ini
  8. /etc/init.d/apache2 restart
Tags: Debian, Drupal, PHP, Ubuntu

Upload progress

Mar, 04/09/2012 - 16:44

La libreria UploadProgress è una simpatica libreria che consente all'utente finale di poter visualizzare lo stato di caricamento (upload) di file verso il server.
La libreria è consiglaita per i server che ospitano installazioni di drupal (ma non solo) e di fatto il nostro CMS preferito ci ricorda di intallarla.

Per installarla ci sono 2 strade alternavive che come sempre sono da pacchetti (non è un vero pacchetto) e da sorgenti

Metodo A Consigliato (PECL)


apt-get install make
apt-get install php5-dev
apt-get install php-pear
pecl install uploadprogress

leggi tutto

Netbeans: Drupal Coding Standards - lo stile non è acqua!

Ven, 17/08/2012 - 15:06

Al giorno d'oggi lo sviluppatore non ha più semplici editor di testo ma ben più complessi ecosistemi che lo aiutano a scrivere codice, ed è innegabile che alcune funzionalità siano estremamente comode.
Chi scrive codice per Drupal sa che gli sviluppatori di DO (drupal.org) sono molto attenti a come il codice è scritto; e già solo la sua formattazione è soggetta a numerose regole (http://drupal.org/coding-standards/) da rispettare.
Utilizzando netbeans è possibile configurare lo stile del codice secondo i dettami di DO e lasciar fare la formattazione direttamente all'IDE, la guida su come configurarlo la travate su http://drupal.org/node/1019816
Come accennato prima i moderni IDE sono strumenti potenti e Netbeans ci dimostra che azioni ripetitive e noiose come la sua configurazione possono essere "fatte" semplicemente importanto la configurazione necessaria, quindi qui sotto ecco il file di configurazione dei drupal coding standard già pronto.

DOWNLOAD NETBEANS DRUPAL CODING STANDARD


Bene!! ora che abbiamo visto che è facile e veloce nasce la domanda:

Perchè dovrei formattere il codice alla DO
  • Perchè si formatta da solo ed il tuo codice diventa più leggibile
  • Perchè uno standard per la formattazione aiuta te e gli altri
  • Perchè non sei un artista ed il bel codice è leggibile
  • Prova a chiedere ai tuoi colleghi cosa ne pensano del tuo codice!
drupal_code_style.zipTags: Drupal, Netbeans

Netbeans: Drupal Coding Standards - lo stile non è acqua!

Ven, 17/08/2012 - 15:06

Al giorno d'oggi lo sviluppatore non ha più semplici editor di testo ma ben più complessi ecosistemi che lo aiutano a scrivere codice, ed è innegabile che alcune funzionalità siano estremamente comode.
Chi scrive codice per Drupal sa che gli sviluppatori di DO (drupal.org) sono molto attenti a come il codice è scritto; e già solo la sua formattazione è soggetta a numerose regole (http://drupal.org/coding-standards/) da rispettare.

leggi tutto

Dries parla di Drupal 8

Mer, 24/08/2011 - 12:38

Che figo!

Tags: Drupal, Drupalcon, Drupal 8

Dries parla di Drupal 8

Mer, 24/08/2011 - 12:38

Che figo!

Le sessioni secondo Drupal

Lun, 13/12/2010 - 15:26

Drupal per tenere traccia delle sessioni degl utenti salva le informazioni relative ai navigatori all'interno del suo database, infatti tutti dati relativi alle sessioni vengono salvate in una tabella chimata 'session'.
Il sistema reagisce all'ingesso di un visitatore sul sito creando una nuova riga nella tabella session. La riga creata inizialmente viene generata per l'utente anonimo (UID = 0) nel momento che l'utente effettua un login la riga verrà contrassegnata con l'UID dell'utente.
Ogni navigatore che accede al nostro sito Drupal lascia quindi una traccia all'interno della nostra tabella 'session' e pertanto periodicamente il sistema deve provvedere a pulire la tabella dei dati non piu necessari altrimenti la tabella crescerebbe all'infinito con le naturali conseguenze che questo comporta.
Per default all'interno del nostro setting.php del nostro sito Drupal troviamo:

  1. ini_set('session.cookie_lifetime',  2000000); // Circa 23 Giorni

La riga sopra configura il "Garbage Collector" (lo spazzino) di PHP a pulire le sessioni piu vecchie di 23 giorni. La pulizia viene fatta direttamente dal GC che dovrebbe essere attivo ma spesso alcune distribuzioni (es Debian, Ubuntu) o alcuni hoster (Unbit) configurano il GC come spento e pertanto il povero spazzino non è autorizzato a svuotare la tabella session e questa continua a riempirsi crescendo di fatto all'infinito.
Le righe qui sotto se aggiunte al setting.php servono ad attivare il GC nel caso la nostra istanza di PHP abbia la sfortuna di avere il GC spento.

  1. ini_set('session.gc_probability', 1); // Probabilta che il GC parta
  2. ini_set('session.gc_divisor', 100); // Il divisore della probabilità

L'attivazione del Garbage Collector di PHP come in altri linguaggi non è deterministica ed infatti le direttive sopra configurano la probabilità che il GC si attivi e faccia pulizia. Nello specifico i due parametri sopra impostano l'attivazione del GC con una probabilità di 1/100 all'attivazione di una nuova sessione.

Questa soluzione di default in Drupal si basa direttamente su primitive PHP ma se per motivi vari non possiamo utilizzarla( o non ci è concessa) ci sono svariate maniere per tenere sotto controllo la dimensione della taballa session.

Alternativa 1

Una prima soluzione semplice al problema è installare il modulo session_expire

Alternativa 2

Una seconda soluzione è lasciar fare al db la pulizia!!

  1. CREATE EVENT event_db1_session_clean
  2. ON SCHEDULE EVERY 1 DAY                  
  3. DO
  4. DELETE FROM db1.sessions WHERE timestamp <   UNIX_TIMESTAMP( ADDDATE( NOW( ) , INTERVAL -10 DAY ) )

Il pezzo di SQL (per MySql) di sopra crea un evento(è l'equivalente del cron di linux) che quando sarà ora eseguirà la query di pulizia della tabella, con questa soluzione la tabella tutti i giorni verrà pulita direttamente dal motore di MySql.

Alternativa 3

Una terza soluzione è uno script di 5 righe nel cron

Quando l'alternativa diventa miglioria

Come abbiamo visto sopra ci sono svariati modi di tenere sotto controllo la tabella session ma nel caso di un sito molto trafficato la soluzione di default potrebbe non essere "geniale" perchè la pulizia avviene svariate volte al giorno in momenti non predicibili stressando ulteriormente il server web del sito. Le soluzioni alternative essendo predicibili (soprattutto la 2 e la 3) possono in alcuni casi essere considerate soluzioni migliori al problema di "maintenance" della tabella session.

Tags: Drupal, Drupal 6

Le sessioni secondo Drupal

Lun, 13/12/2010 - 15:26

Drupal per tenere traccia delle sessioni degl utenti salva le informazioni relative ai navigatori all'interno del suo database, infatti tutti dati relativi alle sessioni vengono salvate in una tabella chimata 'session'.
Il sistema reagisce all'ingesso di un visitatore sul sito creando una nuova riga nella tabella session. La riga creata inizialmente viene generata per l'utente anonimo (UID = 0) nel momento che l'utente effettua un login la riga verrà contrassegnata con l'UID dell'utente.

leggi tutto

DrupalCamp 2010

Lun, 13/09/2010 - 16:56

Il 2 ottobre 2010, per secondo anno consecutivo, si svolgerà l'evento italiano su Drupal aperto a tutti coloro che vogliono conoscere meglio il magico mondo della "goccia".
L'evento è completamente gratuito e si svolgerà presso i locali della cascina roccafranca di Torino.

Quest'evento è il primo organizzato ufficilmente dall' associazione drupal italia nata con il preciso intento di aiutare la diffusione di drupal sul territorio italiano.

Tags: Drupal, Drupal Comunity, DrupalCamp

DrupalCamp 2010

Lun, 13/09/2010 - 16:56

Il 2 ottobre 2010, per secondo anno consecutivo, si svolgerà l'evento italiano su Drupal aperto a tutti coloro che vogliono conoscere meglio il magico mondo della "goccia".
L'evento è completamente gratuito e si svolgerà presso i locali della cascina roccafranca di Torino.

Quest'evento è il primo organizzato ufficilmente dall' associazione drupal italia nata con il preciso intento di aiutare la diffusione di drupal sul territorio italiano.

leggi tutto

In partenza per la drupalCON

Dom, 22/08/2010 - 12:13

Che dire,

sono in partenza per l'attesissima Drupalcon di Copenhagen, è la prima volta che partecipo ad un evento "maggiore" di drupal e sono contento di partire.

Per chi è gia la ... STO ARRIVANDO!

Tags: Drupal, Drupal Comunity, Drupalcon

In partenza per la drupalCON

Dom, 22/08/2010 - 12:13

Che dire,

sono in partenza per l'attesissima Drupalcon di Copenhagen, è la prima volta che partecipo ad un evento "maggiore" di drupal e sono contento di partire.

Per chi è gia la ... STO ARRIVANDO!

Drupal Gardens Beta

Gio, 25/03/2010 - 00:44
[inline:drupal-gardens.PNG=Drupal Gardens]

Il 2 settembre 2009 in occasione della DrupalCon Paris, Dries co-fondatore di Aquia lo aveva annunciato: Acquia per la fine del 2010 renderà diponibili due servizi nuovi per tutti gli amici della della goccia: un hosting professionale con supporto business ed piattaforma Drupal pronta all'uso in stile wordpress.com dove gli utenti potranno usare Drupal senza avere problemi di installazione configurazione e aggiornamento.
Il progetto di una piattaforma Drupal pronta all'uso prende il nome di Drupal Gardens e secondo i piani dovrà diventare l'antagonista di wordpress.com perchè Drupal vuole crescere e quindi ora si punta a diventare popolare concentrandosi sull'usabilità (che non è mai stato un punto di forza) realizzando una piattaforma "intuitiva" per utenti senza skill particolari.
Drupal Garden sicuramente mira ad allargare la base installata dimostrando al tempo stesso che il supporto di aquia è una realtà importante con risorse tecniche e soluzioni innovative.

Da quel 2 settembre di tempo ne è orami passato ed oggi ecco che arrivano i primi inviti a provare la piattafforma Beta.
La piattaforma girovangado tra i canonici report del CMS e le pagine tecniche del progetto risulta essere così composta:

  • Piattaforma virtualizzata con Xen
  • Ubuntu 5.10
  • Apache/2.2.8
  • PHP 5.2.4-2 con 256MB di RAM
  • Drupal 7.0-alpha2
  • Spazio Disco 1, 2, 5 GB a seconda del profilo
  • Banda 50, 100 GB a seconda del profilo
La mia prova

Con il codice Beta che ho ricevuto ieri pomeriggio (direi che sono tra i primi a riceverlo in italia.. woooow) ho provveduto ad affettuare la registrazione di http://uccio.drupalgardens.com e
subito sono rimasto stupefatto dall'interfaccia curata con cui si generano le credenziali e si sceglie il profilo di installazione.
Il sito generato possiede una toolbox in basso che permette di modificare il layout la grafica ed ogni aspetto del sito.
Lo sforzo di dare uno strumento web simile ad "Artister" è veramente incredibile, l'uso di massiccio di Jquery rende l'oggetto veramente interattivo.

In sostanza è veramente una piattaforma che darà molte soddisfazioni ad Aquia!

Qui sotto ecco il corpo del reato realizzato in meno di 5 minuti:

[inline:uccio.drupalgardens.com_.png=uccio.drupalgardens.com]

ed appena possibile aggiungerò qualche altra bella immagine!

Tags: Drupal, Drupal Comunity, Drupal Gardens

Drupal Gardens Beta

Gio, 25/03/2010 - 00:44

Il 2 settembre 2009 in occasione della DrupalCon Paris, Dries co-fondatore di Aquia lo aveva annunciato: Acquia per la fine del 2010 renderà diponibili due servizi nuovi per tutti gli amici della della goccia: un hosting professionale con supporto business ed piattaforma Drupal pronta all'uso in stile wordpress.com dove gli utenti potranno usare Drupal senza avere problemi di installazione configurazione e aggiornamento.

leggi tutto

Devel: il Debug sotto Drupal

Gio, 11/03/2010 - 17:52

Scrivere applicazioni web con Drupal è ormai una realtà ed il CMF guadagna ogni giorno piu consensi sia tra gli sviluppatori, che tra gli utilizzatori.
Drupal come framework di sviluppo tende a nascondere bene cosa avviene al suo interno ed è quindi molto importante conoscere il modulo devel (un modulo non core) che è pensato per gli sviluppatori ed i themer che lavorano con Drupal.
Questa guida è pensata come una panoramica alle funzioni di debugging di Devel che rendono piu agevole lo sviluppo delle nostre applicazioni.

Il modulo Devel

Il modulo devel è cosi composto:

  • Devel

    Questo è il modulo principale oltre a contenere tutte le funzioni di debug che vedremo sotto è la libreria base per i moduli gregari.
    Se configurato opportunamente questo modulo rende disponibile la lista delle query impiegate nella creazione della pagina ed i relativi tempi di esecuzione. Il modulo ci comunica inoltre l'ammontare di memoria RAM impegata ed il tempo di generazione dell'intera pagina.

  • Devel generate

    Questo modulo serve per generare contenuti in maniera automatica, nativamente supporta la creazione di nodi, commenti, voci di tassionomia e utenti. La generazione casuale di contenuti è molto utile per predisporre piattaforme popolose per i test di performance.

  • Devel node access

    Questo modulo aggiunge dei tab e dei blocchi che contengono informazzioni utili al debug dell'acesso ai nodi. Il suo utilizzo tipico è nello sviluppo di moduli di acesso ai contenuti come taxonomy access o nella creazione di nodi custom con politiche di accesso esotiche.

  • Performance Logging

    Questo componente raccoglie le statistiche sul tempo di esecuzione e sull'utilizzo di ram del sito per proporcelo in semplici report.

  • Theme developer

    Il componente è essenziale per chi sviluppa sui temi di drupal perchè indentifica il file responsabile del render di ogni singolo componente della pagina. L'interfaccia di introspezione è un comodo componente javascipt.

Le funzioni dpm($input, $name = NULL)

La funzione stampa il dump della variabile con var_dump nello spazio dei messaggi di drupal. La visualizzazione tramite Krumo agevola le lettura grazie ad una moderna interfaccia Java Sript non intrusiva.
Il secondo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.
La funzione ha un alias come dsm() ma gli sviluppatori pensano che dpm sia meglio.

dvm($input, $name = NULL)


La funzione stampa il dump della variabile con var_dump nello spazio dei messaggi di drupal. La visualizzazione è testuale Il secondo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.

dpr($input, $return = FALSE, $name = NULL)


La funzione stampa il dump con la funzione php print_r e mette l'output nella pagina, è utile se il tuo tema non stampa a video i messaggi.
Il secondo parametro è utile se si vuole catturare il messaggio invece di mandarlo direttamente in stampa.
Il terzo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.
La funzione stampa output solo se l'utente ha i privilegi necessari, quindi è possibile utilizzarla anche in ambienti in produzione (con le dovute cautele).

dvr($input, $return = FALSE, $name = NULL)


La funzione stampa il dump con la funzione php var_dump e mette l'output nella pagina, è utile se il tuo tema non stampa a video i messaggi.
Il secondo parametro è utile se si vuole catturare il messaggio invece di mandarlo direttamente in stampa.
Il terzo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.

kpr($input, $return = FALSE, $name = NULL)


La funzione ha le stesse caratteristiche di dvr ma l'output è formattato con Krumo.
La funzione è un alias di kprint_r() che viene definita dagli sviluppatori una funzione contro il diffondersi del tunnel carpale.

dargs()


La funzione ritorna il var_dump dei parametri passati alla funzione di interesse, detto in latre parole serve a capire cosa drupal passa alla funzione in esame.

dd()

La funzione è una alias di drupal_debug() e serve per loggare tutti i cambiamenti di stato di una variable in un file chiamato drupal_debug.txt posto nella directory temp del sito.

ddebug_backtrace()


La funzione ritorna lo stack delle funzioni richiemate.

db_queryd()


La funzione stampa nell'header della pagina la query passata con i relativi parametri completati e mostra l'errore sql ritornato dal server.

Tags: Drupal, Drupal Debugging

Devel: il Debug sotto Drupal

Gio, 11/03/2010 - 17:52

Scrivere applicazioni web con Drupal è ormai una realtà ed il CMF guadagna ogni giorno piu consensi sia tra gli sviluppatori, che tra gli utilizzatori.
Drupal come framework di sviluppo tende a nascondere bene cosa avviene al suo interno ed è quindi molto importante conoscere il modulo devel (un modulo non core) che è pensato per gli sviluppatori ed i themer che lavorano con Drupal.
Questa guida è pensata come una panoramica alle funzioni di debugging di Devel che rendono piu agevole lo sviluppo delle nostre applicazioni.

leggi tutto

Planet Drupal Italia, il raccoglitore di contenuti Drupalici dal web in italiano

Per aggiungere il tuo Feed XML riguardante Drupal, compila il form Planet.

Pagine