Blocco visibile solo in alcune pagine

11 contenuti / 0 new
Ultimo contenuto
Blocco visibile solo in alcune pagine

Forza ragazzi, almeno qua aiutatemi :(

Domanda semplificata: ho bisogno di rendere visibile un blocco solo in alcuni nodi e in alcune tassonomie.

Domanda estesa: ho creato un blocco con un menu che elenca tassonomie. Tale menu dovrebbe essere visibile solo nei nodi (pagine) che voglio io (precisamente in ogni pagina raggiungibile dal menu stesso e dall'indice), siccome le pagine sono davvero tantissime, è impensabile inserire manualmente tutte le pagine usando "Mostra solo sulle pagine elencate". Mi ci vorrebbe un codice da inserire in "Mostra se il seguente codice PHP restituisce TRUE (modalità PHP, solo esperti)", ma il problema è che non ho idea di cosa scriverci.

Vi prego di aiutarmi, almeno per questo problema che, se non risolto, rende vane ore e ore di lavoro per creare un database di dati enorme. Sono qui se avete bisogno altri dettagli.

Grazie tantissime!

Primo: Scusa se non l'ho fatto io, ma ero molto scoraggiato dal fatto di non aver mai trovato una soluzione agli altri miei problemi specifici.
Secondo: Grazie 1000
Terzo: Le mie conoscenze di inglese mi permettono di capire la metà di quanto leggo.

C'è un'anima pia che può aiutarmi a farmi capire che cosa devo fare con i suggerimenti di bohz.

P.S. Non ho mai voluto tutto pronto su un piatto d'argento, ho lavorato molto per arrivare a questo punto e spero che qualcuno voglia aiutarmi a scavalcare qualche piccolo ostacolo che da solo non saprei come aggirare.

Hai provato a usare pathauto per dare un prefisso del percorso coerente a tutte le pagine che sono interessate da questo menu?

No pinolo. Ora provo, anche se l'idea di farlo tramite un piccolo script in php come nel consiglio di Bath sembra più elegante.

Pathauto modifica in automatico tutti i collegamenti? Oppure troverò dei problemi di link non raggiungibili?

@NDD: non volevo rimproverarti!
rimanendo nella logica di usare php per visibilità del blocco:
1) se il tuo menu è associato a TUTTO un vocab, usa questo:

<?php
 
// This snippet returns TRUE if the node we are
  // currently viewing is tagged with a term which belongs
  // to the 'desired_vocab' and we are not in edit mode (arg(2)).
  // put here the vocabulary ID you're interested in
 
$desired_vocab = 1;
  if (
arg(0) == 'node' and is_numeric(arg(1)) and arg(2) == FALSE ) {
   
// Yes, we're viewing a node in view mode.
   
$node = node_load(arg(1)); // cached
    // If the term does not exist we're done
   
if (is_array($node->taxonomy)) {
      foreach (
$node->taxonomy as $term) {
        if (
$term->vid == $desired_vocab) {
          return
TRUE;
        }
      }
    }
  }
  return
FALSE;
?>

2) se invece hai un subset di termini usa questo:

<?php
  $myterms
= array(39, 59, 85, 114); // list the ids of the terms you want
  // This will show on all nodes having this term
 
if ((arg(0) == 'node') && is_numeric(arg(1))) {
   
$terms = taxonomy_node_get_terms(node_load(arg(1)));
    foreach(
$terms as $term) {
      if (
in_array($term->tid, $myterms)) return TRUE;
    }
  }
 
// This will show on the index page for that term
 
if ((arg(0) == 'taxonomy') && (arg(1) == 'term') && (in_array(arg(2), $myterms))) {
    return
TRUE;
  }
 
// Otherwise
 
return FALSE;
?>

Assolutamente fantastico!!!

Mi servono proprio entrambi e corro a provarli!

Grazie mille x mille volte!!!

Edit: Add

Il secondo script funziona perfettamente, ma non riesco a visualizzare il blocco con il primo. L'unica cosa che ho fatto è stato cambiare la variabile desired_vocab con quella del vocabolario interessato.
Sto provando a capire dove sta il problema.

Niente :( Non funziona il primo script. Non ricevo messaggi di errori, ma il blocco è sempre invisibile. :(

Non so che dirti.
ho appena provato il primo snippet (copiato e incollato da questa pagina) in un'installazione base di drupal 6.13 e funziona perfettamente: il blocco test si vede solo nei nodi taggati con termini appartenenti al vocabolario con ID=1.

Niente da fare, sto cercando (tramite altro forum) di modificare il secondo script per riempire l'array in automatico con delle sequenze di numeri in modo da alleggerire il lavoro. :(

Ciao a tutti,
io dovrei visualizzare un blocco solamente nel forum, quindi la pagina forum e i nodi di tipo "discussione del forum".
Potete aiutarmi per favore?

RISOLTO
in fondo a questa discussione: http://drupal.org/node/173782