Resumen de la I drupalada en barcelona

Recién he llegado a casa de la I edición de la drupalada en Barcelona, finalmente ha tenido bastante acogida, hemos llegado a ser 18 drupaleros reunidos en el Michael Collins. Ha sido una reunión informal, con cerveza y conversaciones distendidas sobre drupal y algun off topic que otro durante un par de horas. Los perfiles de los asistentes eran muy heterogéneos, había gente con experiencia desarrollando con Drupal, pero también bastantes que acababan de empezar o se estaban planteando empezar a utilizarlo.

Asistieron a la reunión gente de bef5, cmedia, meristation, de drupal.cat y por supuesto, el equipo completo de neurotic. Seguro que me dejo gente, mil disculpas! Robert Garrigós comentó que desde drupal.cat siguen haciendo talleres el segundo sábado de cada mes siempre que tengan algún tema/ponente voluntario, pero que no abundan e hizo un llamamiento a la colaboración de todo aquel que quiera proponer algún tema, ya sea para sugerirlo o incluso impartirlo, puede proponerlo en los foros de drupal.cat.

La gente de cmedia comentó que necesitan contratar un diseñador web con conocimientos de Drupal y todos coincidimos que no es fácil encontrar perfiles técnicos "drupaleros". Os dejo la foto de familia, si tenéis perfil en facebook, podéis "tagearos" vosotros mismos en las fotos, en la galería de la drupalada. IMGP1328

Y como bonus, el equipo de neurotic con un atuendo especialmente diseñado para la ocasión ;)

IMGP1330IMGP1331

Los que habéis asistido, ¿qué os pareció? ¿pensáis que debería ser mas formal? ¿deberíamos repetirla periódicamente?

Actualizo: Marc me comenta que una de las próximas ponencias podría ser sobre CCK, ha dejado propuestas en este post de drupal.cat y buscan alguien que pueda impartir la sesión

I edición de la drupalada: reunión de Drupal en Barcelona

Desde Neurotic hemos decidido organizar una reunión en Barcelona para drupaleros, totalmente informal el próximo jueves 27 de Noviembre a las 19:00.

¿El lugar? Tras algunas propuestas, hemos reservado sitio en el pub Michael Collins, muy cerquita de la Sagrada Familia

View Larger Map

El nombre y el cartel del evento son idea de Jordi: Drupalada pero se admiten sugerencias de diseño para futuros carteles.

La reunión está abierta a todos los interesados en Drupal, desarrolladores, webmasters, emprendedores, diseñadores, y gente curiosa en general, si te interesa Drupal y tienes libre el jueves 27 de Noviembre a las siete de la tarde, ¡te esperamos!.
Hablaremos de lo que se tercie y servirá para sentar las bases de futuras reuniones.

También hemos creado un grupo en facebook para que nos vayamos conociendo antes ;)

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:

$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 '

    ';
    while($data = db_fetch_object($result)) {
    echo '
  • ';
    print l($data->name, 'user/'.$data->uid);
    echo '
  • ';
    }
    echo '

';
?>

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.

Nueva versión del rediseño de Drupal.org

Ayer hicieron pública la séptima iteración del rediseño que va a sufrir drupal.org, en el blog de uno de los miembros del equipo, disambiguity, se pueden ver las grandes novedades y en la página de seguimiento, se puede acceder a la mayoría de prototipos del diseño.

De momento, la portada de drupal.org quedaría así:

Drupal triunfador absoluto en los premios "Packt Open Source CMS"

Tras enterarnos ayer de que Drupal había ganado el premio a mejor CMS escrito en PHP en los premios que convoca anualmente la editorial PacktPub, hoy ha salido el veredicto al mejor CMS en general, y por segundo año consecutivo, Drupal se lleva el gato al agua. Joomla ha quedado segundo en ambas categorías. Podéis consultar el listado completo de resultados desde aquí.

La cuantía total de los premios es de 5000$ por el premio a mejor CMS y 2000$ por el premio a mejor CMS en PHP. También hay que felicitar a Earl Miles, que ha ganado el premio a la persona individual más valiosa del año para Drupal (MVP), Earl es el responsable de módulos tan importantes como Views o Panels y colabora en decenas de proyectos en drupal.org, para ver que se lo merece solamente hace falta mirar las colaboraciones en su perfil.

Actualizo: En drupal.org proponen "diggear" la noticia para que el mundo se entere de que existimos, añado el widget que facilita la tarea ;)

Rediseño de drupal.org

El rediseño de drupal.org está en una fase muy avanzada, y la verdad es que, en mi opinión, Mark Boulton y su equipo están haciendo un trabajo estupendo, sobre todo en lo participativo y abierto que está siendo todo el proceso.

Decidieron hacer un proyecto abierto, con la participación de toda la comunidad, hay un grupo de soporte, un usuario de twitter donde van publicando las novedades, un grupo de flickr con algunas capturas, pero sobre todo se puede seguir el proceso del lavado de cara que le estan dando a drupal.org en una web en la que muestran el aspecto de los prototipos, donde, además de la estructura básica, wireframes y navegación, empieza a haber capturas del posible diseño visual, muy limpio y bien estructurado.

Es muy curioso ver las imágenes del proceso de diseño del nuevo logo de la web, que será un wordmark. En el blog de Leisa Reichelt se puede ver también la evolución del proceso, con detalles técnicos sobre los wireframes. Hay un par de entradas con algunas alternativas antiguas para el rediseño del logo, aquí y aquí.

Votaciones abiertas para los mejores CMS Opensource en PacktPub

El premio anual al mejor sistema de gestión de contenidos (CMS) en código abierto que patrocina la editorial PacktPub ya ha publicado sus nominaciones para 2008 y Drupal está presente en dos categorías: Best PHP Open Source CMS Esta categoría premia a los mejores CMS Open Source escritos en PHP, y comparte nominaciones con CMS Made Simple, ez Publish, Joomla, y XOOPS. Esta categoría tiene un premio de 2000$ para el ganador y 500$ para segundo y tercero. En 2007 ganó Joomla por delante de Drupal, que fue segundo y e107 (que no está nominado este año) que fue tercero. Open Source CMS Award Overall Esta es la categoría principal, donde se vota al mejor CMS Open Source del año. Están nominados, además de Drupal, Joomla, DotNetNuke, Plone y TYPOlight. En 2007, ganó Drupal, por delante de Joomla y tercero quedó CMS Made Simple. Esta es la categoría con el premio más cuantioso, 5000$ para el ganador, 3000$ para el segundo y 2000$ para el tercero.

Vota a Drupal como el mejor CMS y también como el mejor CMS en PHP. Aquí puedes ver un resumen comparativo del uso de los diferentes CMS en 2008.

Número de páginas erróneo con pager_query y theme_pager y el uso de $count_query

Hoy me he encontrado con este problema, cuando intentas paginar una consulta que tiene una cláusula DISTINCT para eliminar duplicados (o un GROUP BY equivalente), el número de páginas resultantes en el theme_pager es incorrecto.

¿por qué pasa esto?

En realidad, lo que pasa es que el pager_query inicializa una serie de variables globales que utiliza el theme_pager, entre ellas, el total de elementos y el número de páginas totales. Estas variables globales se ven alteradas al realizar la consulta que cuenta los registros devueltos, ya que filtra el DISTINCT.

por ejemplo

Vamos a intentar sacar paginados todos los términos de taxonomía utilizados en la web, para ello unimos las tablas term_node, que tiene los términos usados en cada nodo y term_data, que contiene información de cada término, por ejemplo, su nombre.

<?php
$sql = "SELECT DISTINCT td.name AS term_name, t.tid
            FROM term_node t
           JOIN term_data td ON t.tid = td.tid";
$result = pager_query($sql, 20);
while ($data = db_fetch_object($result)) {
  echo l($data->term_name,"taxonomy/term/".$data->tid) . "<br/>";
}
print theme('pager');
?>

Aquí podéis ver el resultado, las primeras páginas sacan los términos correctamente, pero hay más páginas de las que debería y están vacías. Esto es porque al contar, ha eliminado el DISTINCT y muestra todas las categorías por cada nodo, sin eliminar los duplicados.

¿cómo se resuelve

Hay que utilizar el cuarto parámetro del pager_query, $count_query, y pasarle una consulta que devuelva el número de registros diferentes que devuelve la consulta con el DISTINCT.

el ejemplo solucionado

$sql = "SELECT DISTINCT td.name AS term_name, t.tid
FROM term_node t

Más vistas con argumentos en Drupal: jugando con las taxonomías

Una de las grandes ventajas de las vistas con argumentos en Drupal es el juego que te permiten con las taxonomías, de forma bastante simple, podemos hacer que se nos muestre información relacionada con ciertas categorías, y complicándolo un poquito más, podemos realizar cosas como las que pregunta cdp en este comentario:

Quiero hacer una vista que al hacer click sobre un nodo me muestre todos los nodos que tengan los mismos tags que el nodo sobre el que se ha hecho click. He creado el vocabulario, pero por ahora no he conseguido crear una vista que me muestre los nodos comunes a los vídeos. ¿Solucionaría mi problema una vista con argumentos?

Es decir, en una vista de tipo bloque, mostrar todos los nodos que compartan tags con el que estamos visualizando. Esto también se puede hacer con las vistas con argumentos

Nota: Para estos ejemplos he creado varios nodos con ciudades, cada ciudad pertenece a un país y tiene un idioma, ambas características marcadas por la taxonomía.

Páginas