Visibilidad de un bloque basado en otro bloque

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
koffer's picture

Hola. este es lo que quiero hacer

tengo un bloque que viene de views donde muestro las ultimas noticias. De vez en cuando quiero que aparezca otro bloque con una noticia muy importante que sustituya a el primer bloque. en otras palabras que cuando se active un bloque el otro desaparezca.

¿como seria el código para colocar dentro del primer bloque? en drupal 7.

algo como:

if (block-views-2) {

hide block-views-1
 
  }

Comments

Conoces el modulo context?

jaimeah's picture

Se me ocurren dos formas:

  • El modulo context te deja seleccionar que se ve en determinadas circunstancias. Posiblemente te sirva.

  • No podra ser que ajustes tu view (en la que esta basado el bloque) para que te muestre el feed o la noticia especial?

Saludos

hola ivan, seguro que hay

dasjo's picture

hola ivan,

seguro que hay varias opciones.

yourmodule_preprocess_page(&$variables) {
  if (isset($variables['page']['your_region']['block_1']) && isset($variables['page']['your_region']['block_2'])) {
    hide($variables['page']['your_region']['block_1']);
  }
}

yo recomenderia usar context para configurar esto. puedes configurar que context2 solo se activa cuando context1 no este activado.

saludos

usando context

koffer's picture

veamos, con context

Tengo un context por default para portada donde esta el bloque que normalmente va junto con un cambio de theme con delta
y armo un segundo contexto que le pondre alerta

en el context alerta
le pongo que añada el bloque de alerta
si esta en home.

el el context de portada
le pongo que si el context de alerta esta activado
no se muestre? ~alerta

tengo el problema que a parte de Contexto tengo ruta como condición.

Views puede ser la solución

enekid's picture

Yo lo haría de la siguiente forma:

  1. Crear una view (digamos que se llama "view-normal") con el listado normal de noticias.
  2. Crear una view ("view-importante") que genere esa noticia muy importante (del tipo block).
  3. En la view "view-importante" agregas una acción a NO RESULTS BEHAVIOR (en Advanced). Esa acción será del tipo "Global: View area (Insert a view inside an area.)" y ahí eliges la view "view-normal".
  4. En la portada añades el bloque "view-importante". Si no hay una noticia importante, te mostrará el listado normal de noticias.

Spanish

Group organizers

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week