Come NON fare vedere determinati vocabolari nei contenuti

6 contenuti / 0 new
Ultimo contenuto
Come NON fare vedere determinati vocabolari nei contenuti

Salve a tutt*,
vorrei capire come far sì che nei contenuti siano visualizzabili solo i termini appartenenti a determinati vocabolari, benchè questi contenuti abbiano anche gli altri. Mi spiego:
ho i vocabolari A B C D e ogni contenuto è asssociato a un termine per ciascuno.
Io vorrei far sì che quando viene mostrato il contenuto, si vedano solo i termini del vocabolario A e B e non quelli di C e D, che pure mi sono utili per permettere all'utente di fare ricerche coi filtri.
Come faccio?

credo che taxonomy access control [lite] possa aiutarti ;)

Uhm..
L'ho provato ma da quello che ho potuto vedere regolamenta gli accessi degli utenti in base alla tassonomia.
A me servirebbe solo che i termini dei vocabolari C e D non fossero visualizzabili, ma i contenuti a cui sono associati sì.

Grazie comunque per il consiglio! Userò quel modulo per altre cose :) (mi hai risparmiato una domanda in più :) )

Ho trovato questo:
http://drupal.org/project/taxonomy_hide
Sembra quello che cerco ma lo devo ancora installare...

Cioè non vuoi che i termini di un vocabolario non appaiano nel nodo? E' abbastanza semplice, se non vuoi usare taxonomy_hide, che dovrebbe fare quello di cui hai bisogno puoi modificare (togli poi <?php ?> a inizio e fine codice:

settings.php aggiungendo:

<?php
 
function TUOTEMPLATE_taxonomy_links($node, $vid, $name) {
//if the current node has taxonomy terms, get them
 
if (count($node->taxonomy)):
   
$tags = array();
    foreach (
$node->taxonomy as $term) {
       if (
$term->vid == $vid):
         
$tags[] = l($term->name, taxonomy_term_path($term));
          endif;
    }
    if (
$tags):
//get the vocabulary name and name it $name
       
$vocab = taxonomy_get_vocabulary($vid);
       
//$name = $vocab->name;
       
if ($name != '')
         
$output .= "<span>$name</span> " . implode(' | ', $tags);
        else
         
$output .= implode(' | ', $tags);
    endif;
  endif;
     if (
$output):
       return
$output;
     endif;
}
?>

e in node.tpl.php

<?php
 
<div class="term-taxonomy"><?php print TUOTEMPLATE_taxonomy_links($node, TAXONOMY_VID, 'NOME VISUALIZZATO'); 
?>
?>

Questa è una funzione che ho realizzato io...prova magari a modificarla secondo le tue necessità, anche se taxonomy_hide fa esattamente quello che vuoi.

Ho messo il modulo ma mi ha dato degli errori nella view...
Ora l'ho ricreata e sembra andare tutto bene, però nella view avendo messo tra i fields Taxonomy: terms, c'erano tutti. Però lì ho visto che c'è l'opzione per fare visualizzare solo determinati vocabolari.
Devo fare gli ultimi controlli per avere la certezza che vada tutto bene, poi sono a posto.

Grazie mille per la stringa di codice!
Siccome sono un niubbone di php, me la copio e me la studio meglio domani a mente fresca.
Intanto ti ringrazio molto per la disponibilità!

A presto aggiornamenti :)