"Si tú no trabajas por tus sueños, alguien te contratará para que trabajes por los suyos”

Steve Jobs

Afiliado
Dominios3Euros

Muchas veces nos puede hacer falta cambiar el formulario de contacto del componente que no facilita Joomla ( Contact ).

formularioContactoNormal

Recordar que es hacer overwrite de este componente en nuestra plantilla, los ficheros que encontramos Nuestrotemplate/html/com_contact/contact/default_form.php

Si en nuestra plantilla no encuentras esos ficheros, entonces... crea ovewrite de ellos.

- El cliente nos pide que no pongamos el campo asunto y que pongamos el campo telefono.

Esto ya lo explique como hacerlo en otra entrada.

- Tambien nos pide que pongamos placeholder a los campos indicando ejemplo del contenido que tiene poner.

Despues buscar informacion, encontramos:

- API 3.8 Joomla de Clases JForm:

Donde vemos que podemos añadir attributos al los campos del formulario, sin tener que tocar mucho código.

Con el método getFieldAttribute la clase que ya tenemos cargada en esa vista  ($this->form) podemos añadir un atributo el campo.

El problema surge que cuando intentamos poner placeholder, ya que layout de la libreria de joomla del filed text , no lo entiendo o no la pone...

Encontramos buscando mas informacion encontramos:

- Documentacion field text de joomla

Ahí nos damos cuenta que el atributo para el xml es 'hint' en ve placeholder

Demomento con el cambio nombre campo y css tenemos esto:

formularioJoomlaContactSinPlacerHolder

Tenemos que añadir el atributo hint, que es el que utiliza joomla cuando monta el input para poner como placeholder.

 

$this->form->setFieldAttribute('contact_name','hint','texto_placeholder');

 

Entonces cuando mostramos el campo con :

echo $this->form->getInput('contact_name');

Ya nos muestra "texto_placeholder" en el input

Resultado :

formularioJoomlaContactConPlacerHolder

Otras formas:

- jQuery añadiendo el placerholder a cada campo.

- Overwrite del xml de los campos, aunque nunca lo hice, creo que funcionaría.