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

Varios select en un mismo campo. (Prestashop)

Estas en el tema de Varios select en un mismo campo. (Prestashop) en el foro de Sistemas de gestión de contenidos en Foros del Web. Buenas, primero explico el problema y después como lo tengo... A ver.. correos nos ha mandado un modulo en el que solo pilla el campo ...
  #1 (permalink)  
Antiguo 27/05/2014, 12:39
 
Fecha de Ingreso: mayo-2014
Ubicación: Valencia
Mensajes: 63
Antigüedad: 7 años, 4 meses
Puntos: 0
Varios select en un mismo campo. (Prestashop)

Buenas, primero explico el problema y después como lo tengo...

A ver.. correos nos ha mandado un modulo en el que solo pilla el campo de address del prestashop, el problema, es que hay mucha gente que al comprar, lo rellena mal, y hemos añadido los campos vía, número y puerta, para facilitar que a la hora de poner la dirección, se haga bien.

Ahora bien, a la hora de usar ese modulo de correos para sacar las etiquetas desde prestashop, sólo pilla el campo address, lo cual es un impedimento, ya que si se envían con esas etiquetas, no llegaría ningún paquete, con el considerable mosqueo del cliente y los costes de volverlo a enviar, :S

En vez de llegar a la "Calle las barcas 12, 12", llegaría a una dirección que se llamara "las barcas", dirección que no existe, obviamente, ya que no tiene ni tipo de vía, ni número, ni puerta.

Por el momento, tengo correctamente que a la hora de ingresar los datos se haga en los campos address1, vía, numero y puerta de la tabla ps_address.

Ahora bien, lo qe necesito es juntar esos valores en el campo address1

Si por ejemplo ingresan...

via: Calle
address1: Las Barcas
número: 7
puerta: 36

Se haga en el campo address1 como "Calle Las Barcas 7, 36"

Tengo habilitado el pedido rápido y esto es lo que tengo puesto...

en authentification.tpl

Código:
{elseif $field_name eq "via"}
<label for="via">{l s='Tipo de vía'} <sup>*</sup></label>
<div></div>
<select id="via" name="via">	
<option selected="selected">Seleccione su tipo de vía</option>	
<option value="Alameda">Alameda</option>
<option value="Autopista">Autopista</option>
<option value="Autovia">Autovía</option>	
<option value="Avenida">Avenida</option>
<option value="Barriada">Barriada</option>
<option value="Bulevar">Bulevar</option>
<option value="Calle">Calle</option>	
<option value="Camino">Camino</option>
<option value="Carretera">Carretera</option>
<option value="Glorieta">Glorieta</option>	
<option value="Partida">Partida</option>
<option value="Pasaje">Pasaje</option>
<option value="Paseo">paseo</option>	
<option value="Plaza">Plaza</option>
<option value="Ronda">Ronda</option>
<option value="Sector">Sector</option>	
<option value="Urbanizacion">Urbanización</option>
<option value="Travesia">Travesía</option>
<option value="Via">Vía</option>
</select>
</div>

{elseif $field_name eq "address1"}
<div class="required form-group">
<label for="address1">{l s='Address'} <sup>*</sup></label>
<input type="text" class="form-control" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
</div>
                          
{elseif $field_name eq "address2"}
<div class="form-group is_customer_param">
<label for="address2">{l s='Address (Line 2)'} <sup>*</sup></label>
<input type="text" class="form-control" name="address2" id="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}" />
</div>

{elseif $field_name eq "numero"}
<div class="required form-group">
<label for="numero">{l s='Numero'} <sup>*</sup></label>
<input type="text" class="form-control" name="numero" id="numero" value="{if isset($smarty.post.numero)}{$smarty.post.numero}{/if}" />
</div>

{elseif $field_name eq "puerta"}
<div class="required form-group">
<label for="puerta">{l s='Puerta'} <sup>*</sup></label>
<input type="text" class="form-control" name="puerta" id="puerta" placeholder="En caso de ser un bajo, escribir BAJO" value="{if isset($smarty.post.puerta)}{$smarty.post.puerta}{/if}" />
</div>
Adress.php

Código:
public $address1;
public $numero;
public $puerta;
public $via;

'address1' => 			array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128),
'via' => 				array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64),
'numero' => 			array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64),
'puerta' => 			array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64),
AdminAddressesController.php

Código:
	public function initPageHeaderToolbar()
	{
		if (empty($this->display))
			$this->page_header_toolbar_btn['new_address'] = array(
				'href' => self::$currentIndex.'&addaddress&token='.$this->token,
				'desc' => $this->l('Add new address', null, null, false),
				'icon' => 'process-icon-new'
			);

		parent::initPageHeaderToolbar();
	}

	public function renderForm()
	{
		$this->fields_form = array(
			'legend' => array(
				'title' => $this->l('Addresses'),
				'icon' => 'icon-envelope-alt'
			),
			'input' => array(
				array(
					'type' => 'text_customer',
					'label' => $this->l('Customer'),
					'name' => 'id_customer',
					'required' => false,
				),
				array(
					'type' => 'text',
					'label' => $this->l('Identification Number'),
					'name' => 'dni',
					'required' => false,
					'col' => '4',
					'hint' => $this->l('DNI / NIF / NIE')
				),	
				array(
					'type' => 'text',
					'label' => $this->l('Numero'),
					'name' => 'numero',
					'required' => false,
					'col' => '4',
					'hint' => $this->l('Numero!')
				),	
				array(
					'type' => 'text',
					'label' => $this->l('Puerta'),
					'name' => 'puerta',
					'required' => false,
					'col' => '4',
					'hint' => $this->l('Puerta!')
				),	
				array(
					'type' => 'text',
					'label' => $this->l('via'),
					'name' => 'via',
					'required' => false,
					'col' => '4',
					'hint' => $this->l('via!')
				),	
				array(
					'type' => 'text',
					'label' => $this->l('Address alias'),
					'name' => 'alias',
					'required' => true,
					'col' => '4',
					'hint' => $this->l('Invalid characters:').' &lt;&gt;;=#{}'
				),
				array(
					'type' => 'text',
					'label' => $this->l('Home phone'),
					'name' => 'phone',
					'required' => false,
					'col' => '4',
					'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : ''
				),
				array(
					'type' => 'text',
					'label' => $this->l('Mobile phone'),
					'name' => 'phone_mobile',
					'required' => false,
					'col' => '4',
					'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : ''
				),
				array(
					'type' => 'textarea',
					'label' => $this->l('Other'),
					'name' => 'other',
					'required' => false,
					'cols' => 15,
					'rows' => 3,
					'hint' => $this->l('Forbidden characters:').' &lt;&gt;;=#{}'
				),
			),
			'submit' => array(
				'title' => $this->l('Save'),
			)
		);
Todo esto funciona bien, pero ingresa los select cada uno en su campo.

¿Como haría para que ingresara los select de vía, address, número y puerta en el campo de address1?

Etiquetas: aplicaciones-prefabricadas, campo, prestashop, select, smart
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 09:29.