Indice del sito

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}

echo Ago 1st 2007 10:51 am drupal No Comments yet Trackback URI Comments RSS

Leave a Reply

You must be logged in to post a comment.