El menú responsive del tema Bootstrap de Drupal no funciona

Después de instalar el tema Bootstrap de Drupal 7 para un nuevo sitio de comercio online me he encontrado con que el menú responsive, el que aparece como un icono con tres rayitas cuando la pantalla es pequeña, no funciona. Googleando un poco me encuentro con este enlace en el que cuentan que el problema puede ser que la versión de JQuery que esté usando no sea la correcta. En Drupal 7 podemos mantener actualizada la versión de JQuery si instalamos el módulo Jquery Update, el cual ya viene incluido por defecto en el núcleo de Drupal 8.
Una vez instalado dicho módulo, lo activamos y ya tenemos funcionando el menú en el móvil.

Corregir el error “Illegal string offset ‘data’…” en Drupal 5

Para los que somos un poco vagos y todavía mantenemos páginas en Drupal 5, una de las cosas más molestas son los continuos errores que aparecen en el registro debido a las nuevas versiones de PHP que van saliendo. Uno de ellos es el error “Illegal string offset ‘data’ en la línea 110 del archivo /nuestro_drupal5/includes/tablesort.inc.”

La solución la tenemos en este enlace, que nos cuenta que para corregirlo hay que cambiar dicha línea 110 de código del archivo /nuestro_drupal5/includes/tablesort.inc de la siguiente forma. Donde dice:

if (isset($header[$i]) && $header[$i]['data'] == $ts['name'] && $header[$i]['field']) { 

Lo cambiamos a:

if (isset($header[$i]) && isset($header[$i]['data']) && $header[$i]['data'] == $ts['name'] &&  isset($header[$i]['field']) && $header[$i]['field']) { 

Y con esto desaparecen los molestos mensajes de error.

 

 

 

Cómo habilitar las clean url de Drupal en el directorio de usuario de Apache2 en Debian/Ubuntu y Fedora

  1. Habilitar el módulo mod_rewrite de Apache. En Debian/Ubuntu hay que lanzar el comando: sudo a2enmod rewrite. En Fedora ese módulo ya viene habilitado por defecto.
  2. Editar el fichero /etc/apache2/mods-enabled/userdir.conf en Debian/Ubuntu cambiando la linea con AllowOverride FileInfo AuthConfig Limit Indexes de forma que solo tenga AllowOverride All. En Fedora dicho fichero está en /etc/httpd/conf.d/userdir.conf
  3. Editar el fichero .htaccess de nuestro directorio de Drupal descomentando la linea con la opción RewriteBase y dejándola como  RewriteBase /~MiUsuario/miDirectorioDrupal/
  4. Reiniciar Apache. En Debian/Ubuntu con el comando: sudo service apache2 restart y en Fedora con: sudo service httpd restart

Este procedimiento me ha funcionado con Ubuntu 14.04 con Drupal 8, y también en Fedora 23 con Drupal 7

En esta entrada recojo mi experiencia personal tras seguir las indicaciones de:
http://tolocalhost.blogspot.com.es/2013/04/enabling-drupal-clean-url-in-apache2.html

Error “.htaccess: Options not allowed here” en Apache2

Este error me ha aparecido en el log de Apache cuando he intentado acceder a una réplica en mi directorio de usuario de una página hecha en Drupal. Para solucionarlo he tenido que editar el archivo “/etc/apache2/sites-available/000-default.conf” añadiendo las lineas

<Directory /home/mi_usuario/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Y reiniciar el servicio con “sudo service apache2 restart”

Solucionado el errror: las búsquedas en Drupal siempre devuelven “Debe incluir al menos una palabra clave positiva con 3 caracteres o más”

Con la actualización del PCRE (Perl Compatible Regular Expressions) a la versión 8.30 en PHP, ocurre que las búsquedas del módulo search dejan de funcionar en Drupal 5. Cualquier búsqueda que se haga devuelve el error “Debe incluir al menos una palabra clave positiva con 3 caracteres o más” y este comportamiento no se soluciona volviendo a indexar el sitio web. Para solucionarlo hay que modificar a mano el fichero /modules/search/search.module modificando la línea 47 de forma que se cambie la cadena “\ x {D800} – \ x {F8FF} \” por “\ x {E000} – \ x {F8FF} \”. Es decir, dicha línea 47 que inicialmente está así (da igual en minúsculas que mayúsculas):

‘\x{a80b}\x{a823}-\x{a82b}\x{d800}-\x{f8ff}\x{fb1e}\x{fb29}\x{fd3e}\x{fd3f}’.

hay que dejarla así:

‘\x{a80b}\x{a823}-\x{a82b}\x{e000}-\x{f8ff}\x{fb1e}\x{fb29}\x{fd3e}\x{fd3f}’.

De esta forma las búsquedas vuelven a funcionar.

No es buena práctica modificar módulos del núcleo de Drupal a mano, pero en este caso es una solución de compromiso en Drupal 5, cuyos módulos están fuera de mantenimiento. De hecho este error se da también en Drupal 6, pero está corregido desde la versión 6.26.

Solucionado gracias a https://drupal.org/comment/7189896#comment-7189896   y   http://www.sture.ch/node/203

Error “Could not retrieve title from feed” al usar el módulo Feeds en Drupal 7

El módulo Feeds permite importar fácilmente datos en Drupal desde ficheros CSV, aunque tiene algunas características en su funcionamiento que pueden ser desconcertantes. Su utilización está muy bien explicada por ejemplo aquí por lo que no me voy a extender en ello, lo que querría explicar aquí es cómo evitar la reiterada aparición del mensaje de error “Could not retrieve title from feed” que me aparece cada vez que intento cargar un fichero CSV.
Para poder hacer bien la carga necesitamos:
1) Tener definido el nodo en nuestro Drupal, con unos campos de similar nombre y formato que los del fichero CSV.
2) Definir un nuevo importador (feed importer) relacionándolo con el tipo de contenido que tenemos que cargar (no configurarlo como standalone).
3) Ir a la sección Contenido y pulsar en Añadir contenido. Seleccionar el nodo que queremos cargar.
4) Nos aparece la página de carga de datos del nodo, en la cual, aparte del formulario para introducir los campos, nos deberá mostrar una serie de valores a rellenar para realizar la carga desde fichero. Seleccionamos el fichero a importar.
Si pulsamos el botón “Guardar” en este momento, nos saldrá el dichoso mensaje de error y no se hará ninguna carga. Para evitarlo, ponemos algo en el primer campo (que es el campo title), cualquier cosa. Pulsamos de nuevo “Guardar”.
Veremos que ahora nos da otro error, pero además nos aparecen una serie de pestañas, entre las cuales está la pestaña “Importar”. Pulsamos en ella y desde ahí ya podemos hacer la carga.
Finalmente hemos conseguido hacer la carga de datos, aunque sea de forma un tanto chapucera.

Cogido de la entrada #3 de aquí. ¡Gracias, RdeBoer!

Habilitar url’s limpias en Drupal 7 en un directorio de usuario de Apache (userdir)

Para habilitar las urls limpias en un Drupal 7 instalado en un directorio de usuario de Apache (con el módulo mod_userdir activado), tendremos que hacer lo siguiente

Verificar que tenemos habilitados los módulos de Apache ‘mod_rewrite’ y ‘mod_userdir’. Para ello comprobaremos que en el fichero /etc/httpd/conf/httpd.conf están descomentadas las líneas
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule userdir_module modules/mod_userdir.so

Indicar en nuestro fichero .htaccess dónde está instalado Drupal, modificando el fichero ~/public_html/drupal7test/.htaccess. Buscamos la linea con RewriteBase y la descomentamos, poniendo a continuación el directorio en el que tenemos instalado Drupal, en mi caso la línea queda así:
RewriteBase ~/public_html/drupal7test

Permitir la actuación del módulo mod_rewrite en nuestro directorio de usuario; para ello modificaremos el fichero /etc/httpd/conf/extra/httpd-userdir.conf de forma que quede activado el AllowOverride:

UserDir public_html
<Directory "/home/*/public_html">
  AllowOverride All
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory></code>

Más información sobre las url’s limpias en la página de Drupal.

Las instrucciones anteriores sirven literalmente para Archlinux, si se hace en otra distribución de Linux es muy posible que los directorios donde se ubiquen los ficheros de configuración sean distintos. Para localizarlos, deberemos utilizar el comando (como root):
find /etc -name <nombre del fichero>