Blog

Pantalla en blanco en el Webform de Drupal

Tenía un formulario en Drupal hecho con el módulo Webform. Cuando daba al botón de enviar no me iba a la ventana de confirmación, sino que me salía la típica venta en blanco de Drupal (vamos, que el navegador se quedaba en blanco).

Como casi siempre me ocurre en Drupal, casi me vuelvo loco encontrando una solución. Por fin encontré una solución en el siguiente enlace:

http://community.contractwebdevelopment.com/drupal-blank-screen-after-submit

Lo que pasaba era que anteriormente había modificado el archivo "template.php" de mi plantilla de Drupal, con el fin de añadir un código de php. El error fue añadir el código entero previamente, incluyendo los caracteres de apertura y cierre <?php   ?>. Todo se solucionó cuando añadí el código dentro de los que ya existían, justo antes de <?php.

Por lo visto, según explican en el enlace adjunto, no debe haber ningún espacio después de ?>, vamos, que sólo haya un sólo cierre, y por lo tanto una sola apertura del código php.

Hay todo un hilo de Drupal en que explican posibles causas a la pantalla en blanco:

http://drupal.org/node/158043

Elementos de menú que enlazan a la página actual

Estaba volvíendome loco buscando cómo conseguir que los botones padre de mi menú no enlazasen a ninguna página (el equivalente a un enlace href="#").
 
Encontré la solución en el siguiente enlace:
 
 
Simplemente basta con editar el archivo template.php del tema de drupal elegido, y escribir al comienzo el siguiente código:
 
<?php
function phptemplate_menu_item_link($link) {
  if (empty(
$link['localized_options'])) {
   
$link['localized_options'] = array();
  }
    if(
$link['href'] == "<front>")    {
    return
$link[title];
    }
    else
    {
      return
l($link['title'], $link['href'], $link['localized_options']);
    }
}

?>
 
Posterioremente descubrí que el hecho de copiar este código al principio del archivo template.php me provocaba un error en el módulo webform: se producía la típica pantalla en blanco de Drupal cuando el formulario intentaba abrir la ventana de confirmación del envío. La solución fue simplemente copiar la función dentro de la apertura de código <?php que ya incluía la plantilla.

Error en el módulo Link Image Field de Drupal

Buscaba un módulo que me permitiese añadir imágenes con enlace a Drupal. Encontré el módulo Link Image Field

El problema fue que no me funcionaba correctamente, y me salía el siguiente error:

warning: Parameter 1 to theme_linkimagefield_widget() expected to be a reference, value given

Todo se solucionó con las instrucciones que encontré en Widget does not show up:

  • Edita el archivo linkimagefield_widget.inc en la línea 180.
  • Edita function theme_linkimagefield_widget(&$element) {
  • Quita & para que quede como function theme_linkimagefield_widget($element) {

Evaluar páginas web en Internet Explorer con IETester

Ya sabemos que nuestras páginas maquetadas no siempre se ven bien en todos los navegadores. Con IETester podremos evaluar cómo se ven en las distintas versiones de Internet Explorer.

IETester

Habilitando urls limpios en Drupal

Para poder habilitar urls limpias en Drupal, dentro de la configuración de php en el servidor Apache, tuve que hacer un par de cambios dentro del archivo httpd.conf:

1)

AllowOverride None
a
AllowOverride All

2)

#LoadModule rewrite_module modules/mod_rewrite.so
a
LoadModule rewrite_module modules/mod_rewrite.so

Con el primer cambio queda habilitado el archivo .htaccess dentro del direcctorio raíz de drupal, y así puede leer las órdenes que se refieren a la reescritura de urls.

Para más información leer el asunto http://drupal.org/node/15365

Migrar de servidor un sitio de Drupal

Acabo de subir mi sitio de Drupal desde mi servidor local al servidor de mi alojamiento web. El siguiente enlace me ha sido de bastante utilidad:

http://www.javiermaties.com/sipuedo/2008/06/26/migrar-un-sitio-drupal-a-otro-servidor/

Yo he seguido los siguientes pasos:

  • instalar en Drupal, aún en mi servidor local, el módulo Backup and Migrate, que en concreto lo he utilizado para exportar una copia de la base de datos de mi sitio;
  • en el servidor remoto he creado una nueva base de datos. A continuación, desde el panel de administración de las bases de datos de mi servidor remoto, he importado dentro de la nueva base de datos las tablas que había exportado anteriormente;
  • utilizando FileZilla, he subido al servidor remoto vía ftp todos los archivos que componen mi sitio de Drupal;
  • dentro del servidor remoto, he editado el archivo sites\default\settings.php, y he cambiado los datos correspondientes al nuevo nombre de la base de datos (no he tenido que cambiarlo), y el nombre del host de las bases de datos de mi servidor remoto, así como el nombre y contraseña de acceso. Por cierto, tuve que habilitar el permiso de escritura para poder hacer este cambio (luego lo quité dicho permiso, por seguridad).
  • finalmente, accedí a la dirección http de mi sitio y actualicé el nuevo sitio con update.php: www.misitio.com/update.php

Aún tuve que hacer algún ajuste más:

  • ir a Configuración del sitio > Sistema de archivos y cambiar la ruta de la carpeta temporal, ya que aún apuntaba a mi servidor local (y me daba el mensaje de error en el "ImageCache Temp Directory").

Tras estas operaciones el sitio me ha funcionado sin problemas.

Páginas de administración de acceso en Drupal

Tras habilitar el módulo admin-menú para un rol, tenía el problema de que tras iniciar un usuario de dicho rol no me aparecían las opciones administrativas.

Después de estar volviéndome loco descubrí que tenía que habilitar el permiso módulo system > páginas de administración de acceso para dicho rol.

Reconstuir permisos de usuario en Drupal

En ocasiones, como por ejemplo cuando migramos nuestro sitio web de servidor, drupal no reconoce los permisos concedidos a los usuarios. Por ejemplo, los usuarios anónimos no pueden ver parte de los contenenidos.

Existe una herramienta administrativa para reconstruir los permisos de usuario. Para ello debemos ir a Aministración de contenido > Opciones de envío y pinchar en el botón Reconstuir permisos.

Fuente: http://gestiweb.com/blog/?q=node/422

Módulo para poder subir archivos con CKeditor en Drupal

Una vez instalado CKEditor en Drupal, si queremos subir algún archivo, por ejemplo una imagen, debemos instalar algún plugin o módulo que nos lo permita.

Una solución sería instalar CKFinder, pero a mí me parece algo complicado, aunque aquí se puede encontrar un videotutorial que nos explica cómo.

A mí me parece más simple instalando los siguiente módulos:

  • IMCE: permite subir archivos e imágenes visualmente;
  • IMCE Wysiwyg bridge: integra IMCE los módulos Wysiwyg, en nuestro caso CKEditor.

Con IMCE (en Configuración del sitio > IMCE) definiremos para cada rol de usuario la carpeta en la que subiremos o elegiremos los archivos en el servidor, así como el tamaño máximo de los archivos y la resolución de las imágenes subidas, o incluso diferentes resoluciones para hacer "thumbnails" de las imágenes.

En Configuración del sitio > Wysiwyg > Profiles editaremos las propiedades de CKEditor, y dentro de la sección "Buttons and plugins" activaremos la opción "IMCE".

A partir de ahí, al insertar una imagen con CKEditor tendremos la opción de "Ver Servidor", que nos abrirá el navegador IMCE con el que podremos subir archivos a nuestro servidor y posteriormente insertarlos.

Distribuir contenido