ImageCache anche nei commenti!

 

Uno dei moduli più potenti per la gestione delle immagini che possiamo utilizzare con Drupal è sicuramente ImageCache (ormai giunto alla release 2.1), a cui si aggiunge l'ottimo ImageCache Actions che ci permette di aggiungere funzionalità a questo. Vediamo come usare questi strumenti per modificare gli avatar dell'utente all'interno dei commenti.

Le funzionalità di ImageCache sono molteplici e vanno dal semplici rescaling dell'immagine, alla possibilità di virarne il colore, ruotare l'immagine, modificarne la luminosità, la possibilità di imprimere sopra l'immagine delle altre immagini e così via;

Questo strumento, però, non permette la modifica diretta degli avatar degli utenti, per permettere questo vi sono diverse possibilità, una di queste è quella di utilizzare il modulo ImageCache Profiles, che però modifica tutte le visualizzazioni degli avatar nel sito, ovunque queste si trovino, siano nell'articolo, piuttosto ceh nel commento, piuttosto che da altre parti. Questo è alquanto scomodo, pertanto vediamo di aggirare questo problema (anche senza utilizzare il modulo sopra citato).

Iniziamo creando un preset per l'immagine dell'avatar del nostro utente che dovrà essere presente nei commenti. Nel mo caso ho chiamato, con ben poca fantasia, il preset user_avatar_comment. Per questo ho impostato tutte le operazioni necessarie, dal rescaling alla sovrapposizione di altre immagini, per ottenere l'immagine che desideravo.

Fatto questo è sufficiente aprire il file template.php del tema in uso, e scrivere all'interno il seguente codice

<?php
function nometema_comment($comment, $links = 0) {
  return
_phptemplate_callback('comment', array(
   
'author'    => theme('username', $comment),
   
'comment'   => $comment,
   
'content'   => $comment->comment,
   
'date'      => format_date($comment->timestamp),
   
'links'     => isset($links) ? theme('links', $links) : '',
   
'new'       => $comment->new ? t('new') : '',
   
'picture'   => theme_get_setting('toggle_comment_user_picture') ? theme('user_comment_picture', $comment) : '',
   
'submitted' => t('Submitted by !a on @b.',
                      array(
'!a' => theme('username', $comment),
                           
'@b' => format_date($comment->timestamp))),
   
'title'     => l($comment->subject, $_GET['q'], NULL, NULL, "comment-$comment->cid")
  ));
}
?>

dove dobbiamo sostituire nometema nel nome della funzione con il nome del tema che stiamo utilizzando.

Inseriamo poi il seguente codice

<?php
function theme_user_comment_picture($account) {
  if (
variable_get('user_pictures', 0)) {
    if (
$account->picture && file_exists($account->picture)) {
     
$picture = $account->picture;
    }
    else if (
variable_get('user_picture_default', '')) {
     
$picture = variable_get('user_picture_default', '');
    }
    if (isset(
$picture)) {
     
$preset = 'user_avatar_comment';
     
$alt = t("@user's picture", array('@user' => $account->name ? $account->name : variable_get('anonymous', t('Anonymous'))));
     
$picture = theme('imagecache', $preset, $picture, $alt, $alt, array());
      if (!empty(
$account->uid)) {
       
$picture = l($picture, "user/$account->uid", array('title' => t('View user page.')), NULL, NULL, FALSE, TRUE);
      }
      return
"<div class=\"comment-picture\">$picture</div>";
    }
  }
}
?>

dove all'interno della variabile $preset sostituiremo il nome presente con quello del preset che abbiamo precedentemente creato.

Fatto questo tutto funzionerà a dovere, nel caso l'immagine non si visualizzi controllate di avere abilitato l'avatar degli utenti nel commento e che nel file comment.tpl.php sia presente da qualche parte la scritta

<?php
print $picture
?>

Ed ora bizzarritevi a modificare gli avatar nei commenti dei vostri utenti!

Altri contenuti che potrebbero interessarti

  • Drupal si occupa esclusivamente della validazione lato server delle informazioni, ma spesso è consigliabile prevedere ad una prima validazione dei dati inseriti dall'utente lato client, in modo da evitare l'invio della richiesta limitando quindi le possibilità di errore. Ovviamente la validazione...
  • Esempio di vista generata dall'integrazione del nostro modulo con views
    Alzi la mano chi non ha mai usato views. Alzi la mano che l'ha mai usato. Ok, non proprio tutti ma buona parte di voi ha alzato la mano, questo perchè è sicuramente uno strumento potentissimo per la visualizzazione delle informazioni, quindi è fondamentale (o comunque molto utile) andare ad...
  • Pagina di ricerca con filtri dinamici nelle views
    Le viste sono uno strumento estremamente potente e permettono di andare ad elaborare le informazioni creando degli elementi (pagine, blocchi, ...) di presentazione. La possibilità di usare dei filtri esposti ne fa degli strumenti adatti alla creazione di strumenti di ricerca dei contenuti. L'...
  • 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...

Commenti

Invia nuovo commento





  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h2> <h3> <h4> <table> <thead> <tbody> <tr> <th> <td>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.



Condividi contenuti