desarrollo

Módulo devel para el desarrollo de Drupal

El módulo Devel es un imprescindible para desarrollar con Drupal, proporciona un amplio abanico de herramientas que facilitan la labor de programación y también utilidades de administración, como generar contenido aleatorio o reinstalar módulos.

Devel, la navaja suiza del desarrollo con Drupal. Foto: askdavetaylor

categorías: 

Ventanas modales en Drupal, ¿Qué opciones hay?

- Popups api (?)

- ModalFrame

- Lightbox?

- Dialog API

- CTools a pelo

categorías: 
drupal: 

Caché en el desarrollo de drupal 6

Probablemente la dificultad más grande en el mundo del desarrollo es la velocidad de respuesta, un sistema de caché optimizado y un desarrollo orientado a utilizarlo nos supone una ventaja en rendimiento que no podemos desaprovechar.

En este artículo hablaré un poco de la caché básica para el desarrollo de módulos a medida en Drupal, pero las cosas mejor desde el principio.

¿Qué es la caché?

El mecanismo de cache mejora el rendimiento de forma transparente al usuario guardando datos en previsión a que sean solicitados más adelante y de esta forma servirlos más rápidamente. Cuando se hace una petición por el dato en concret, primero se busca en la caché, y si no está se devuelve normalmente realizando una consulta a base de datos y recuperando la información "en vivo". Esto proporciona una ventaja en velocidad, puesto que el dato es muchísimo más rápido de recuperar desde la caché que desde su medio original, el inconveniente es la frescura de datos, si esta información es modificada en la base de datos, puede pasar un tiempo hasta que la caché la muestre actualizada.

Como ejemplo ilustrativo, si vamos a recoger manzanas y alguien las ha puesto ya en un cesto, será mucho más rápido cogerlas de ahí que del propio árbol. (foto de mcmrbt)

categorías: 
drupal: 

Uso de la función l() para crear links en Drupal 6

Hace ya tiempo que no pongo ningún artículo sobre desarrollo con Drupal, a continuación explico los usos más comunes de la función l() para generar links de forma segura y sencilla.

Creando links en Drupal 6: la función l()

La función l() permite generar links en el código y es una práctica recomendada para el desarrollo con Drupal, pasando los enlaces a través de esta función nos aseguramos de que las rutas se generan bien y nos ahorramos problemas de seguridad (ya que se filtra el texto) y también con los alias, ya que es consciente del alias que tiene cada contenido y se genera correctamente, por ejemplo si tenemos un enlace al primer nodo node/1 y tiene un alias como contenido/primer-articulo, si cambiamos el alias, un link construido con l() no será necesario modificarlo.

Sintaxis

l($text, $path, $options = array());

  • $text - El texto que se mostrará en el enlace, es recomendable pasarlo a través de una función t() si trabajamos con traducciones y sitios multilenguaje.
  • $path - Ruta a la que accede el link.
  • $options - Array de opciones que nos va a permitir alterar el comportamiento del enlace, permitir HTML, añadir clases CSS...

Por ejemplo, un link a un contenido fijo, el formulario de contacto:

<?php
 
print l('Contacta', 'contact');
?>

Otro ejemplo, un link a un nodo, pasado por traducción.

<?php
 
print l(t('Enlace al contenido'), 'node/4');
?>

Si queremos enlazar la home, debemos usar la cadena <front>.

<?php
 
print l(t('Home'), '<front>');
?>
categorías: 
drupal: 

Configuración de un entorno AMP para Drupal en Mac OS X con soporte GD

Ayer le tocó el turno a la configuración de la librería GD para PHP en Ubuntu y Windows, y hoy le dedico una entrada a la configuración de un entorno de desarrollo AMP en Drupal (Apache + MySQL + PHP) en Mac OS X, probado para Leopard.

categorías: 

Instalación y actualización de la librería gráfica GD

En muchas instalaciones web necesitaremos las librerías gráficas GD para mostrar y manipular las imágenes presentes en nuestro sitio.

¿Qué son las librerías GD?

Las siglas GD proceden originalmente de "gif draw" o "graphics draw" y son unas librerías de código abierto desarrolladas en C para la creación dinámica de imágenes en aplicaciones. Entre otros muchos formatos, permiten manipular al vuelo imágenes PNG, JPEG y GIF.

Página no encontrada al acceder a un perfil de usuario como anónimo

Un problema que puede ocurrir cuando se realiza una migración de usuarios, es que después de realizar la carga de los mismos, los usuarios anónimos no puedan acceder al perfil de estos usuarios nuevos, mientras que, tanto el usuario administrador (uid 1) y el resto de usuarios autentificados sí tienen permisos para acceder a los perfiles de todos.

El error que aparece es Página no encontrada (page not found), y se produce porque cuando se crea un usuario, hasta que éste no hace login por primera vez, no aparece en los listados que se muestran a los usuarios anónimos, ya que filtra la columna "access" de la tabla "users", si es igual a 0, no muestra los registros.

Tampoco serán visibles para los anónimos los nuevos usuarios que no se hayan identificado en ninguna ocasión en los diferentes listados o bloques, por ejemplo el de últimos usuarios. Como posible solución a este problema, en el caso de que sea el resultado de una migración, se pueden actualizar en la tabla de usuarios aquellos que no se hayan identificado nunca, poniendo su fecha de último acceso igual a su fecha de creación.

UPDATE users SET access=created WHERE access = 0;

O si solamente necesitamos que se muestren los últimos usuarios en un bloque, sin incluir aquellos que no se han llegado a identificar nunca, para evitar que a los usuarios anónimos se les muestre un contenido al que no van a poder acceder, podemos hacer un snipplet de código php con el filtro que necesitemos. En Administrar » Construcción del sitio » Bloques le damos a Añadir Bloque, le ponemos un nombre, por ejemplo "Últimos usuarios" y en el cuerpo añadimos algo como esto:

<?php
$sql
= "SELECT * FROM {users} WHERE status !=0 AND access !=0 AND uid > 1 ORDER BY created DESC";
$result = db_query_range($sql,0,5);
echo
'<ul>';
while(
$data = db_fetch_object($result)) {
  echo
'<li>';
  print
l($data->name, 'user/'.$data->uid);
  echo
'</li>';
}
echo
'</ul>';
?>

Es importante que el filtro sea PHP Filter, para que se pueda ejecutar correctamente. El último paso es colocar el bloque en la región donde queramos mostrarlo.

categorías: 
drupal: 
 
 
 

Creative Commons License
Excepto donde se indique lo contrario, el contenido de este sitio está sujeto a una licencia de Creative Commons.