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

formularioContactoNormal

Asi como la imagenes de la derecha es como se normalmente.

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.