Mostrar un bloque dependiendo del tipo de contenido

Hola, me gustaría que alguien me dijera cómo se puede hacer en Drupal lo siguiente: mostrar un bloque dependiendo del tipo de contenido.
Me explico, estoy haciendo una página con dos tipos de contenido (vm1 y vm2) y a cada tipo le he adjudicado una categoría propia. Me gustaría poder hacer que se viera únicamente el bloque con los tags pertenecientes al contenido que se está mostrando y no el bloque con los tags pertenecientes al otro tipo de contenido. Había pensado en hacer esto con php, algo en plan:

if (tipo_del_nodo)="vm1" then mostrar_bloque1
if (tipo_del_nodo)="vm2" then mostrar_bloque2

pero no sé qué funciones debo utilizar, ¿alguien me podría ayudar?

Muchas gracias!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Muchas gracias por tu

Muchas gracias por tu explicación, los ejemplos aclaran mucho. Esta es una solución mucho más fácil que la que yo estaba pensando. :)

cdp son dos cosas

cdp son dos cosas diferentes.

Mostrarlo en las páginas en que sea por un lado, y mostrarlo cuando te da cierto por otro lado.

Para mostrarlo en urls concretas tienes que escribir esas urls, o en su defecto utilizar la configuración del pathauto para "imprimir" en la url de los tipos de contenido una constante que te permita identificar la url

Por ejemplo meter el nombre del tipo de contenido, u otro nombre.

Me has pasado la url: http://ip/proyecto/content/nombre-del-nodo

veamos, en el pathauto podemos cambiar el "content" por un "videomediateca" y decirle que me muestre el bloque en todas las urls donde aparece la constante videomediateca de la siguiente manera

/videomediateca/*

Aunque parezca increíble esto es una url interna de drupal, que le esta dice que tiene que mostrar los bloques en todas las urls que son
http://ip/proyecto/videomediateca/*
El asterisco es un comodín que indica que coge todo lo que esa detrás, sin importar lo que sea. De esta forma mostramos el bloque en todas las urls que son del tipo de contenido videomediateca.

Si queremos mostrar las urls cuando me da true, se mostrará solo en el fullnode de aquellos nodos que sean video_mediateca.

No se si me he explicado bien

Un saludo

Oskar

gestión del conocimiento y de la información con software libre

Gracias harriak, con el

Gracias harriak, con el código que me has mandado ya me funciona una parte. Tenía un problema con el módulo pathauto, pero instalándolo de nuevo se ha solucionado.
Para arreglar mi problema del todo sólo necesitaría saber qué hay que hacer para poner en php todo el código que me has dicho y además otra línea que equivaldría a seleccionar la opción "muestra sólo en las páginas que se listan" en lugar de la opción de "Se muestra si el código PHP devuelve CIERTO (modo PHP, sólo para expertos)." y poner category/clasificación-de-vídeos-ii/*

<?php
$match
= false;
$types = array ('video_mediateca' => 1);
if (
arg (0) ==  'node' && is_numeric(arg(1))) {
   
$nid = arg(1);
   
$node = node_load(array ('nid' => $nid));
   
$type =$node->type;
    if (isset(
$types[$type])) {
       
$match TRUE;
    }
}
Return
$match;

If(
$url="category/clasificación-de-vídeos-ii/*) //No sé qué habría que poner aquí.
  return true;
}
?>

¿Hay alguna manera de hacer esto?
Muchas gracias

creo que lo de taxonomy no me sirve

Gracias por la respuesta, pero todavía no he solucionado el problema porque creo que no me he explicado bien.
Cuando hago click sobre el primary link me aparece algo así como http://ip/proyecto/p1 y no me sale nada de taxonomy. Al pulsar sobre un nodo, por ejemplo del bloque que contiene nodos del tipo vm1, me sale algo así como http://ip/proyecto/content/nombre-del-nodo y lo mismo si pulso sobre uno del tipo vm2, así que creo que no los puedo distinguir por la taxonomía.

Voy a explicar con un poco más de detalle lo que he hecho por si sirve de ayuda. Tengo creados dos paneles p1 y p2. El primero muestra en una página tres bloques, todos con contenido del tipo de contenido vm1 y el segundo muestra en otra página otros tres bloques, todos con contenido del tipo de contenido vm2. Por otra parte he creado dos bloques para mostrar nubes de tags en el margen derecho. El primer bloque muestra únicamente tags de un vocabulario asociado al tipo de contenido vm1 y el segundo bloque muestra únicamente tags de un vocabulario asociado al tipo de contenido vm2.

¿Hay alguna manera de decirle a un bloque que se muestre según el tipo de contenido de los nodos que tiene otro bloque?

Muchas gracias por vuestra colaboración

El código que necesitas

El código que necesitas sacado de drupal 5 themes. Digamos que quieres mostrar este bloque solo para el tipo de código historia.

<?php
$match
= false;
$types = array ('story' => 1);
if (
arg (0) ==  'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array ('nid' => $nid));
type =$node->type;
if (isset(
$types[$types])) {
$match TRUE;
}}
Return
$match;
?>

Un saludo

oskar

gestión del conocimiento y de la información con software libre

no me funciona el código

He probado con el código y no me funciona. También he probado cambiando la línea 7 (type =$node->type;) para que quede así ($type =$node->type;) y la línea 8 (if (isset($types[$types])) {) para que quede así (if (isset($types[$type])) {) y me sigue sin funcionar.

Cuando en el código pone arg(0) y arg(1), a qué argumentos se refiere, ¿a los de la url? es que mi url es del tipo http://ip/proyecto/content/nombre-del-video y entonces puede que la función is_numeric(arg(1)) no funcione...

Gracias

no necesitas el

no necesitas el pathauto.

con la función arg, recuperas nodo e id, en una consulta a la tabla correspondiente si el id de la consulta es igual al tipo de contenido y el nid es es el nid del nodo, te devuelve true y se muestra, sino te devuelve false y no se muestra.

Fíjate que en la configuración de los bloques, es marcar la opción Se muestra si el código PHP devuelve CIERTO (modo PHP, sólo para expertos), y ejecutar el código.

Oskar

gestión del conocimiento y de la información con software libre

algo simple seria

algo simple seria asi:

<?php
 
if (condition) {
    return
TRUE// block will be shown
 
}
  return
FALSE;
?>

yo utilizaria el pathauto: para cada tipo de contenido pondria en la url
en node path setting: works/[title-raw] en este caso todos los tipos de contenidos que sean mis trabajos y a continuacion el titulo del nodo
despues en el codigo anterior utilizaria el arg para saber de que tipo de contenido se trata
Saludos

el problema es que sea por

el problema es que sea por tipo de contenido, en ese caso puede ser más complicado.

con la función arg deberías ser capaz de solucionarlo.

Oskar

gestión del conocimiento y de la información con software libre

¿Cómo se usaría el link a la categoría?

¿Cómo se usaría el link a la categoría?