Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/09/2015, 02:48
JustinKO
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 12 años, 5 meses
Puntos: 47
Respuesta: Dos versiones del mismo sitio!

No, no tienes que hacer uno por cada artículo en ninguna de las dos maneras que te he comentado.

Tanto en el sistema del page.tpl como en el del hook_node_acces. lo qeu hace Drupal (explicado de mi manera poco profesional) es, una vez que recibe la petición por la URL antes de renderizar la página es chequear si algún módulo (en el caso del módulo con hook) va a realizar algo.
  1. En este caso, abririas el hook
  2. obtendrías el $nid (id del nodo) que va a ser renderizado.
  3. con ese nid, obtendrías el objeto del nodo y de éste la variable del campo "categoría"
  4. Por otro lado obtendrías la variable de sesion (pon que en este caso es "secundaria")
  5. Y con un if dirías, "si este usuario es de primaria pero el nodo es de secundaria return NODE_ACCESS_DENY ).



Sería algo así (te lo hago sin comprobar nada y reutilizando un codigo mío parecido de un hook_menu. Tómatelo solo como orientación, además recuerda que no soy programador)
Código PHP:
Ver original
  1. $node = menu_get_object();
  2. if ( !empty($node) ) {
  3. //obtenemos el nid
  4.    $nid = $node->nid;
  5.   $node = node_load($nid);
  6.   $node_categoria = field_view_field('node',$node ,'field_categoria',array('default'));
  7.   // con un dump ves el objeto  $node_categoria y extraes la variable.
  8.   // después obtendrías la variable de sessión
  9.   // aquí pasarías el condicional
  10.  
  11. }


EN el Page.tpl. sería parecido, pero la operación se haría justo cuando la página se está renderizando y en este caso puedes acceder a $node (o $node ->nid) directamente puesto que la usa para renderizar la página.

Por cierto, instalaste el módulo Devel si no lo haas hecho.

Dime si me he expicado, pero me resulta muy difícil hacerlo, pero la idea creo que más o menos se entiende ¿no?