Problemas con usuario Anónimo y $_SESSION en Drupal.

Hace algún tiempo que tuve este problema y quizás a más de uno le haya ocurrido, por ello comparto la que fue mi solución.

Al estar en una web como usuario anónimo, Drupal no permitía almacenar nada en sesión  ($_SESSION). En mi caso, necesitaba poder agregar artículos al carro de la compra, aún siendo usuario anónimo.

Después de darle muchas vueltas buscando el error, comprobando que todo estaba correcto ene el código y que en cada refresco de pantalla la sesión desaparecía, decidí tirar mano de la inmensa comunidad que hay detrás de drupal, así pues me puse a indagar.

Encontré las siguientes fuentes de información:
Continue reading

Proceso de desarrollo en proyecto con Drupal II. (Diseño y maquetación del theme)

Después de unos meses de trabajo y coincidiendo con el aniversario de Gestiweb, el mes pasado lanzamos la nueva versión de gestiweb.com

Describí en un post anterior el análisis del proyecto, el proceso de estructurado de la información, tipos de contenidos, relaciones en drupal, etc…
Continue reading

Proceso de desarrollo en proyecto con Drupal ( I. análisis )

Estoy empezando con un nuevo proyecto en el trabajo: Con motivo de su 10º aniversario, se ha decidido darle un lavado de cara a la web de Gestiweb S.L.

La web que hay actualmente en http://www.gestiweb.com data de 2006 – 2007 aprox. y se quiere volver a estructurar los distintos contenidos así como su aspecto.

Se requiere una estructura más optima de contenidos además de una imagen más amigable, adaptada a los tiempos que corren. Pues muchos proyectos y contenidos  realizados en gestiweb, no aparecen en la web ( o no todo lo destacados que deberían ).

¡ Así pues, vamos a intentarlo ! :-)

Se ha decidido contemplar ( a grandes rasgos ) las siguientes secciones:

  • Proyectos
  • Soluciones
  • Tecnologías
  • Servicios
  • Clientes
  • Laboratorio
  • Noticias
  • Artículos

Continue reading

HTML5 “El presente de la web”

Desde hace un tiempo hacia aquí ( sobre todo de mitad a final del 2011 ) se viene hablando mucho sobre todo el tema del HTML5. Bien, pues como dicen en la “Guia de HTML5“:

“HTML5 es el presente de la web y si no estás asimilando lo que está pasando ya eres parte de la vieja generación de desarrolladores. Eso tendría que tenerte preocupado.”

 

En Gestiweb llevamos un tiempo implementándolo, hemos desarrollado varios proyectos en HTML5. Una tienda online http://km42.es , la web de un restaurante http://restauranterufino.com ( diseñados y desarrollados íntegramente aquí en Gestiweb ). Así como varios themes Drupal en HTML5 ( http://eltratadodemaripaz.com , http://blog.eltratadodemaripaz.com, http://www.cuartopensante.com y http://blog.cuartopensante.com diseñados por  “El tratado de maripaz” y desarrollados por Gestiweb).

Logo HTML5

 

 

Ya son bastantes los proyectos que hemos realizados utilizando HTML5, pero este post no es para hacernos propaganda ( :P ) , sino para aportar el enlace a un material que me resulta interesante a modo de introducción en el ”cambio” en la web que es el HTML5, sin morir en el intento.

 

 

El libro se llama: “Guia HTML5. El presente de la web“. Está escrito por @freddier y @cvander, podéis encontrarlo junto con muchísima más información en “mejorando.la

También está en “OpenLibra” (La biblioteca de etnassoft) o en Google Docs

Espero que os sirva de ayuda :-)

¡ Un saludo ! ;-)

Interceptar y validar formularios en Drupal

¿ No se os ha dado el caso de necesitar validar cierto campo de algún formulario en Drupal y no habeis podido hacerlo, o habeis recurrido a algún tipo de parche ?

Ej: Cuando un usuario intente comprar en mi tienda desde los países “A”,”B” o “C” quiero que le deje seleccionar su país, pero que no le deje comprar. En lugar de eso que le salga un mensaje a modo informativo, para que entren en contacto conmigo y hablar de precios.

Bueno, pues voy a explicar una forma lograr esto, trabajando de forma interna con Drupal.

La idea consiste en desarrollar un módulo de Drupal, cuya única tarea sea en el formulario “X” realizar una tarea cuando se cumplan ciertas condiciones.

Un módulo básico de Drupal, consta de 2 archivos:

  1. nombremodulo.info
  2. nombremodulo.module

El archivo nombremodulo.info contendrá lo siguiente:

; $Id: nombremodulo.info,v 1.4 2007/06/08 05:50:56 dries Exp $
name = Modulo Algargar
description = "Modulo para validar el formulario antes de realizar el pedido."
package = "Paquetes Algargar"
version = "6.x-1.0"
core = 6.x
php = 5.0

; Information added by drupal.org packaging script on 2010-12-17
version = "6.x-1.0"
core = "6.x"

Básicamente es información para el drupal.

El archivo nombremodulo.module , que es el que realmente interesa, es quien se encargará de interceptar nuestro formulario. Incluiría lo siguiente:

<?php
// $Id: nombremodulo.module,v 1.414.2.16 2010/08/06 11:10:57 goba Exp $
function algargar_form_alter($form_id, &$form) {
//interceptamos el formulario de revision del pedido
if ($form_id['#id'] == 'nombre-formulario') {
//En caso de haber elegido un país de envío
if($form[post][panes][envio][pais_envio]){
//en caso de que sea A
if($form[post][panes][envio][pais_envio]==620){
$pais='A';
}
//en caso de que sea B
if($form[post][panes][envio][pais_envio]==250){
$pais='B';
}
//en caso de que sea C
if($form[post][panes][envio][pais_envio]==250){
$pais='C';
}
form_set_error('pais_envio', t('Lo sentimos, usted está intentando comprar desde '.$pais.'.
Para compras desde '.$pais.', consulte nuestra tabla de precios '));
}
}
}
?>

Con esto, al intentar comprar desde “A”,”B” o “C”, Drupal nos sacaría un error similar al siguiente:

¡ Si lees esto, y crees que el código es mejorable, o tienes una idea mejor de como hacerlo, no dudes en decirlo ! ;-)

¡Un saludo!