Gestor de contenidos

Solucionar el problema de Cufon en IE9

Parace ser que en Internet Exploer 9 no se visualizan bien los textos que se habían maquetado con Cufon.

Podemos solucionarlo con 3 pasos:

  • Descargar la versión más reciente de Cufon-yui.js.
  • Añadir en el HEAD del documento HTML, después de la llamada a Cufon-yui.js, el siguiente código:
<!--[if gte IE 9]>
    <script type="text/javascript">
        Cufon.set('engine', 'canvas');
    </script>
<![endif]-->
  • Añadir el siguiente meta en el HEAD, para forzar que IE9 se comporte como IE8:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Fuente: http://www.estadoactivo.com/problema-con-cufon-y-ie9.html

Si estamos en Drupal 6, podemos escribir en el HEAD instalando el módulo Add To Head.

Permisos en Drupal 7 para los usuarios que subirán los contenidos

Cuando termino de configurar mis sitios en Drupal llega el momento de prepararle el panel de control al editor que subirá los contenidos: textos, vídeos, fotos...

Por un lado se trata de configurarle un panel de administración reducido y agradable. Todo aquello que no va a utilizar no debe aparecer.

Por otro lado, cuantas menos opciones pueda toquetear mejor, no vaya a ser que termine desconfigurando la estructura del sitio web.

Lo primero que hay que hacer es configurar un rol y asignarle todos los permisos necesarios. Una vez creado el rol, se asignan los nuevos usuarios editores a ese rol.

Para configurar los permisos de dicho rol, me suelo abrir dos navegadores. En uno, accedo como administrador, con todos los permisos. En el otro navegador accedo con la cuenta de usuario editor. Desde la cuenta de administrador, voy habilitando y desabilitando permisos, y desde la cuenta del editor compruebo qué ve y qué no.

En general, hay que habilitar todos los permisos de edición de los tipos de contenido. Además habilito:

  • Administrar contenido (node): si no se habilita, no se pueden editar los contenidos aunque se dé permiso individualmente a cada tipo de contenido.
  • Administrar menús y elementos de menú: generalmente el editor necesita reorganizar los menús;
  • Administrar vocabularios y términos: los editores pueden querer organizar las taxonomías. También hay que habilitar el permiso para cada vocabulario que deba gestionar;
  • Use el formato de texto (filter): Filtered HMTL o Full HTML.
  • Usar la barra de herramientas de administración (toolbar): si el editor no ve la barra no va a ver ningún acceso directo;
  • Acceder a la capa de administración superpuesta (overlay): sin este permiso, no aparecen las ventanas de administración superpuestas.
  • Ver el tema de administración (system): si no lo puede ver, la edición de contenidos la haría con el tema de diseño de la web, y a veces no es la mejor opción. El tema de administración "Seven" es bastante sobrio y adecuado.
  • Usar las páginas de ayuda y administración (system): esta opción la activo para que aparezcan las opciones de mostrar menús y taxonomías, por ejemplo. Una vez que están visibles, accedo a ellas y les añado un acceso directo. Después de crear los accesos directos necesarios desahibilito este permiso. No tengo claro si estos accesos directos los vería sólo el usuario editor con el que estoy conectado.
  • Administrar atajos (shortcut): habilito este permiso para añadir los atajos que va a usar el editor. Una vez añadidos los atajos lo vuelvo a deshabilitar.

Los permisos que he puesto en negrita son los que siempre me resultan más complicados de recordar porque son menos intuitivos.

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) {

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