Hola!
Tengo un problema con el código php que te permite decidir si quieres mostrar o no un bloque. Al principio me funcionaba muy bien pero desde que le metí algo tipo esto:
<? php
$sql="SELECT distinct name FROM term_node JOIN node ON term_node.nid=node.nid JOIN term_data ON term_node.tid=term_data.tid WHERE type=$tipo";
$res=mysql_query($sql) or die (mysql_error());
$tags=array();
$i=0;
while($registro=mysql_fetch_array($res)){
$tags[$i]=$registro["name"];
$i=$i+1;
}
$nid = arg(1);
$node = node_load(array ('nid' => $nid));
$type =$node->type;
if (in_array ($tipo, $tags)){
$match1=true;
}
?><? php
return false;
?>Gracias
Pregunta...
¿No hubiera bastado con la parte de "Mostrar en X páginas" [visibilidad]?
Que buena función cdp, me
Que buena función cdp, me la guardo.
Un saludo
Oskar
gestión del conocimiento y de la información con software libre
Gracias por tus consejos. Al
Gracias por tus consejos. Al final he encontrado una función en el API de Drupal que me ha resuelto el problema. Sabiendo exactamente en qué url estaba he podido decirle a Drupal mediante PHP cuando mostrar o cuando no mostrar el bloque de la nube de tags. Dejo aquí el código por si a alguien más le sirve.
<?php$alias = drupal_get_path_alias($_GET['q']); //coge el url
$trozos=explode("/",$alias); //divide la url en trozos cortando por cada "/"
if (arg(0)=="profesores") {
$match=true;
}
elseif ($trozos[0]=="category" and ($trozos[1]=="vm2" or $trozos[1]=="tags-ii")){
$match=true;
}
else{
$match=false;
}
Return $match;
?>
Un saludo
Antes de escribir una
Antes de escribir una función es recomendable buscar en el API de drupal si ya no existe una función parecida en el core de drupal que nos devuelva los valores que estamos buscando. Por ejemplo hay una función que te devuelve todos los términos asociados al nodo que pertenecen a un determinado vocabulario, esta es la función taxonomy_node_get_terms_by_vocabulary($nid, $vid, $key = 'tid'), donde $nid es el numero de nodo y $vid es el id del vocabulario del cual quieres extraer los términos.
Volviendo a lo que necesitas, quizás te convenga utilizar un views en lugar de un "snippet", no tengo en claro si al ir a la pagina del tag quieres mostrar todos los vídeos asociados a ese termino a al vocabulario al cual pertenece el termino, de todos modos la clave va a estar en el código que pongas en el campo de argumentos del views.
Saludos
http://organicsa.net
Tienes toda la razón, era
Tienes toda la razón, era el espacio. Muchísimas gracias, me estaba volviendo loca y ya pensaba que había roto php o algo parecido. Te voy a contar un poco lo que hace mi página porque quizás puedas ayudarme a optimizar código.
En la parte central tengo un nodo que muestra un vídeo y justo debajo, una vista que me muestra los vídeos relacionados con el vídeo de arriba. En el margen derecho tengo un bloque, que debe aparecer sólo en ciertas ocasiones, y que muestra una nube de tags con los distintos tipos de vídeo. Lo que pretendía lograr con el php era que apareciera el bloque de la derecha, el de la nube de tags, en la página que se abre al pulsar sobre cualquiera de los tags y que muestra todos los vídeos de una categoría.
Muchas gracias
El espacio entre el signo de
El espacio entre el signo de pregunta y php me parece sospechoso, de todos modos no creo que sea necesario un query para controlar la visibilidad del nodo, si me dices que valores quieres utilizar para controlar la visibilidad del nodo quizás puede ayudarte.
http://organicsa.net