Mostrando entradas con la etiqueta drupal. Mostrar todas las entradas
Mostrando entradas con la etiqueta drupal. Mostrar todas las entradas

lunes, 10 de noviembre de 2014

Formateando language icons en horizontal

El bloque language icons en Drupal viene por defecto con un formato de lista vertical con se puede ver aquí:
 

Si queremos modificar este formato podemos jugar con las CSS del módulo locale. En concreto iriamos al fichero:
modules/locale/locale.css

En este fichero podemos encontrar diferentes clases CSS que podemos modificar para cambiar el aspecto del listado de idiomas. En nuestro caso lo que queremos es que aparezcan en horizontal, para ello insertamos este código en el fichero:

#block-locale-language ul li
{
display: inline;
list-style: none;
}

Lo que convierte el listado de idiomas en algo tal que así:



Como se puede ver hemos quitado las viñetas y formateado la lista horizontalmente.




lunes, 3 de noviembre de 2014

Solucionando problema de seguridad de inyección de SQL en drupal 7

En primer lugar hay que decir que este fallo de seguridad afecta únicamente a las instalaciones de Drupal 7, por lo que no debemos perder tiempo actualizando versiones menores que la 7. 
Es necesario actualizar lo antes posible debido a que numerosos bot podrán acceder a tu servidor de forma automática y explotar el bug. Aunque hayas conocido un poco tarde la existencia del bug has de actualizar cuanto antes pues, como dice el dicho, más vale tarde que nunca.
Básicamente la solución al bug es actualizar el Drupal Core a su versión 7.32 y en algunos casos hacer una pequeña modificación en el archivo .htdocs de /sites/default/files.
En este diagrama podemos ver las decisiones a tomar en cada caso.

Descripción del fallo de seguridad altamente crítico

Descarga de Drupal Core 7.32

Modificación de .htdocs del directorio files

  • No se debe cambiar el .htdocs de la raíz de drupal solo el de /sites/default/files
  • La pagina de "Informe de Estado" de Drupal nos avisará de la necesidad de hacer este cambio.
  • El código a incluir es:
# Turn off all options we don't need.
Options None
Options +FollowSymLinks

# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006

  # Override the handler again if we're run later in the evaluation list.
  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003


# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

Acciones tras aplicar la solución

Tras aplicar estos cambios podemos estar seguros de que a partir de ese momento no somos vulnerables a los robots que intenten explotar la vulnerabilidad de inyección de SQL en nuestro servidor. De lo que no podemos estar seguros es de que anteriormente el servidor no haya sido comprometido.
En la siguiente página tenemos un listado de diferentes problemas que se han encontrado en servidores que ya han sido atacados, lo que nos puede ayudar a detectar problemas similares en nuestro servidor.
Espero que esta recopilación de información para solucionar el problema os sea de ayuda.

martes, 25 de febrero de 2014

Reseteando los contadores de páginas leídas en Drupal

Si en algún momento tenemos la necesidad de poner a cero los contadores de páginas leídas de Drupal podemos hacerlo directamente en la base de datos.

La tabla donde se almacena esta información es:
node_counter
Y dentro de ella tenemos los atributos totalcount y daycount.
Para resetealos podemos ejecutar las siguientes sentencias SQL que resetearan los contadores en toda la tabla:
UPDATE node_counter set totalcount = 0;
UPDATE node_counter set daycount = 0;

martes, 16 de octubre de 2012

Editor Wysiwyg con file manager en Drupal 7

Para instalar un editor WYSIWYG en Drupal 7 y que además nos permita utilizar un file manager en condiciones necesitaremos los siguientes módulos:
Además tenemos que descargar el editor CKEditor para utilizarlo a através del módulo WYSIWYG
Para comenzar tenemos que instalar los módulos en nuestro Drupal 7, tras ello descargaremos el CKEditor y lo descomprimimos en la carpeta \sites\all\libraries\ (sino existe la creamos).

Una vez hecho esto nos vamos a la pantalla de configuración siguiendo esta ruta Configuration > Wysiwyg Profiles.

Tal y como vemos en el pantallazo elegimos el CKEditor para Filtered HTML y para Full HTML.

Tras ello pulsamos "edit" para configurar el editor. En la sección "Buttons and plugins" seleccionamos todos los botones (o solo aquellos que nos interesen) y muy especialmente el botón IMCE que es el que nos permitirá acceder al gestor de ficheros o file manager.

Tras esto ya puedes crear una nueva publicación en Drupal utilizando el editor CKEditor + IMCE

lunes, 4 de junio de 2012

Configurando galería de imágenes en Drupal 7 con Gallery Formatter

Actualmente en Drupal 7 tenemos el problema de que no existe una solución tan clara como en Drupal 6 para las galerías de imágenes. De momento el proyecto Media y Media Gallery estan en estado beta por lo que tenemos que buscar otra alternativa.

El proyecto Gallery Formatter actualmente funciona bastante bien y es una de las mejores opciones para montar una galería de fotos en Drupal 7 en este momento.

Tras instalar el módulo de forma normal tenemos que crearnos un nuevo tipo de contenido en la administración de Drupal, para ello vamos a:
  • Administración > Estructura > Tipos de contenido > Añadir tipo de contenido
Dentro de esta pantalla le damos un nombre, por ejemplo Galerías de Imagen y seguidamente  pulsamos "Guardar y añadir campos".

En la siguiente pantalla agregamos campo existente poniendo de nombre "fotos" y seleccionando "Imagen: field_image (Imagen)", hacemos click en guardar.

En la siguiente pantalla buscamos el apartado "Opciones del campo fotos" y ponemos:
  • Vista previa de estilo de imágen: Medium.
  • Número de valores:Ilimitado. Esto sirve para poder añadir un número ilimitado de fotos en cada galería. 
Hacemos click en guardar la configuración.

Finalmente tenemos que decirle al tipo de contenido que nos muestre las fotos con gallery formatter. Para ello nos vamos a:
  • Administración > Estructura > Tipos de contenido > Gestionar presentación.
En el campo foto, seleccionamos en el desplegable la opción jQuery Gallery y guardamos.

Ahora ya lo tenemos todo preparado, solo hemos de crear una nueva página del tipo de contenido creado y añadir fotos. Estas se mostraran en el formato de galería que nos provee Gallery Formatter.




lunes, 14 de mayo de 2012

Página Inicial Predeterminada Multilenguaje en Drupal 7

Cuando estamos desarrollando proyecto web multilenguaje basado en Drupal podemos necesitar configurar una Pagina Inicial Predeterminada.

Esta opción la encontramos en:
  • Drupal 6: Administrar > Configuración del sitio > Información del sitio
  • Drupal 7: Configuración >  Sistema > Información del Sitio
En Drupal 6 cuando configuramos una página como Página Inicial Predeterminada y la traducimos el sistema nos la muestra en el idioma adecuado sin configuraciones adicionales.

Sin embargo en Drupal 7 esto no funciona, y tenemos que activar las Variables Multilenguaje para poder tener esta funcionalidad.

Para ello, en primer lugar,  tenemos que activar el módulo Variable Translation:
  • Módulos > Multilingual - Internationalization > Variable Translation.
Tras la activación del módulo nos vamos a su página de configuración:
  • Configuración > Regional e Idioma > Multilingual Settings > Variables.
En esta pantalla habilitamos la variable Página Inicial Predeterminada.

Como último paso nos vamos a la pantalla de Información del sitio, donde veremos un aviso que dice "There are multilingual variables in this form".

Ahora tenemos que ir seleccionando cada idioma e introduciendo en el campo Página Inicial Predeterminada la ruta de la versión de la página inicial en el idioma correspondiente.

Teóricamente tenemos que poner la url limpia de la página pero en mi caso esto no funcionó. Para hacerlo funcionar he introducido la url con el número de nodo, por ejemplo "node/100", de cada una de esas páginas consiguiendo finalmente que la página inicial sea multilenguaje.





lunes, 23 de enero de 2012

Ficheros adjuntos en artículos y páginas de Drupal 7

Para poder subir archivos adjuntos en artículos o páginas de Drupal 7 tenemos que habilitar el campo en el tipo de contenido.

Para ello tenemos este tutorial que nos lo explica en detalle.

Working with files in Drupal 7 | drupal.org


jueves, 13 de octubre de 2011

Redirect 403 to User Login - Drupal Module Reviews and Ratings

El siguiente módulo nos resuelve un pequeño fallo de usabilidad en los mensajes de correo electrónico de foros de drupal. Cuando un foro es privado los mensajes vienen con enlaces que al pinchar nos llevan a páginas no encontradas cuando no has iniciado sesión.

Este módulo realiza una redirección a la página de inicio de sesión y luego, si inicias sesión con éxito, te devuelve al mensaje del foro correspondiente.

No es una gran funcionalidad pero mejora mucho la usabilidad para personas poco habituadas al trabajo en la web.


Redirect 403 to User Login - Drupal Module Reviews and Ratings

jueves, 24 de febrero de 2011

Permisos de usuario para la edición de páginas de Drupal

Para permitir la edición de página en una instalación de Drupal por otro usuario que no sea el administrador hemos de proveerle con los siguientes permisos:
  • administrar filtros (administer filters)
  • edit any page content
  • otros permisos que sean necesarios.

sábado, 23 de octubre de 2010

Utilizando Views en páginas internacionalizadas

 

Quan tenim un lloc web internacionalitzat amb Drupal i volem utilitzar les capacitats de personalització que el mòdul Views en ofereix la configuració de les vistes es fa una miqueta mes complexa.

Així si fem una vista que mostra, per exemple, els items de una de les nostres taxonomies ens donarem compte de que la vista llista aquests items en tots els idiomes en que existeixen. D'aquesta manera si estem visualitzant la nostra pàgina en idioma anglès la vista mostrarà els items en angles però també en els altres idiomes en que estiguin traduïdes i això, per suposat, no és vàlid.

Doncs bé, per solucionar aquest problema amb els idiomes hem de configurar un filtre a la vista.

Administració > Construcció del lloc > Llista > Editar > Pàgina

Una vegada en aquest lloc hem de fer clic al botó “+” dins del quadre “Filtres”.

Seleccionem la propietat “Node translation: Language” i fem clic en “Add”.

Finalment hem de configurar el filtre i per això fem clic sobre ell. En el diàleg següent seleccionem “Operator: Is one of” i “Language: Curren user’s language”. Aquesta configuració és la que farà que només es mostre l'idioma que el usuari està utilitzant.

Per últim recordeu que sempre hem de guardar la vista per a que se apliquen els canvis.


Cuando tenemos un lugar web internacionalizado con Drupal y queremos utilizar las capacidades de personalización que el módulo Views ofrece la configuración de las vistas se hace un poquito mas compleja.

Así si hacemos una vista que muestra, por ejemplo, los items de una de nuestras taxonomías nos daremos cuenta de que la vista lista estos items en todos los idiomas en que existen. De este modo si estamos visualizando nuestra página en idioma inglés la vista mostrará los items en ángulos pero también en los otros idiomas en que estén traducidas y esto, por supuesto, no es válido.

Pues bien, para solucionar este problema con los idiomas tenemos que configurar un filtro a la vista.

Administración > Construcción del lugar > Lista > Editar > Página

Una vez en este lugar tenemos que hacer clic al botón “+” dentro del cuadro “Filtres”.

Seleccionamos la propiedad “Node translation: Language” y hacemos clic en “Add”.

Finalmente tenemos que configurar el filtro y por eso hacemos clic sobre él. En el diálogo siguiente seleccionamos “Operator: Is one of” y “Language: Current user’s language”. Esta configuración es la que hará que sólo se muestre el idioma que el usuario está utilizando.

Por último recordad que siempre tenemos que guardar la vista para que se apliquen los cambios.

domingo, 17 de octubre de 2010

Administration menu | drupal.org

Per a facilitar la administració de una instal·lació de Drupal podem instal·lar el mòdul "Administration Menu".



Aquest mòdul ens proporciona un nou menú a la capçalera de la pàgina. Aquest menú té totes les opcions d'administració de Drupal però molt mès accessible i usable.
A més a més aquest menú té algunes opcions extra que normalment no podem trobar al menú d'administració normal. Son aquestes:
administrative_menu
  • Flush all caches: Ens serveixen per a esborrar totes les caches de drupal des de un mateix lloc.
  • Ejecutar cron: Des d'ací podem executar cron molt fàcilment.
  • Run updates: Per a executar la comprovació d’actualitzacions.
  • Deshabilitar módulos de desarrollados: Per a deshabilitar de forma ràpida i fàcil mòduls que poden estar causant problemes.
Com es pot veure aquest mòdul és molt recomanable instal·lar-ho quan estem desenvolupant el nostre lloc web amb Drupal per que ens va a facilitar el treball amb la interfície d'administració de Drupal i és una bona idea que siga el primer mòdul que instal·lem.
Administration menu | drupal.org

Para facilitar la administración de una instalación de Drupal podemos instalar el módulo "Administration Menu". Este módulo nos proporciona un nuevo menú a la cabecera de la página. Este menú tiene todas las opciones de administración de Drupal pero muy mès accesible y usable. Además este menú tiene algunas opciones extra que normalmente no podemos encontrar al menú de administración normal. Son estas:
  • Flush all caches: Nos sirven para borrar todas las caches de drupal desde un mismo lugar.
  • Ejecutar cron: Desde aquí podemos ejecutar cron muy fácilmente.
  • Run updates: Para ejecutar la comprobación de actualizaciones.
  • Deshabilitar módulos de desarrollados: Para deshabilitar de forma rápida y fácil módulos que pueden estar causante problemas.
Cómo se puede ver este módulo es muy recomendable instalarlo cuando estamos desarrollando nuestro lugar web con Drupal por que nos va a facilitar el trabajo con la interfaz de administración de Drupal y es una buena idea que sea el primer módulo que instalamos.
Administration menu | drupal.org

miércoles, 12 de mayo de 2010

Configurando newsletter en drupal 6 para su envío en codificación diferente a UTF-8

Drupal 6 es un gestor de contenidos moderno que utiliza enteramente la codificación de caracteres UTF-8, esto es de gran ayuda cuando tenemos que implementar sitios web internacionalizados pues podemos utilizar cualquier juego de caracteres por extraño que sea.

A la hora de enviar una newsletter o boletín de noticias utilizando Drupal 6 tenemos que los emails van a ser enviados también utilizando la codificación UTF-8. Esto en principio no debería ser un problema pero si en nuestra organización se usa un cliente de correo antiguo es posible que los emails se vean con caracteres extraños.

Para evitar esto tendremos que enviar la newsletter en codificación Latin-1 o ISO 8859-1 algo que drupal no puede hacer de forma sencilla.

Esta solución se basa en la utilización de la función php utf8_decode que utilizaremos en diferentes partes del código fuente:

Fichero htmlmail.module:
En la función htmlmail_mail_alter sustituimos la siguiente línea de código
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed;';
por
$message['headers']['Content-Type'] = 'text/html; charset=ISO-8859-1; format=flowed;';

Fichero simplenews.module:

En la función simplenews_mail añadimos estás líneas de código en negrita:

$subject = theme('simplenews_newsletter_subject', $name, $node->title, $message['language']);
$subject = str_replace(array("\r", "\n"), '', $subject);
$subject = utf8_decode($subject);
$message['subject'] = $messages[$nid][$langcode]['subject'] = $subject;

// Buffer body text node and language specific       
$body = utf8_decode($body);
$messages[$nid][$langcode]['body'] = $body;

// Build and buffer message footer
$footer = theme(array('simplenews_newsletter_footer__'. $context['node']->simplenews['tid'], 'simplenews_newsletter_footer'), $context['node'], $key, $message['language']);
$footer = utf8_decode($footer);
$messages[$nid][$langcode]['footer'] = $footer;

Con estos cambios nuestra newsletter se verá correctamente en clientes de correo antiguos y nuevos, eso si, siempre tendremos que usar caracteres latinos en los emails.

Newsletter con Drupal

Para crear una Newsletter o Boletín de noticias basandonos en Drupal necesitamos los siguientes módulos de Drupal 6:
  • Relative to Absolute Filter
  • HTML Mail (este módulo sustituye a Mime Mail el cual da múltiples problemas al realizar el envío en formato Html)
  • Simplenews
  • Simplenews action
  • Simplenews Statistics
  • SMTP Authentication Support   
  • MIME Mail
Con estos módulos vamos a tener un completo sistema de newsletter con la posibilidad de tener varias listas de correo, importación y exportación de emails suscritos, estadísticas de éxito del envío, etc...

miércoles, 21 de octubre de 2009

Problema con el envío de correo vía smtp module en Drupal

Uno de los problemas que podemos encontrarnos para que funcione el envío de correo en Drupal mediante servidor externo SMTP es que hayamos deshabilitado la función “fsockopen” dentro de la directiva “disabled_functions” del nuestro php.ini securizado para producción.

Si es así puede ser el motivo por el que no se envían los correos cuando estamos ejecutando PHP sobre IIS.

jueves, 24 de septiembre de 2009

Permitir copiado del contenido al traducir en Drupal 6

Cuando vamos a traducir un nodo en Drupal 6 como administradores podemos ver que se nos copia el contenido del idioma original al cuadro de edición de la noticia en el nuevo idioma.

Si queremos que esto también ocurra con usuarios no administradores tenemos que activar el permiso de filtros para el rol que nos interesa:

módulo filter -> administrar filtros (activar)

Una vez activado automáticamente nos aparecerá el texto original para poder ir traduciendo sobre el mismo. Además también es útil porque pone las imágenes originales en el texto en el nuevo idioma por lo que el traductor no necesita volver a colocarlas.

lunes, 14 de julio de 2008

Error en drupal tras activar modulos de internacionalización (i18n)

Tras activar los módulos de internacionalización me aparece el siguiente error:

user warning: Unknown column 'FALSE' in 'where clause' query: SELECT nt.type, nt.* FROM node_type nt WHERE (FALSE) ORDER BY nt.type ASC in c:\#######\######\includes\database.mysql.inc on line 172.

Parece que el problema es esa clausula "FALSE" que no es soportada por la versión de mysql 4.0 sobre la que estoy instalando el drupal.

Para hacer lo mismo que "FALSE" se puede utilizar "0=1".

Así pues en el fichero i18ncontent.module línea 31 cambiamos FALSE por 0=1

lunes, 28 de mayo de 2007

Módulo para importar usuario desde un fichero de excel

Este módulo de Drupal permite importar un listado de usuarios desde un fichero de excel.

User Import

martes, 22 de mayo de 2007

Manual libro sobre Drupal "Pro Drupal Development"

Drupal, one of the leading open source content management systems, is amazing. The more I learn about it the more impressed I am by the depth of thought (and amount of work) that’s gone into making it so powerful and flexible.

But, thanks to its complexity and to the large gaps and flaws in its documentation (poor documentation being a common problem with open source projects), Drupal can also be a huge time sink, frustration generator and spawner of traffic on the drupal.org forums. Now, though, comes relief: “Pro Drupal Development“, by John K. VanDyk and Matt Westgate, both of whom are key contributors to the Drupal project. If you’re thinking about doing anything beyond just installing Drupal and using its admin interface, get this book. It could quite likely save you weeks of trial and error.