Ir al contenido principal

Drupal 7 con Location + GMap

Hoy he dedicado algunas horas a lograr tener funcionando los módulos de Location y GMap en un proyecto con Drupal 7. En Drupal 6 los había hecho y no recuerdo haber pasado gran trabajo, salvo entender para qué y como funcionan ambos módulos. Pero para eso ya hay alguna información en internet así que no voy a entrar en ese punto.
Cuando se instalan y configuran estos módulos en los tipos de contenidos que tengamos, o que se creen a partir de ese momento, tendremos la opción de permitir agregar 'localizaciones' a los nodos. Esto lo encotramos cuando editamos cada tipo de contenido, como mismo configuramos las opciones para los comentarios, la publicación, etc. de los nodos que se creen dentro de este contenido, como se ve a continuación:



El problema que tenía era que cuando se creaba un contenido, en el formulario se podía georeferenciar sobre un mapa gracias a GMap, pero cuando se renderizaba el nodo mostraba los datos de Location como texto, es decir, la dirección y las coordenadas geográficas, pero no el mapa.
La solución se la debo a un colega del canal #drupal del IRC que me advirtió que Location agrega un tipo de campo 'location' en Fields. Si utilizamos este campo en nuestros tipos de contenido podremos geoposicionar los nodos que se creen.


Luego habrá que configurar el display de ese campo para que se muestre como mapa, porque por defecto muestra la dirección como texto. También tiene la opción de mostrar el texto y el mapa a la vez.

Por último señalar que si en la configuración del tipo de contenido no especificamos que el máximo de localizaciones posibles es 0, cuando se crea un nuevo nodo tendremos el campo tipo location que creamos más la opción de 'Location Information' del tipo de contenido, por lo cual apareceran 2 mapas en el formulario y puede crear confusiones a los usuarios. Así que recomiendo ajustar a 0 las localizaciones en el tipo de contenido para tener sólo en el formulario el campo 'location'.


Comentarios

Anónimo ha dicho que…
Hola. Estoy intentando hacer funcionar los módulos de Gmap y Location, etc y no soy capaz de hacerlo. he seguido varios tutoriales y ahora estas indicaciones que das tú, pero cuando publico el nodo, no sale el marker, el mapa que muestra es bastante más bajo de lo que tengo configurado y tampoco me salen los markers en el mapa de Node locations.
Estoy un poco desesperado porque llevo unos cuantos días dedicado a esto y es imposible hacerlo funcionar.
Me da la impresión de que tengo algo má configurado o incluso que mi instalación esté corrupta, porque el resultado que obtengo difiere siempre del que os da a quien habéis publicado tutoriales.
Por favor, me podrías ayudar? porque estoy un poco desesperado por la pérdida de tiempo que estoy dedicando a drupal7. Gracias de antemano. Mi correo es mbdireccion@telefonica.net

Entradas populares de este blog

Actualizar Ruby con RVM en OS X 10.9 Maverick

Cocoapods me pide una versión de Ruby mayor que 2.0, pero Maverick viene por defecto con 1.9.3 así que tiré de rvm pensando que serían un par de líneas pero no, he pasado un buen rato en el proceso. Hagamos el cuento corto:

$rvm list known

y no aparece ninguna versión 2 o superior, así que:
$rvm get latest

y ahora con:
$rvm list known

tenemos:
# MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.7[-head] # security released on head [ruby-]1.9.1[-p431] [ruby-]1.9.2[-p330] [ruby-]1.9.3[-p551] [ruby-]2.0.0[-p643] [ruby-]2.1.4 [ruby-]2.1[.5] [ruby-]2.2[.1] [ruby-]2.2-head
ruby-head
ahora si,
$rvm install 2.2.1
pero
Error running 'requirements_osx_brew_libs_install automake libtool libksba', showing last 15 lines of /Users/hedmon/.rvm/log/1428514809_ruby-2.2.1/package_install_automake_libtool_libksba.log
Las dependencias estaban instaladas pero no linkeadas, así que vamos a resolverlo con Homebrew.
$brew update $brew upgrade $brew link automake libtool libksba
ahora vuelvo a intentar $rvm install 2.2.1

Entonces …

Drupal Commerce - producto con varios precios

Montando un marketplace con Drupal Commerce, apareció un caso de uso donde el cliente quería agregar a cada producto un precio de envío diferente. Por tanto no valía una Flate Rate u alguna solución clásica de 'shipping', así que pensé que Rules y encontré esta simple solución de Josh Miller:
La idea es agregar un campo 'envío' tipo 'price' al tipo de producto en cuestión, y luego con rules, sumar al precio del producto, el precio del envío.
Crear una nueva regla de cálculo de precio. Ir a admin/commerce/config/product-pricing/rules/add y darle un nombreAgregamos una primera condición "Entity has field" a la entidad "commerce-line-item" y seleccione el campo "commerce_product". Con este paso se carga el producto para la siguiente inspección.Segunda condición, cargamos el campo con el precio: "Entity has field" a la entidad "commerce-line-item:commerce-product" y seleccionamos el campo creado previamente en el ti…

Django I - Crear nuevo proyecto

Hacemos un resumen del tutorial oficial de Django recogiendo los principales pasos para comenzar con el framework. Para más detalle visitar la documentación oficial.

Asumimos que ya Django está instalado, si no, hay bastante documentación online de como hacerlo en los distintos sistemas operativos.

Versión: Si el framework está instalado, podemos ver la versión con:
$ python -c "import django; print(django.get_version())" de no estar instalado veremos un error "No module named django".


Comenzar un nuevo proyecto: Desde la consola situarse en el directorio donde queremos almacenar el código de nuestro proyecto y ejecutar:
django-admin.py startproject mysite El nuevo proyecto creado tendrá una estructura:
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py dónde:
mysite/ La carpeta raíz del proyecto tendrá el mismo nombre que utilizamos a la hora de crearlo pero se puede cambiar, no afecta en nada el funcionamiento, …