Contenido

Drupal: Creando contenido con 'expansors'

Contenido

Hace poco necesité usar “expansors” para que un artículo quedara como yo quería. Claro, el reto era usarlos al más puro estilo Drupal, de manera que quedaran acordes con el resto del site.

Me costó un poco hallar la solución, pero aquí la tenéis.

Drupal

Lo primero que vamos a necesitar es crearnos nuestro propio “Formato de entrada”. Para ello, iremos a Administrar->Formatos de entrada->Añadir formato de entrada. El formato que vamos a crear es lo más simple posible: HTML pelao y mondao, por lo que yo lo he llamado “HTML pure” (ojo, puede ser un agujero de seguridad, por lo que recomiendo restringirlo a algunos usuarios) y deseleccionamos todos los checks. Sería admisible dejar filtros, como el de HTML, pero lo que más nos importa es quitar el conversor de saltos de líneas.

Luego veremos que hay una forma (horrible) de saltarnos ese paso.

Ahora creamos nuestro nodo de la forma habitual, pero al principio del todo ponemos lo siguiente:

1
2
3
<script type="text/javascript" src="/drupal/misc/jquery.js?O"></script>
<script type="text/javascript" src="/drupal/misc/drupal.js?O"></script>
<script type="text/javascript" src="/drupal/misc/collapse.js"></script>

Es muy probable que tengáis que cambiar algo en la ruta a los .js.

Ahora ya sólo nos queda usarlo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<fieldset class="menu-item-form collapsible">
  <legend>Epígrafe a mostrar siempre</legend>
  <div>
     Contenido.
  </div>
</fieldset>
<fieldset class="menu-item-form collapsible collapsed">
  <legend>Epígrafe a mostrar siempre</legend>
  <div>
     Contenido que por defecto no se muestra.
  </div>
</fieldset>

Ahí están dos ejemplos, uno desplegado por defecto y otro plegado.

Si no queremos tener que añadir el nuevo Formato, lo que podemos hacer es poner todo el fieldset sin ningún salto de línea, ya que en cuanto Drupal los detecte, comenzarán a hacer cosas raras. Si sólo queremos un “expansor”, no es problema, pero como queramos hacer muchas filigranas, necesitaremos de este formato.