Campo de formulario

From Joomla! Documentation

Revision as of 17:01, 19 March 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎العربية • ‎中文(台灣)‎

Introducción

Los campos de formulario son los campos en un <form> HTML. Joomla! 2.5 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.

Joomla 1.5 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. Joomla 4.0 and newer
accesslevel proporciona una lista desplegable de opciones niveles de acceso con la opción actual seleccionada. Joomla 2.5 y más reciente
cachehandler proporciona una lista de las opciones de manejo disponibles de la memoria caché. Joomla 2.5 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. Joomla 2.5 y más reciente
captcha proporciona el uso de un plugin captcha. Joomla 2.5 y más reciente
category proporciona una lista desplegable de categorías para una extensión. Joomla 2.5 y más reciente
checkbox proporciona una casilla de verificación única para ser activada o desactivada Joomla 2.5 y más reciente
checkboxes ofrece una ilimitada cantidad de casillas de verificación que pueden ser utilizadas para una selección múltiple. Joomla 2.5 y más reciente
Chrome Style proporciona una lista de opciones de plantillas de estilo chrome agrupadas por plantilla. Joomla 3.0 y más reciente
color proporciona un selector de color al hacer clic en el cuadro de entrada. Joomla 2.5 y más reciente
Content Language proporciona una lista de los idiomas para contenidos. Joomla 2.5 y más reciente
Content Type proporciona una lista de tipos de contenido. Joomla 3.1 y más reciente
combo proporciona un campo de cuadro combinado desplegable. Joomla 2.5 y más reciente
componentlayout proporciona una lista agrupada de diseños alternativos de núcleos y plantillas para un ítem del componente. Joomla 2.5 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. Joomla 2.5 y más reciente
Database Connection proporciona una lista de conexiones de base de datos, opcionalmente se limitan a una lista determinada. Joomla 2.5 y más reciente
editor proporciona un campo de área con un editor WYSIWYG. Joomla 1.6 y más reciente
editors proporciona una lista desplegable de los editores WYSIWYG disponibles. Desde Joomla 2.5 se usa en lugar de campos de formulario, tipo plugins. Joomla 1.6
email proporciona un campo de correo electrónico. Joomla 2.5 y más reciente
file proporciona un campo de entrada para archivos Joomla 2.5 y más reciente
filelist proporciona una lista desplegable de los archivos de un directorio especificado. Joomla 2.5 y más reciente
folderlist proporciona una lista desplegable de carpetas de un directorio especificado. Joomla 2.5 y más reciente
groupedlist proporciona una lista desplegable de ítems organizados en grupos. Joomla 2.5 y más reciente
header tag proporciona una lista desplegable de las etiquetas de encabezado (h1-h6). Joomla 3.0 y más reciente
helpsite proporciona una lista desplegable de los sitios de ayuda para tu instalación de Joomlaǃ. Joomla 2.5 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). Joomla 2.5 y más reciente
imagelist proporciona una lista desplegable de los archivos de imagen en un directorio especificado. Joomla 2.5 y más reciente
integer proporciona una lista desplegable de los enteros entre un mínimo y un máximo. Joomla 2.5 y más reciente
language proporciona una lista desplegable de los idiomas instalados para el Lado Cliente o Lado Servidor. Joomla 2.5 y más reciente
list proporciona una lista desplegable con entradas definidas personalizadas. Joomla 2.5 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. Joomla 2.5 y más reciente
menu proporciona una lista desplegable de menús disponibles en tu sitio Joomlaǃ. Joomla 2.5 y más reciente
menuitem proporciona una lista desplegable de los ítems de menús disponibles en tu sitio Joomlaǃ. Joomla 2.5 y más reciente
meter proporciona una barra de progreso para mostrar el valor en un intervalo. Joomla 3.2 y más reciente
modulelayout proporciona una lista de las alternativas de diseño de un módulo agrupados por núcleo y plantilla. Joomla 2.5 y más reciente
moduleorder proporciona una lista desplegable para establecer el orden del módulo en una posición dada Joomla 2.5 y más reciente
moduleposition proporciona una entrada de texto y el botón para ajustar la posición de un módulo. Joomla 2.5 y más reciente
moduletag proporciona una lista de elementos html5 (que se usa para envolver un módulo). Joomla 3.0 y más reciente
note soporta campo de texto de una línea. Joomla 3.1 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. Joomla 3.2 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. Joomla 2.5 y más reciente
plugins proporciona una lista de plugins de una carpeta determinada. Joomla 2.5 y más reciente
predefinedlist Campo de Formulario para cargar una lista de valores predefinidos. Joomla 3.2 y más reciente
radio proporciona botones de radio para seleccionar diferentes opciones. Joomla 2.5 y más reciente
range Proporciona una barra de desplazamiento horizontal para especificar un valor en un rango. Joomla 3.2 y más reciente
repeatable Permite a los campos de formulario que puedan tener tantas opciones como lo desee el usuario. Joomla 3.2 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. Joomla 2.5 y más reciente
sessionhandler proporciona una lista desplegable de las opciones del controlador de sesión. Joomla 2.5 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. Joomla 2.5 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. Joomla 2.5 y más reciente
subform ofrece una forma de usar formularios XML dentro de otro o reutilizar tus formularios existentes en el formulario actual. Joomla 3.6 y más reciente
tag proporciona un punto de entrada para las etiquetas (AJAX o Anidadas). Joomla 3.1 y más reciente
tel proporciona un campo de entrada para un número de teléfono. Joomla 2.5 y más reciente
templatestyle proporciona una lista desplegable de plantillas de estilos. Joomla 2.5 y más reciente
text proporciona un cuadro de texto para la entrada de datos. Joomla 2.5 y más reciente
textarea proporciona un área de texto para la entrada de texto de varias líneas. Joomla 2.5 y más reciente
timezone proporciona una lista desplegable de zonas horarias. Joomla 2.5 y más reciente
URL proporciona campo de entrada de texto para una dirección URL. Joomla 2.5 y más reciente
user proporciona una lista desplegable para seleccionar un usuario. Muestra el Nombre del Usuario y almacena el ID de Usuario Joomla 1.6 y más reciente
useractive proporciona un campo para mostrar una lista de usuarios disponibles en estado activo. Joomla 3.2 y más reciente
usergroup proporciona una lista desplegable de los grupos de usuarios. Desde Joomla 3.2 usar usergrouplist. Joomla 2.5 y más reciente
usergrouplist proporciona una lista desplegable de grupos de usuarios. Desde Desde Joomla 3.2 reemplaza al campo de formulario tipo usergroup. Joomla 3.2 y más reciente
userstate proporciona un campo para mostrar una lista de los estados disponibles de usuarios. Joomla 3.2 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>