You Tube channel block

Un altro piccolo contributo alla comunità Drupal per avere un blocco con gli ultimi video inseriti in un canale YouTube.

Questo piccolo modulo permette la creazione di un blocco contenente gli ultimi video pubblicati in un determinato canale YouTube.

A differenza di altri moduli simili, "You Tube channel block" lavora principalmente lato client creando la lista dei video solo dopo il caricamento della pagina, in questo modo il tempo per visualizzare il resto della pagina web non subirà rallentamenti dipendenti dalla comunicazione con i server di YouTube.

Configurazione

La configurazione del modulo è estremamente semplice, basta visitare la pagina "admin/config/ds_ytchannel/config" della propria installazione, è specificare il nome utente che appare nell'url YouTube del canale desiderato.
E' anche possibile indicare il numero massimo di video visualizzabili nel blocco.


Aspetto

Il "theming" del blocco non avviente tramite i classici files .tpl.php di Drupal ma sfruttando le funzioni di theming lato Javascript.
Per modificare il codice HTML del blocco sarà necessario creare uno script Javascript nel proprio tema simile a quello dell'esempio seguente.

(function($) {
/**
 * Proprietà disponibili:
 * row.uri: Link al video
 * row.thumb: Thumbnail del video
 * row.title: Titolo del video
 * row.submitted vedi [[Drupal.theme.ytChannelAuthor()]]: Dati relativi all'autore e la data di pubblicazione
 * row.description: Descrizione del video
 */
  Drupal.theme.ytChannelRow = function(row) {
    var $out = '<div class="ytc-wrapper">';
    $out += '<div class="ytc-img">';
    $out += '<a href="' + row.uri + '" target="_blank"><img src="' + row.thumb + '"/></a>';
    $out += '</div>';
    $out += '<div class="ytc-info">';
    $out += '<h4><a href="' + row.uri + '" target="_blank">' + row.title + '</a></h4>';
    $out += '<div class="ytc-author">' + Drupal.theme('ytChannelAuthor', row.submitted) + '</div>';
    $out += '<div class="ytc-desc"><p>' + row.description + '</p></div>';
    $out += '</div>';
    $out += '</div>';

    return $out;
  };

  /**
   * Proprietà disponibili:
   * submitted.uri: Link all'autore del video
   * submitted.name: Nome dell'autore del video
   * submitted.date: Data di pubblicazione del video
   * submitted.hits: Numero di visualizzazioni del video
   */
  Drupal.theme.ytChannelAuthor = function(submitted) {
    var date = new Date(submitted.date);
    var $out = 'di <a href="' + submitted.uri + '" target="_blank">' + submitted.name + '</a>';
    $out += ' - <span class="yt-date">' + date.getDay() + '/' + date.getMonth() + '/' + date.getFullYear() + '</span>';
    if (submitted.hits > 0)
      $out += '<span class="yt-hits">' + submitted.hits + ' hits</span>';

    return $out;
  };
})(jQuery);