Come far puntare i $terms (links) di un nodo ai contenuti del solo autore (user ID)

tags: Drupal   php snippets  
drupal tags: categories   users  

Come utilizzare i link dei termini ($terms) associati a ciascun nodo di Drupal per navigare altri contenuti dello stesso autore taggati con lo stesso termine?

Il codice di seguito permette di far puntare i termini di un nodo ad una view personalizzata (che chiameremo "blogterms") contenente due argomenti: lo user id dell'autore e il term id.

Per esempio, considerando l'URL: "blogterms/24/8":

  • blogterms è l'URL di base della view
  • 24 sarà il term id (taxonomy)
  • 6 sarà lo user id dell'autore

Per ottenere questo risultato, sarà necessario inserire il seguente codice php nel template del content type interessato (es: node-blog.tpl.php)

<?php if ($terms) {

if (
arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2))) {
$result = db_query('SELECT uid FROM {node} WHERE nid = %d ORDER BY uid DESC', arg(1));
// search node author in full view mode
$user = db_fetch_object($result);
$uid = $user->uid;
$nid = (int)arg(1);
} else {
$result = db_query('SELECT uid FROM {node} WHERE nid = %d ORDER BY uid DESC', $node->nid);
// search node author when you are in the blog home (/blog/6)
$user = db_fetch_object($result);
$uid = $user->uid;
$nid = $node->nid;
}
}
 
$terms = taxonomy_node_get_terms($nid);
 
$output = "<ul>";
  foreach(
$terms as $term){
$output .= "<li><a href=\"/blogterms/" .$term->tid . "/" .$uid . "\">$term->name</a></li>";
  }
 
$output .= "</ul>";
  print
t('Tags:').$output;
?>

Chiaramente nella view "blogterms" andranno usati gli arguments:

  • Taxonomy: Term ID (primo argomento)
  • User: UID is Author (secondo argomento)

Vedi anche:

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Allowed HTML tags: <a> <em> <p> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3> <h4> <img> <hr>
  • Linee e paragrafi vanno a capo automaticamente.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.

Archivio

Maggio 2012
DomLunMarMerGioVenSab
12345
6789101112
13141516171819
20212223242526
2728293031
PureDivs Conversione Temi Drupal
PureDivs Conversione Temi Drupal