Indice del sito

Archive for the 'drupal' Category

You are currently browsing the archives of echo .

Abilitare i link agli utenti Drupal in Gallery2

Problema: Gallery2 offre un mucchio di funzionalità aggiuntive rispetto al modulo Image di Drupal, ma sta un passo indietro rispetto al collegamento autore/contenuto, dato che i singoli elementi di Gallery2 non sono trattati come nodi di Drupal.

Uno dei problemi maggiori è che, usando il modulo Gallery, non è immediatamente possibile collegare il proprietario di una immagine al corrispettivo utente Drupal. Ecco come risolvere questo problema.

La strada più faticosa non sempre è la più saggia

Come tutte le cose divertenti, ci sono almeno un paio di modi per farlo: il primo è segnalato su http://drupal.org/node/155195, ed implica interrogazioni SQL e la modifica/creazione dei seguenti files:

gallery2/themes/floatrix/theme.inc
gallery2/themes/floatrix/templates/local/photo.tpl
gallery2/modules/core/templates/blocks/ItemInfo.tpl

e regala imprecazioni assortite. Dopo qualche tentativo, ho optato per la soluzione due.

Usare Pathauto

Il modulo Pathauto fa al caso mio (e vostro, se state ancora leggendo). Parto dalla premessa che, usando il modulo Gallery, i nomi utente di Drupal e Gallery2 siano i medesimi. Non gli ID, ma i nomi utente. Se la prima soluzione interrogava la tabella g_externalId per trovare la corrispondenza fra l’id utente di Gallery2 e quello di Drupal, ora uso direttamente il nome utente di Gallery2 per arrivare alla relativa pagina utente su Drupal.

  1. modificare il file gallery2/modules/core/templates/blocks/ItemInfo.tpl come segue
      </div>
      {/if}
    
      {if !empty($showOwner)}
      <div class="owner summary">
        <a href="/?q=user/{$item.owner.userName}">
              {g->text text="di %s" arg1=$item.owner.fullName|default:$item.owner.userName}
        </a>
      </div>
      {/if}
    
      {if !empty($showSize) && $item.canContainChildren && $item.childCount > 0}
    

    Ho semplicemente aggiunto il link a /?q=user/{$item.owner.userName}, dove $item.owner.userName è il nome dell’utente Gallery2.

    In tutte le pagine di Album e Foto, ora comparirà il link all’utente Drupal, che però va ancora abilitato.

  2. Scaricate ed installate il modulo Pathauto all’indirizzo http://drupal.org/project/pathauto.
  3. Dal pannello di amministrazione admin/settings/pathauto, impostate come preferite il pattern per gli alias (in questo caso user/[user])
  4. Selezionate Bulk update user paths per generare un alias per ogni utente Drupal già iscritto. I successivi verranno aggiunti automaticamente.
  5. Dopo aver premuto Salva configurazione, i link fra Gallery2 e Drupal saranno consistenti.

Blocchi immagine

Per i blocchi immagine, si segue la stessa procedura indicata sopra sul file
gallery2/modules/imageblock/templates/local/ImageBlock.tpl

es.

      {if isset($ImageBlockData.show.owner)}
      <span class="summary">
         di  <a href="/?q=user/{$block.owner.userName}">
           {g->text text="%s" arg1=$block.owner.fullName|default:$block.owner.userName}</a>
      </span>
      {/if}

Posted by echo on Ago 1st 2007 | Filed in drupal | Commenti (0)

alcuni trucchetti per Drupal e Gallery2

Come aggiungere le keywords quando si aggiunge un nuovo elemento in Galery2?

Ho inviato una patch nella discussione

http://gallery.menalto.com/node/53541#comment-243821

che si limita a riassumere velocemente quanto già detto da chi è intervenuto lì.

Seguiranno altri howto.

Posted by echo on Lug 25th 2007 | Filed in drupal | Commenti (0)

Spam & co.

Esiste un modulo per Drupal all’indirizzo
http://drupal.org/node/30501

che permette l’uso del filtro antispam Bad Behaviour, che si propone come alternativa (o mal che vada complemento) ai Captcha (le stringhe di caratteri storpiati da inserire quando si scrive un commento) che infastidiscono gli umani.

Purtroppo il modulo Drupal non è ancora stato aggiornato alla versione 5, ma qui su Wordpress lo sto provando e devo dire che sembra funzionare bene, ottengo meno commenti spam in coda di moderazione rispetto a prima, anche se ora ho lasciato la libertà anche agli anonimi di inserire commenti.

Un altro tipo di soluzione antispam che non ho mai provato è il list poisoning: Spam Poison è un esempio e si presenta così:


Il primo è un link alla versione italiana, l’altra a quella hip hop. :-D Una sorta di difesa attiva.

Posted by echo on Giu 22nd 2007 | Filed in computer, drupal | Commenti (0)

Far funzionare Embed Filter

Ecco alcuni consigli su come abilitare Embed Filter in una installazione Drupal 5.x.

  1. Innanzitutto, la versione 2007-May-21 ha un baco segnalato all’indirizzo http://drupal.org/node/102876.

    Dopo aver spacchettato il modulo (e prima di averlo abilitato in Administer > Modules) basta modificare alla linea

          // 3 part arrays are single, closed tags: 
          else if (count($input) == 3) {
            $output .= ‘/>’;
          }
    

    $output .= '/>'; con $output .= '>';

  2. In questo modo non verrà “rotto” il tag object: basta guardare il codice HTML, dove prima veniva spezzato prima dell’embed e sballava la visualizzazione.

  3. Fatto questo, andate in Administer > Input formats, e selezionate configure da Filtered HTML
  4. Abilitate Object and embed tag filter e guardate che sia abilitato anche l’HTML filter.
  5. Andate nella scheda configure e aggiungete ad Allowed HTML tags i seguenti tag:
     <object> <script> <embed> <param> <br> <hr> <p>
     

    I tag di formattazione servono semplicemente a fare in modo che gli oggetti siano correttamente impaginati.

    Object, script e compagnia servono invece a far passare i tag all’Embed Filter, che poi li filtrerà a sua volta. Per far sì che prima venga eseguito l’HTML filter e poi l’Embed Filter bisogna…

  6. …andare alla scheda Rearrange e assegnare all’Embed filter un numero appena inferiore all’HTML filter.
  7. Selezionate Save configuration. A questo punto il filtro è operativo, e potete inserire oggetti esterni come i filmati di YouTube. Per impostare la whitelist dei siti affidabili andate su Administer > Embed filter

Posted by echo on Giu 6th 2007 | Filed in drupal | Commenti (0)