drupal

Registro de Usuario solo con Correo Electronico en Drupal

Drupal trabaja con dos datos de usuario (username, correo electronico) para la gestion de usuario esto  complicando un poco la gestion del administrador y tambien del usuario final ya que se puede olvidar del nombre de usuario que ingreso al momento de crear la cuenta. Para solucionar este problema la comunidad de drupal desarrollo un modulo llamado "Email Registration".

Modulo Email Registration

Permite a los usuarios registrarse e iniciar sesión utilizando sólo una dirección de correo electrónico. Los usuarios pueden iniciar sesión utilizando su dirección de correo electrónico y su contraseña para la autenticación.

Para Instalar el modulo usamos el siguiente comando drush :

drush en email_registration -y
 

Este modulo no necesita ninguna configuracion. el resultado que se busca es inmediato.

Antes:


 

Despues:

 

 



Share this post

Caso de Exito - Recetas Bimbo

El portal Bimbo Recetas busca promover en los consumidores de productos Bimbo diferentes recetas que se acomeden a su estilo de vida. Ofreciendoles alternativas para diferentes momentos del dia o recetas relacionadas con el tipo de producto que suele consumir.

 


 

 

 



Share this post

Como enviar emails en drupal

Para enviar correos en Drupal se debe realizar un procedimiento en 2 etapas.

Primera Etapa - Armar el correo

Aca recolectamos todas la informacion necesaria para enviar el correo y lo enviamos a la cola de correo de Drupal
$to ='youremail@gmail.com;       //gets the current user's mail address
$from = variable_get('site_mail', '');    //admin's mail address
$body = 'Gracias por visitarnos.';
 $attachment = array(
      'filecontent' => file_get_contents('Link to file'),
      'filename' => 'filename.pdf',// You can change the name and extension of the file         you need to send.
      'filemime' => 'text/plain',  
      );
 $params = array(
 'subject' => 'Bienvenido',
 'body' => $body,
 'attachment'=>$attachment,
);
drupal_mail('modulename', 'yourkey', $to, language_default(),$params,$from); 

 

 

Segunda Etapa - Enviar el Correo

En la cola de correos de Drupal, el sistema evalua cada solicitud pendiente de ser enviada y debe llenarse adecuadamente 

function yourmodule_mail($key, &$message, $params){
      switch ($key) {
            case "yourkey":   
                 // Set the mail content type to html to send an html e-mail (optional).
                 $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed';
                 // Grab the subject and body from params and add it to the message.
                 $message['subject'] = $params['subject'];
                 $message['body'][] = $params['body'];
                 if (isset($params['attachment'])) {
                        $message['params']['attachments'][] = $params['attachment'];
                  }
                  break;
          }
}

 



Share this post

Reconstruir cache en Drupal

Drupal maneja un avanzado sistema de cache, que le permite visualizar rapidamente un contenido a pesar de tener multiples query a la base de datos por cada pagina que visualiza.  Sin embargo, cuando se realiza la instalacion o migracion de un sitio drupal, muchas veces no es posible acceder al nuevo sitio ... precisamente por su cache. El sistema de drupal cree que los archivos estan guardados en /home/developer ( estacion de desarrollo ) cuando realmente estan en /var/www/html/produccion  ( servidor principal ) causando que la pagina se quede en blanco. 

Para solucionar este impase, solo debemos limpiar la cache de drupal para que el la vuelva a crear al tratar de entrar al sitio. Hay varias formas de hacer esto:

Panel de Desarrollo

Puedes limpiar la cache de drupal, accediendo al menu de Administracion -> Configuracion -> Desarrollo -> Performance y haciendo click en el boton "Clear all caches"

Claro, si no te carga la pagina de drupal dificilmente podras acceder a dicho menu. Sin embargo, existen otros casos donde se pueden solucionar las cosas limpiando cache. Como por ejemplo, cuando drupal no reconoce un archivo del tema, o hay un problema en la renderizacion.

 

Drush

Esta es mi favorita. Tengo drush en todas mis instalaciones de drupal. Drush es una herramienta de linea de comandos que te permite interactuar con tu instalacion drupal. Para usarla, deberas ir a la carpeta donde esta instalado tu drupal y ejecutar el siguiente comando

drush cc all

El problema con drush, es que si tienes un hosting compartido ... lo mas probable es que no tengas linea de comandos. 

 

Update.php

Tambien puedes limpiar la cache ejecutando el script PHP update.php. Tan solo debes ir a tu navegador y apuntar la siguiente url http://tusitio.com/update.php

Eso si, asegurate previamente que en tu archivo de configuracion la variable $update_free_access este seteada a TRUE, luego de ejecutado esta limpieza deberas volverla a poner en FALSE por seguridad.

 

Base de datos

Por ultimo, si ya estas al borde de la desesperacion ... siempre puedes conectarte a la base de datos y borrar todos los registros de las tablas que se llaman cache_*

 



Share this post

Como funciona Drupal ?

Todas las peticiones a Drupal son atendidas por index.php ejecutandose los siguientes pasos:

Bootstrap

En esta etapa se carga el drupal mismo para atender cada peticion que se le hace al servidor.

Inicializacion

Se carga la configuracion definida en el archivo settings.php y se establece la base URL del sitio web.

Cache de Pagina Temprano

En situaciones con alto trafico se invoca un sistema de cache antes inclusive de conectarse a la base datos. Este etapa solo funciona si se ha configurado la variable page_cache_fastpath a TRUE. Cuando una peticion entra a esta etapa el sistema le devuelve el contenido al navegador y termina el proceso drupal.

Inicializacion de la Base de datos

Se configura y realiza la primera conexion a la base de datos

IP Based Access Control

En este punto drupal bloquea los accesos en funcion del nombre/IP de la maquina cliente.

Inicializacion de la Session

Drupal carga la informacion de la sesion del usuario directamente de la base de datos.

Cache de Pagina Tardio

En este punto, Drupal determina en funcion de la informacion del usuario ( roles, permisos, etc ) si tiene la informacion solicitada en el cache o debe generarse de nuevo. Si tiene la informacion en la cache la solicitud se detiene en ese punto.

Seleccion de Idioma

Drupal determina aca que idioma debe trabajar, y se busca la informacion en el idioma seleccionado.

Path

En esta etapa, Drupal determina quien debe procesar la peticion en funcion de la URL solicitada.

Completada Carga inicial

Llegados a este punto el proceso de carga de drupal a terminado. De aca Drupal, lanza init_hook para que todos los modulos habilitados para el sitio tengan la oportunidad de cargarse.

Procesando la peticion

Drupal envia la peticion ( URL ) a la funcion hook especifica para su procesamiento

Themes

Luego de haber procesado la informacion solicitada, drupal llama al theme para que se encargar de armar la visualizacion de la misma. Al momento de procesar el theme se procesan en el siguiente orden:

  • html.tpl.php Es el archivo encargado de definir el head y el body. Asi como de cargar los estilos y los javascript declarados en el info. Usualmente no es modificado.
  • page.tpl.php Es el archivo encargado de visualizar las regiones declaradas en el info. Aca usualmente se carga el menu principal. 
  • region.tpl.php Este archivo es el encargado de controlar la  visualizacion de las regiones 
  • block.tpl.php Cada region puede tener diferentes blocks que son definidos en el menu Structure -> Blocks. Este archivo se encarga de controlar la visualizacion de cada bloque.
  • node.tpl.php Existe un bloque especial en drupal llamado content. En el caso que nuestra URL apunte a un nodo el contenido de ese nodo se mostrara usando este archivo.


Share this post

Configurar Drupal con Amazon S3

Amazon S3 es la solucion de almacenamiento hoy por hoy mas popular del mercado. Lo usa dropbox, digital ocean, netflix y muchos mas.

La principal ventaja que tiene el servicio S3 ( para mi al menos ) es la seguridad. Restaurar un sitio web, moverlo de servidor es mucho mas rapido. Ya que las imagenes y archivos subidos por los usuarios se encuentra en un servicio tercerizado.

Hoy veremos como configurar nuestra cuenta AWS con un portal drupal, para lo cual utilizaremos las siguientes herramientas: Una cuenta de Amazon S3 ( http://aws.amazon.com ), la linea de comandos de Drupal ( drush ) y el modulo drupal S3FS .

Instalar S3FS

Para instalar este modulo drupal, usaremos DRUSH.

drush en s3fs

Este comando lo descarga e instala el modulo. Sin embargo, sera necesario "compilarlo"

drush make --no-core sites/all/modules/s3fs/s3fs.make

Configurar S3FS

Ahora nos vamos a la seccion de configuracion ( admin/config/media/s3fs ) y copiamos nuestras credenciales de AWS

Las credenciales de AWS las puedes sacar de: https://console.aws.amazon.com/iam/home?security_credential#/home

Una vez copiadas nuestras credenciales ( ACCESS_KEY, SECRET_KEY, S3_BUCKET_NAME, S3_REGION ), seguimos a la seccion de configuracion avanzada y activamos el uso de s3 para los archivos public:///

Y guardamos la configuracion

Clear Cache

Una vez terminada la configuracion, vamos a la url ( admin/config/media/s3fs/actions ) y limpiamos la cache de los archivos

Subir archivos

Para subir los archivos ya existentes a S3, se recomienda usar DRUSH sobre todo si hay una gran cantidad de archivos ( mas de 100 ) o son muy pesados.

drush s3fs-copu-local

Y a partir de ahora tu sitio drupal ya usa el servicio AWS-S3 para todos los archivos subidos por los usuarios. ;) 

 

 

 



Share this post

PLANEA WEB - Minedu

Proyecto del MINEDU desarrollado en conjunto con 86Interactive que busca brindar información actualizada sobre el plan de Educacion Ambiental 2017-2022 a todos los actores educativos ( maestros y directores ) de todo el Perú.

 



Share this post

IASCCS


  • August 2016


  • Temas:

    • drupal
    • php
  • Tipo:




IASSCS Conference 2015


  • August 2016


  • Temas:

    • drupal
    • php
  • Tipo:




PRC


  • August 2016


  • Temas:

    • drupal
    • php
  • Tipo: