Blog

Editores en Drupal 7

En Drupal 7 no instalaba el editor ckeditor directamente con el módulo ckeditor, sino por medio de wysiwyg:

Este módulo requiere que instales la librería en sites/ all/libraries/ckeditor. La librería te la descargas en:

Yo luego instalo los módulos imce imce_wysiwyg, para poder subir imágenes con el wysiwyg.

El módulo wysiwyg te permite usar otros editores. Ahora me he cambiado de ckeditor tinymce:

La razón es porque me gusta más el editor en modo código HTML. Eso sí, hay que instalar otro módulo:

En ckeditor, el código HTML no te viene tabulado ni con número de líneas; es muy complicado leerlo.

Para poder subir imágenes con este editor sigo utilizando imce imce_wysiwyg.

Enlaces sobre Drupal

Estos son algunos enlaces para solucionar algunos problemas con Drupal:

Módulo views

Configurando php.ini en un alojamiento compartido de Dreamhost

Para mi desesperación, la configuración de cada servidor en que alojo las páginas que realizo es de su padre y de su madre. En ocasiones Drupal no funcional porque éste o aquél módulo necesita unos requisitos, por ejemplo de memoria, que no están configurados en el servidor por defecto.

Al menos Dreamhost siempre suele dar alguna oportunidad para variar los valores del archivo php.ini que vienen por defecto. Si el dominio o sub-dominio funcionan sobre PHP 5.3 (lo podemos comprobar en el panel de control, dentro de la configuración de dominios), podemos crear un archivo de texto llamado phprc. Lo debemos colocar dentro de la siguiente configuración de carpetas:

    .php/5.3 

Por ejemplo, en phprc podríamos aumentar el límite de memoria:

    memory_limit = 256M 

A su vez, la carpeta .php debe estar dentro de la home de cada usuario, es decir, en home/nombreusuario. Si queremos una configuración distinta para cada subdominio o dominio, necesitaríamos crearnos un usuario para cada dominio (eso dicen en algún foro).

Fuente: http://wiki.dreamhost.com/PHP.ini#phprc

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.

Instalar Drupal 7 en Uniserver

UniServer es un servidor Apache portátil (portable), y es el que utilizo para montar mis sitios de prueba en Drupal. Simplemente es muy útil porque lo puedes instalar en un penDrive o en un disco duro portátil y así llevarte el sitio web a cualquier parte.

Para poder instalar Drupal 7 en UniServer tuve que quitar el comentario de un par de líneas en el archivo php.ini situado en usr/local/php:

  • extension=php_pdo_mysql.dll
  • extension=php_pdo_sqlite.dll

Así lo pude instalar sin problemas.

Problemas en Drupal con CSS e Internet Explorer 8

Tenía problemas al ver en ie8 uno de los sitios hechos con Drupal: parecía como si la hoja de estilos no se cargase, y eso que estaba bien enlazada en el "head" del documento. En Firefox el sitio web se veía perfectamente.

Al parecer, ie8 tiene un problema si uno intenta cargar en la cabecera muchas hojas de estilos y script. Encontré que una posible solución para Drupal era entrar a "Configuración del sitio > Rendimiento", y ahí activar las casillas referentes "Optimizar archivos CSS", y "Optimizar archivos JavaScript".

Aun así esta solución presenta 2 problemas:

  • en la fase de desarrollo no se lleva muy bien con la caché, así que es mejor activar estas casillas al final del desarrollo;
  • hay un fallo en Drupal 6 que impide esta solución si el método de descargas del servidor está en privado.

Como no entiendo mucho respecto al tema, aquí indico la fuente:

http://www.siteprebuilder.com/content/drupal-problem-solving-broken-css-ie

Campo para calcular otros campos en Drupal

Necesitaba un campo cuyo resultado fuese el cálculo de una operación entre otros campos de un mismo nodo. Encontré el módulo Computed Field, que además de calcular el valor lo guarda.

También hay otro módulo que hace algo parecido, Dynamic Field, pero este no guarda el cáculo, sólo lo muestra en vivo cuando vemos un nodo, y por ello no sirve para utilizarlo por ejemplo con el módulo Views.

IMPORTANTE: si añadimos el campo Computed Field después de haber creado los nodos, sólo mostrará el valor si volvemos a guardar los nodos.

Enlaces a la misma página en Drupal

Tenía un menú con enlaces primarios y cada ítem tenía un subítem del siguiente modo:

  • ítem 1
    • subítem 1
    • subítem 2
    • subítem 3

No sabía cómo hacer para que el ítem 1 me enlazara a #, es decir, a la misma página en que uno está, pues en Drupal hay que enlazar siempre a un nodo, y no quería poner <front>.

Encontré el siguiente código, que debía pegarse dentro del código php del archivo template.php situado en el tema elegido:

<?php
function phptemplate_menu_item_link($link) {
  if (empty(
$link['localized_options'])) {
   
$link['localized_options'] = array();
  }
    if(
$link['href'] == "<front>")    {
    return
"<a href=\"#\">$link[title]</a>";
    }
    else
    {
      return
l($link['title'], $link['href'], $link['localized_options']);
    }
}

?>

Fuente: http://drupal.org/node/128618#comment-979977

Ahora he visto que también hay un módulo para ello, aunque no lo he probado:

http://drupal.org/project/special_menu_items

Portal para diseñadores freelance (en inglés)

Esta semana descubrí freelanceswitch.com, un portal en inglés para trabajadores autónomos del diseño gráfico. Creo que el portal es australiano, más que nada por las direcciones que encontré en algún lado del portal.

Adjunto una de las tiras cómicas de su sección Freelance Freedom:

Tira cómica

Por lo visto, en todos lados cuecen habas. Qué pena, y yo soñando con la tierra prometida...

Distribuir contenido