Aggregatore di feed

How-To Solr Core per Drupal

Uccio.org - 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

Uccio.org - 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

Uccio.org - 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

Uccio.org - 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

Uccio.org - 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

Uccio.org - 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!

Uccio.org - 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!

Uccio.org - 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

Uccio.org - Mer, 24/08/2011 - 12:38

Che figo!

Tags: Drupal, Drupalcon, Drupal 8

Dries parla di Drupal 8

Uccio.org - Mer, 24/08/2011 - 12:38

Che figo!

VIews styler

Mavimo.org - Mer, 22/06/2011 - 23:00

Precedentemente avevo scritto una patch per views che pemetteva di andare ad indicare delle classi specifiche alle singole righe delle views. Considerato che modificare il codice di un modulo lo considero una delle cose più pericolose nonché sbagliate, e in considerazione del fatto dell'enorme modularità raggiunta da Drupal 7 con le funzioni di autoloading, ho deciso di separare la patch creando un modulo apposito. Attualmente questo modulo si trova in una sandbox, vediamo come ottenerlo e come usarlo (e perché!).

L'installazione

leggi tutto

Views 3 e Grid system (patch)

Mavimo.org - Mar, 14/06/2011 - 17:49

Ultimamente, lavorando con Omega in diversi siti, mi è capitato di dover fare un pò di "magie" per riuscire ad ottenere il risultato desiderato. Il problema principale che ho riscontrato è che le views permettono di aggiungere classi ai singoli field, al wrapper della vista stessa, o una classe uguale per tutti le righe, ma non permette di inserire classi personalizzate per ogni riga. Questo, nelal versione per Drupal 6 e views 2, era risolvibile ricorrendo a Semantic Views, ma per Views 3 non abbiamo ancora uno strumento che ci permette di fare quanto richiesto. Per risolvere questo problema ho scritto una piccola patch (attenzione, non mi assumo responsabilità in merito :) ) che permette di definire per ogni singola riga, o per righe particolari (prima/ultima, pari/dispari) delle classi specifiche. Vediamo come applicare questa patch e come funziona.

leggi tutto

Omega 3, aggiungiamo le nostre griglie

Mavimo.org - Lun, 13/06/2011 - 22:55

Chi avesse iniziato ad utilizzare Drupal 7 si sarà senz'altro d'accordo che stanno nascendo dei temi di partenza molto sofisticati da cui partire per la realizzazione di temi, in particolare sta emergendo sempre più Omega 3.

Questi temi, però possono avere necessità di essere estesi per aggiungere nuove funzonalità, in particolare potremmo avere necessità di usare una griglia differente da quelle che queesto tema di partenza ci mette a disposizione; vediamo quindi come aggiungere una griglia customizzata nel nostro sottotema di Omega 3.

leggi tutto

Le sessioni secondo Drupal

Uccio.org - 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

Uccio.org - 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

Migrare dati a Drupal

Mavimo.org - Ven, 26/11/2010 - 10:26

Nella realizzazione di portali o nella fase di migrazione da una piattaforma ad un altra spesso di riscontra la necessità di effettuare l'inserimento / trasferimento di dati. Fino a che le informazioni sono limitate è conveniente effettuare ua migrazione manuale, permettendo di trasferire le inforazioni in maniera pulita ed eventualmente procedendo ad effettuare tutte le modfiche di markup e struttura necessarie; ma cosa succede se le quantità di informazioni da trasferire sono in numero tale da non consentirci di procedere in maniera manuale?
Analizzeremo ora alcuni tool e tecniche che possono essere utilizzati per migrare grandi quantitativi di dati da una piattaforma X a Drupal, vedendo successivamente come estendere queste funzionalità per poter effettuare operazioni personalizzate sulla propria base dati.

leggi tutto

Drupal e image optimizer

Mavimo.org - Dom, 24/10/2010 - 19:25

Se vi capita di utilizzare YSlow o PageSpeed per analizzare le performance del vostro front end, può capitare di vedere una voce che vi indica che le vostre immagini non sono ottimizzate. Cosa vuol dire, ma sopratutto, come possiamo ottimizzarle per ottenere dei risultati migliori? Questo è quello di cui parleremo ora, in particolare vedremo come integrare queste ottimizzazioni in Drupal.

leggi tutto

DrupalCamp 2010

Uccio.org - 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

Uccio.org - 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

Uccio.org - 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
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

Abbonamento a Drupal Italia aggregatore