Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Recoger argumentos del url en un webform?

Estas en el tema de Recoger argumentos del url en un webform? en el foro de Drupal en Foros del Web. Hola, Estoy intentando recoger argumentos del url para usarlos como valores para elementos (hidden inputs) en un webform Me explico: He creado un node del ...
  #1 (permalink)  
Antiguo 23/06/2011, 09:56
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Recoger argumentos del url en un webform?

Hola,

Estoy intentando recoger argumentos del url para usarlos como valores para elementos (hidden inputs) en un webform

Me explico:

He creado un node del tipo webform y hecho que esté disponible como un 'block': 'miWebformBlock'.
Entre los campos de los webform hay un 'hidden input' con name: id_inmueble.

Luego he creado una 'panel page' y dentro de ella he agregado el bloque: 'miWebformBlock'

Al esta 'panel page' se accede por ejemplo mediante el url: inmueble/159
Necesito que el input 'id_inmueble' tome el valor 159 (el 2do argumento del url).

Hace una semana que estoy con esto y según me han dicho no hay forma de hacerlo. Solo se puede hacer enviando variables $_GET y recogiendo con %get['nombreVariable'].

Pero mi cliente no quiere que use variables GET en el url.

Que puedo hacer? Hay alguna otra forma de hacer esto? No puedo dejar de usar el 'panel page' porque también hay otros elemento (views, bloques, etc).

Gracias.
  #2 (permalink)  
Antiguo 23/06/2011, 10:15
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Recoger argumentos del url en un webform?

Y si usas arg(1) no te devuelve el segundo argumento?

Si yo entro, por ejemplo, a www.misitio.com/user/1 ... entro al perfil del root, y el valor de arg(1) va a ser 1, seguro a vos te va a dar 159.

Probalo y comentame.

Saludos.
  #3 (permalink)  
Antiguo 23/06/2011, 10:57
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Respuesta: Recoger argumentos del url en un webform?

Cita:
Iniciado por MarioAraque Ver Mensaje
Y si usas arg(1) no te devuelve el segundo argumento?

Si yo entro, por ejemplo, a www.misitio.com/user/1 ... entro al perfil del root, y el valor de arg(1) va a ser 1, seguro a vos te va a dar 159.

Probalo y comentame.

Saludos.
He probado poniendo arg(1) con valor del hidden input pero lo toma como texto. O sea el input toma valor: "arg(1)" pero no el argumento del url.
Creo que el problema es que no lo acepta como un token.
Tampoco me acepta <? echo arg(1); ?>
También ten en cuenta que el webform lo agrego como un bloque dentro de un 'panel page'

Subo 2 capturas de pantalla:

En la 1ra imagen se ve los campos que tengo en el formulario (el 2do es el hidden).
En la 2da se ve donde le doy el valor art(1).

---------------

Última edición por chefnelone; 23/06/2011 a las 11:25
  #4 (permalink)  
Antiguo 23/06/2011, 13:50
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Recoger argumentos del url en un webform?

Que vendría a ser 159? Supongo que es el node ID no? si es asi ya lo tenes.
Una pregunta, Para que quieres mandar el campo hidden? Que pretendes hacer.
Quizás si vamos desde el principio podemos encontrar la solución.

Saludos.
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 24/06/2011, 03:05
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Respuesta: Recoger argumentos del url en un webform?

Cita:
Iniciado por NUCKLEAR Ver Mensaje
Que vendría a ser 159? Supongo que es el node ID no? si es asi ya lo tenes.
Una pregunta, Para que quieres mandar el campo hidden? Que pretendes hacer.
Quizás si vamos desde el principio podemos encontrar la solución.

Saludos.
hola nucklear. Lo explico:

Comienzo con un paso atrás para mostrar de donde viene.

Primero he creado un 'content type' con nombre: 'inmuebles en venta'.
Luego he creado formulario en un nodo del tipo 'Webform' y lo he habilitado para que esté diponible como bloque. Este formulario tiene un campo oculto con nombre 'inmueble-nid'


Luego he creado una vista que genera una lista de inmuebles en venta mostrando solo en nodo del tipo 'inmuebles en venta'. Agrego algunos campos y entre ellos un un enlace que tiene como Link path: 'ficha-inmueble/[nid]'.

Así esta vista genera un listado de inmuebles en venta con algunos datos y un enlace que lleva a la ficha del inmueble.

La página de la ficha del inmueble es un 'panel page' y tiene como url de acceso: 'ficha-inmueble/%1'.Por lo tanto la ficha carga información del inmueble utilizando el 'nid' como argumento.

Este 'panel page' tiene agregado:
1) dos 'view panes' que utilizan aquel argumento: [nid]. Estos 'view panes' funcionan bien, o sea que estos panes toman correctamente el 'argumento' en el 'panel page'.
2) el bloque del nodo 'webform'

Ahora bien, la función de este 'form' es que el visitante envíe una consulta al 'administrador' sobre el inmueble que está viendo en la ficha(este en particular). Para que el administrador sepa cuál es el inmueble he pensado en construir un enlace en el cuerpo del email que ponga por ejemplo: "Estoy interesado en este inmueble: enlace". Donde el enlace sería: www.miweb.com/ficha-inmueble/[nid]. Así, el administrador hace click y ve cuál es el inmueble.
De aquí que necesito que el campo oculto 'inmueble-nid' tome el valor del argumento.


Lo he podido hacer enviando el [nid] como variable tipo $_GET pero mi cliente me dijo que quiere url limpias (sin ?, &, =).

No se si hay otra forma, yo lo he hecho así cientos de veces en trabajos similares. Pero ahora que estoy con drupal no puedo recoger [nid]. Este es mi primer proyecto en drupal y no es lo simple que me hubiese gustado para ir entendiendo como funciona drupal.


saludos

Última edición por chefnelone; 24/06/2011 a las 03:11
  #6 (permalink)  
Antiguo 24/06/2011, 05:16
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Recoger argumentos del url en un webform?

Si solo es para armar el link podrias usar %server[REQUEST_URI] como default value, eso te envia la url actual relativa a la raiz. O poner http://%server[SERVER_NAME]%server[REQUEST_URI] para que te envie la ruta completa.

A menos que haya entendido mal.

Saludos
__________________
Drupal Argentina
  #7 (permalink)  
Antiguo 25/06/2011, 04:31
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Respuesta: Recoger argumentos del url en un webform?

Cita:
Iniciado por NUCKLEAR Ver Mensaje
Si solo es para armar el link podrias usar %server[REQUEST_URI] como default value, eso te envia la url actual relativa a la raiz. O poner http://%server[SERVER_NAME]%server[REQUEST_URI] para que te envie la ruta completa.

A menos que haya entendido mal.

Saludos
Gracias nuckear ha funcionado.
Solo para saber: pasar argumentos no es posible en este caso?

Un saludo
  #8 (permalink)  
Antiguo 25/06/2011, 06:29
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Recoger argumentos del url en un webform?

Supongo que Webform debe tener algun hook para poder ampliar los tokens, asi que solo es cuestion de indagar en la documentacion o dentro del modulo. La verdad nunca he necesitado mas que los valores que ya tiene.

Saludos
__________________
Drupal Argentina

Etiquetas: webforms
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.