Campo de formulario
From Joomla! Documentation
Introducción
Los campos de formulario son los campos en un <form>
HTML. Joomla! 2.5 y más reciente proporciona la clase JForm como una forma cómoda y flexible de crear formularios con una gran cantidad de campos. Cada tipo de campo de formulario es una subclase de JFormField.
Además de ser una herramienta para la creación de página flexibles, JFormFields es utilizado por Joomla! para permitir a los administradores configurar Joomla! o sus extensiones sin necesidad de cambiar el código subyacente. En Joomla! 1.5, esto era manejado por las ahora obsoletas clases JParameter y JElement.
Para definir los campos de formulario en la configuración de una extensión, debe incluirlos en un fieldset llamado, como <fieldset name="basic">
, que está dentro de la etiqueta <fields name="params">
del <config>
en el archivo de manifiesto XML.
== Validación del formulario ==
Joomla tiene capacidades de validación de formularios del lado cliente y del lado servidor.
La validación del lado servidor es mínima ya que todo antes se puede validar del lado cliente. Pero del lado cliente es más fácil de usar, así que usar ambas no es mala idea (sobre todo porque esta última es discreta y no dará problemas en navegadores con JavaScript deshabilitado o clientes problemáticos).
Validación del lado cliente
.. se hace a través de javascript mientras el usuario está llenando los campos del formulario.
Utiliza las clases HTML required y validate-[xxx] (donde [xxx] es una regla de Joomla! o personalizada; por ejemplo, validate-numeric)
Más aquí: Validación de formularios del lado cliente
Validación del lado servidor
.. se hace después de haber enviado el formulario y normalmente vuelve al formulario, cuando no esta validado, con algunos mensajes adicionales.
Utiliza los atributos HTML required y ("true" o "required") y validate (con el valor de una regla joomla o personalizada; por ejemplo, validate="email")
== Campos de formulario, Tipos Estándar ==
Numerosos tipos de campos de formulario están definidos en Joomla!. La siguiente tabla enumera los tipos estándar y su disponibilidad. Usa la referencia de una sola página si deseas imprimir toda la documentación existente de campos de formulario.
por Favor, ten en cuenta que muchos de estos campos están disponibles como tipo parámetro en Joomla! 1.5. Para obtener una lista de tipos parámetros, ver J1.5:Tipos parámetros estándar. Para una comparación entre los campos de formulario y los tipos parámetros, ver Campos de formulario y tipos parámetros estándar.
Tipo | Descripción | Disponibilidad | |
---|---|---|---|
accessiblemedia | provides modal access to the media manager for insertion of images with upload for users with appropriate permissions and a text field for adding a alternative text. | and newer | |
accesslevel | proporciona una lista desplegable de opciones niveles de acceso con la opción actual seleccionada. | y más reciente | |
cachehandler | proporciona una lista de las opciones de manejo disponibles de la memoria caché. | y más reciente | |
calendar | proporciona un cuadro de texto para la entrada de una fecha. Un icono situado junto al cuadro de texto proporciona un enlace a un calendario emergente, que también puede ser utilizado para introducir el valor de la fecha. | y más reciente | |
captcha | proporciona el uso de un plugin captcha. | y más reciente | |
category | proporciona una lista desplegable de categorías para una extensión. | y más reciente | |
checkbox | proporciona una casilla de verificación única para ser activada o desactivada | y más reciente | |
checkboxes | ofrece una ilimitada cantidad de casillas de verificación que pueden ser utilizadas para una selección múltiple. | y más reciente | |
Chrome Style | proporciona una lista de opciones de plantillas de estilo chrome agrupadas por plantilla. | y más reciente | |
color | proporciona un selector de color al hacer clic en el cuadro de entrada. | y más reciente | |
Content Language | proporciona una lista de los idiomas para contenidos. | y más reciente | |
Content Type | proporciona una lista de tipos de contenido. | y más reciente | |
combo | proporciona un campo de cuadro combinado desplegable. | y más reciente | |
componentlayout | proporciona una lista agrupada de diseños alternativos de núcleos y plantillas para un ítem del componente. | y más reciente | |
contentlanguage | proporciona una lista de los idiomas de contenido instalados para su uso en conjunción con el plugin selector de idiomas. | y más reciente | |
Database Connection | proporciona una lista de conexiones de base de datos, opcionalmente se limitan a una lista determinada. | y más reciente | |
editor | proporciona un campo de área con un editor WYSIWYG. | y más reciente | |
editors | proporciona una lista desplegable de los editores WYSIWYG disponibles. Desde se usa en lugar de campos de formulario, tipo plugins. | ||
proporciona un campo de correo electrónico. | y más reciente | ||
file | proporciona un campo de entrada para archivos | y más reciente | |
filelist | proporciona una lista desplegable de los archivos de un directorio especificado. | y más reciente | |
folderlist | proporciona una lista desplegable de carpetas de un directorio especificado. | y más reciente | |
groupedlist | proporciona una lista desplegable de ítems organizados en grupos. | y más reciente | |
header tag | proporciona una lista desplegable de las etiquetas de encabezado (h1-h6). | y más reciente | |
helpsite | proporciona una lista desplegable de los sitios de ayuda para tu instalación de Joomlaǃ. | y más reciente | |
hidden | proporciona un campo oculto para guardar un campo de formulario cuyo valor no pueda ser modificado directamente por el usuario en el Administrador (puede ser modificado por código o mediante la edición del archivo params.ini). | y más reciente | |
imagelist | proporciona una lista desplegable de los archivos de imagen en un directorio especificado. | y más reciente | |
integer | proporciona una lista desplegable de los enteros entre un mínimo y un máximo. | y más reciente | |
language | proporciona una lista desplegable de los idiomas instalados para el Lado Cliente o Lado Servidor. | y más reciente | |
list | proporciona una lista desplegable con entradas definidas personalizadas. | y más reciente | |
media | proporciona acceso modal al gestor de medios para la elección de imágenes, los usuarios con los permisos adecuados podrán subir archivos. | y más reciente | |
menu | proporciona una lista desplegable de menús disponibles en tu sitio Joomlaǃ. | y más reciente | |
menuitem | proporciona una lista desplegable de los ítems de menús disponibles en tu sitio Joomlaǃ. | y más reciente | |
meter | proporciona una barra de progreso para mostrar el valor en un intervalo. | y más reciente | |
modulelayout | proporciona una lista de las alternativas de diseño de un módulo agrupados por núcleo y plantilla. | y más reciente | |
moduleorder | proporciona una lista desplegable para establecer el orden del módulo en una posición dada | y más reciente | |
moduleposition | proporciona una entrada de texto y el botón para ajustar la posición de un módulo. | y más reciente | |
moduletag | proporciona una lista de elementos html5 (que se usa para envolver un módulo). | y más reciente | |
note | soporta campo de texto de una línea. | y más reciente | |
number | proporciona un cuadro de texto de una línea con controladores arriba/abajo para seleccionar un número en el campo. | y más reciente | |
password | proporciona un cuadro de texto para la entrada de una contraseña. Los caracteres de la contraseña serán ocultados a medida que se introducen. | y más reciente | |
plugins | proporciona una lista de plugins de una carpeta determinada. | y más reciente | |
predefinedlist | Campo de Formulario para cargar una lista de valores predefinidos. | y más reciente | |
radio | proporciona botones de radio para seleccionar diferentes opciones. | y más reciente | |
range | Proporciona una barra de desplazamiento horizontal para especificar un valor en un rango. | y más reciente | |
repeatable | Permite a los campos de formulario que puedan tener tantas opciones como lo desee el usuario. | y más reciente | |
rules | proporciona una matriz de grupo con opciones de acción para la gestión del control de acceso. La visualización depende del contexto. | y más reciente | |
sessionhandler | proporciona una lista desplegable de las opciones del controlador de sesión. | y más reciente | |
spacer | proporciona un separador visual entre los campos del formulario. Es puramente una ayuda visual y no hay ningún valor almacenado. | y más reciente | |
sql | proporciona una lista desplegable de entradas obtenidas mediante la ejecución de una consulta a la Base de datos de Joomlaǃ. La primera columna de resultados devueltos por la consulta proporciona los valores para el cuadro de lista desplegable. | y más reciente | |
subform | ofrece una forma de usar formularios XML dentro de otro o reutilizar tus formularios existentes en el formulario actual. | y más reciente | |
tag | proporciona un punto de entrada para las etiquetas (AJAX o Anidadas). | y más reciente | |
tel | proporciona un campo de entrada para un número de teléfono. | y más reciente | |
templatestyle | proporciona una lista desplegable de plantillas de estilos. | y más reciente | |
text | proporciona un cuadro de texto para la entrada de datos. | y más reciente | |
textarea | proporciona un área de texto para la entrada de texto de varias líneas. | y más reciente | |
timezone | proporciona una lista desplegable de zonas horarias. | y más reciente | |
URL | proporciona campo de entrada de texto para una dirección URL. | y más reciente | |
user | proporciona una lista desplegable para seleccionar un usuario. Muestra el Nombre del Usuario y almacena el ID de Usuario | y más reciente | |
useractive | proporciona un campo para mostrar una lista de usuarios disponibles en estado activo. | y más reciente | |
usergroup | proporciona una lista desplegable de los grupos de usuarios. Desde usar usergrouplist. | y más reciente | |
usergrouplist | proporciona una lista desplegable de grupos de usuarios. Desde Desde reemplaza al campo de formulario tipo usergroup. | y más reciente | |
userstate | proporciona un campo para mostrar una lista de los estados disponibles de usuarios. | y más reciente |
== Campos de formulario tipo personalizados ==
Una extensión puede definir sus propios campos de formulario tipo, que luego pueden ser utilizados en sus propis formularios o formularios creados por otra extensión. Ver Crear un campo de formulario de tipo personalizado para obtener instrucciones.
== Campos de formulario, Tipo Modal ==
Si tienes un campo con muchos valores que no encajan en un cuadro de selección, siempre puedes hacer un campo de formulario modal que va a permitir al usuario seleccionar un elemento de una página modal con una tabla, opciones de filtrado, etc. (al igual que cualquier tabla del administrador, por ej.ː "Artículos").
Ver S:MyLanguage/Creating a modal form fieldlCrear un campo de formulario modal
== Atributos comunes == === Labelclass ===
Agregar el atributo labelclass
adiciona una clase CSS para las etiquetas del campo de formulario. Fuente:
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=28450
=== Showon ===
Agregar el atributo showon
permite ocultar el campo basados en el(los) valor(es) de otro campo.
Sintaxis para mostrar el campo bar solo cuando foo es igual a "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1"
/>
Para hacer coincidir multiples valores, estos deben ser separados por comas, como en el siguiente ejemplo: showon="foo:1,2"
Para combinar múltiples campos puedes usar [AND]
. Ejemplo: showon="foo:1[AND]bar:1"
La sintaxis para mostrar el campo bar sólo cuando foo es igual a "1" y baz es igual a "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="baz"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1[AND]baz:1"
/>
Si desea escoger entre varios valores, se puede utilizar [OR]. Ejemplo: showon="foo:1[OR]bar:1".
La sintaxis para mostrar el campo bar solo cuando foo es igual a "1" o baz es igual a "1";
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="baz"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1[OR]baz:1"
/>
También puedes usar el valor no es igual a showon="field1!:1".
Sintaxis para mostrar el campo "bar" solo cuando "foo" no es igual a "1":
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="baz"
type="list"
showon="foo!:1"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
Para mostrar un campo cuando otro campo (por ejemplo, foo) ha sido seleccionado (por lo tanto, cuando ese otro campo no está vacío), puede usar showon="foo!:" (sin un valor especificado).
Esto fue introducido con PullRequest: https://github.com/joomla/joomla-cms/pull/3379, disponible a partir de Joomlaǃ 3.2.4.
Troubleshooting: Attributes Not Working
If you have read an older version of our developer documentation, or took your form display code from an existing extension, you may be experiencing issues with attributes like showon not working at all. In order for some special attributes to function, your fields must be rendered using their renderField() method. For example:
<div class="row-fluid">
<div class="span6">
<?php
foreach($this->form->getFieldset() as $field) {
echo $field->renderField();
}
?>
</div>
</div>