Todo el que se haya encontrado ante la situación de intentar asignar contenidos de diversos tipos a un menú de manera automática, debería considerar la instalación del módulo Menu Trails.
Hasta que lo encontré y entendí cómo funciona, sólo tenía dos alternativas para resolver este problema: Generar manualmente la asignación en el menú cada vez que creaba un contenido, o realizar batidas masivas usando Administration views, lo que, en cualquier caso, requería un esfuerzo de memoria considerable.
Con Menu Trails, la tarea se simplifica considerablemente. De esta manera, todos los posts de mi blog activan la pestaña Blog del menú, así como los contenidos de tipo Proyecto activan la pestaña Proyectos. Y es así porque son, en efecto, elementos de menú hijos de sus respectivas secciones.
En la página de configuración del módulo (admin/build/menu/trails), se observan varias opciones, pero las más interesantes son Node types y Categories. La primera permite asignar un elemento de menú por defecto a cada tipo de contenido; la segunda, que se repetirá por cada taxonomía, permite asignar un elemento de menú por defecto a cada término de la taxonomía (o vocabulario).
Para que la técnica funcione, hay que tener en cuenta otro detalle más. Aunque la construcción de los menús varía según los hooks que se hayan aplicado en el tema, es probable que se deban modificar las propiedades del estilo active-trail:
<ul class="pages"><li class="menu-659 first"><a title="" href="/presentacion">Blog</a></li><br /> <li class="menu-581"><a title="" href="/quien-soy">Quién soy</a></li><br /> <li class="menu-747"><a title="" href="/servicios">Servicios</a></li><br /> <li class="menu-717"><a title="" href="/clientes">Clientes</a></li><br /> <li class="menu-716"><a title="" href="/proyectos">Proyectos</a></li><br /> <li class="menu-1217 active-trail active"><a class="active" title="" href="/filosofia">Filosofía</a></li><br /> <li class="menu-259"><a title="" href="/contacto">Contacto</a></li><br /> <li class="menu-582 last"><a title="" href="/sitemap">Mapa del sitio</a></li><br /> </ul>
Resaltando dicho estilo, cada vez que accedamos a un tipo de contenido o a un término de taxonomía regulado por Menu trails, la pestaña correspondiente del menú debería activarse.
Hoy he descubierto el módulo Admin Role, que permite asignar todos los permisos disponibles a un rol concreto. Por defecto, busca roles que se llamen admin o adminstrator, pero se puede asignar a otro cualquiera desde las opciones de usuario (admin/user/settings).
Resulta especialmente útil cuando queremos crear perfiles para un portal, limitando los privilegios de administrador a un rol nuevo.
Renovación del mantenimiento del portal web del Laboratorio Ocupacional. Evolutivos y adaptaciones a medida que no entran en el alcance del proyecto inicial.
Renovación del mantenimiento del portal web del Laboratorio Ocupacional (sin perjuicio de la garantía del producto). Evolutivos y adaptaciones a medida que no entran en el alcance del proyecto inicial.
Desarrollo y diseño del portal web de Comerci@, una nueva aventura empresarial que he iniciado con dos socios.
La tecnología empleada es Drupal con modificaciones y ajustes para que la experiencia de usuario sea lo más agradable posible. Está basado en un tema gráfico open source (Company) y un logotipo libre (Orbz Nature).
Uno de los módulos más inestables de Drupal es Administration menu. Sin embargo, resulta de una utilidad inestimable ya que evita ensuciar el diseño del portal con un bloque destinado a las tareas administrativas.
Ayer advertí que uno de los sitios que gestiono, había perdido la opción de crear contenido (create content). Las secciones seguían existiendo, ya que se podía navegar hasta node/add. Como siempre, cinco minutos de búsqueda en Google permiten ahorrar horas de depuración directa. El resultado es un hilo de los foros de Drupal donde se describe minuciosamente el error y se proporciona un parche para solucionarlo.
Cuando estaba realizando el diseño técnico del portal, pasé bastante tiempo analizando el problema del spam. Por una parte, podía optar por usar CAPTCHA en todos los formularios, pero esta medida es un obstáculo para los usuarios y trato de evitarla siempre que puedo. Por otra parte, podía utilizar algún módulo anti-spam de Drupal, pero consideré que cargaría el sistema innecesariamente, ya que mi parroquia suele ser escasa (eso sí, muy selecta).
Hoy me he topado con mi equivocación materializada en cientos de comentarios anunciando medicamentos de venta online. La situación se ha visto agravada debido a que la notificación de nuevos comentarios no estaba funcionando. Si hubiera pasado una semana sin revisar el portal a fondo, la tarea de eliminar todos los comentarios me hubiera supuesto horas de trabajo inútil. Para colmo, mi amigo Samuel había inaugurado los comentarios hace varios días y no me había enterado hasta ahora.
Para evitar la terrible lacra del correo basura, he instalado el módulo AntiSpam, un cómodo wrapper de servicios tan conocidos como Akismet, TypePad AntiSpam y Defensio. Gracias a una interfaz simplificada, la configuración se convierte en una tarea sumamente sencilla, y la mayor ventaja es que no molesto a mis lectores con pruebas de humanidad innecesarias.
Actualización 22/05/2010, 3:25. Constato que el módulo está funcionando. En el tiempo de escribir esta nota, ya hay trece comentarios basura.
Actualización 22/05/2010, 13:30. En LevelTen hacen una excelente recopilación de módulos anti-spam para Drupal. Sopesando diversos criterios, como no incordiar al usuario y evitar dependencias de terceros, entre otros, he decidido probar Spamicide, un ingenioso método que impide a los spammers llegar siquiera al estado de comentario no aprobado: directamente los detiene antes de entrar. Llevaba desde anoche recibiendo ofertas de Cephalexin (no sé si complex o simplex), y tras la instalación del módulo, la avalancha parece haberse detenido.
Actualización 23/05/2010. El módulo parecía funcionar al principio, pero horas después volví a recibir spam. El problema se resume en dos errores de programación que, por suerte, están documentados y resueltos aquí y aquí. Para la gestión de los comentarios, recomiendo activar las notificaciones del módulo AntiSpam en el perfil de usuario (epígrafe AntiSpam moderator settings), pero activando la opción Only content needing approval. De esta manera, Drupal envía notificaciones por correo para aquellos comentarios que requieren aprobación.
Gracias a mi amigo @sroblesnarbona, me entero de que la portada del sitio no estaba funcionando. Lo curioso es que yo la estaba viendo bien en todo momento. Tras un par de pruebas, he descubierto el error.
Cuando preparé la difusión del portal, pensé que sería buena idea que el público llegara a una página especial donde se condensara, de un vistazo, todo lo que iba a encontrarse en las páginas interiores. Drupal dispone de Page Theme, un magnífico módulo para presentar páginas con un tema visual diferente, así que creé un tema nuevo para el punto de entrada, de forma que tenemos New Corporate Light para éste, y New Corporate para el resto.
Ayer, en vista de que ya casi nadie estaba accediendo a través de esa página, hice lo siguiente para redirigir el tráfico a la portada:
Hasta aquí todo bien, salvando el hecho de que a partir de ese momento, Drupal estaba considerando que el tema de la portada es New Corporate Light (sin menú, no sidebar, ni pie). Yo no había detectado el problema porque estaba autenticado, lo que, de alguna manera que no puedo precisar, influye en la presentación del tema.
Una vez más, agradezco a @sroblesnarbona su atención y el certero aviso que me ha permitido solucionar el problema y aprender algo nuevo.
Seguro que se han fijado en el botón que aparece a la derecha de los títulos de los posts. Es el contador de retweets de Tweetmeme, que permite, de un vistazo, comprobar el impacto social de un blog.
Drupal cuenta con un módulo que incrusta este contador de manera automática, pero parece que no funciona demasiado bien porque siempre muestra un mensaje de error provocado por timeout. Mientras averiguo si la causa del problema es un error de configuración por mi parte o se trata de un bug en el módulo, recomiendo usar el siguiente workaround para disponer del botón (recomendado por los chicos de Tweetmeme):
En la plantilla donde se desea tener el botón (node.tpl.php, node-blog.tpl.php, etc.), hay que incluir el siguiente fragmento de código:
<?php global $base_url; ?><br /> <script type="text/javascript"><br /> tweetmeme_url = '<?php print $base_url; ?>/<?php print $node_url ?>';<br /> </script><br /> <div class="tweetmeme tweetmeme-button"><br /> <script type="text/javascript" src="<?php print $base_url; ?>/misc/button.js"></script><br /> </div>
Aunque parezca de perogrullo, justo es decir que yo he realizado mi propio portal web. No es extraño que muchos profesionales del sector encarguen esta tarea a terceras personas, lo cual no deja de tener su lógica, ya que no hay cliente más exigente que uno mismo. Pero por ese preciso motivo, he decidido que este proyecto debía ser una tarea personal.
El portal web está implementado en Drupal con un tema propio, usable y accesible, y una serie de modificaciones para optimizar su funcionamiento y hacerlo más amigable para los visitantes.
Seleccione un término para iniciar una búsqueda.