Metadata Suggestbox field
Esta es una implementación del típico componente suggest box AJAX:
| Atributo | Descripción | Obligatorio |
|---|---|---|
| label | El texto que se muestra como etiqueta en la interfaz de usuario. | true |
| name | Un identificador único de campo. Dos campos de metadatos no pueden tener el mismo nombre. El nombre debe ser único. El nombre debe empezar por “okp:”. Es buena práctica usar el nombre de un grupo de metadatos como base del nombre del campo. Por ejemplo, use “okg:consulting” como nombre de grupo; el nombre de campo “okp:consulting.suggestbox” se forma cambiando “okg” por “okp”. Eso ayuda a encontrar el grupo de metadatos a partir del nombre del campo de metadatos. Use solo letras, números y guiones bajos: “0-9a-zA-Z_”. |
true |
| width | El ancho del elemento HTML. En el caso de KCenter, la interfaz debe usar valores de ancho basados en %, por ejemplo: - width=“50%” funcionará - width=“100px” se ignorará en la interfaz de KCenter. |
false |
| description | Descripción general. | false |
| filterQuery | Una consulta SQL para filtrar los datos. Use {0} para insertar la entrada del usuario. | * |
| valueQuery | Una consulta SQL para obtener el valor de un identificador. Use {0} para insertar el identificador. | * |
| className | Se usa una clase para obtener las opciones seleccionadas. | * |
| filterMinLen | El número mínimo de caracteres en la entrada para empezar a filtrar resultados. Por defecto: 3. |
false |
| dialogTitle | El título del diálogo HTML. | false |
| readonly | El campo no puede modificarse en la interfaz de usuario. Por defecto, el valor es “false”. | false |
| dbColumnSize | Establece el tamaño del campo de base de datos donde se almacena el valor. Por defecto, los campos se almacenan en una columna de base de datos con un tamaño de 128 caracteres. Como la longitud de sus datos podría ser mayor de 128 caracteres, el administrador debería actualizar el tamaño de columna por defecto. Consulte la sección de documentación Metadata XML definition para una explicación detallada del almacenamiento de metadatos en la base de datos de OpenKM. |
|
| defaultAccess | Política de acceso de seguridad por defecto. Por defecto está establecida en “grant”, de modo que todos los usuarios verán la propiedad. | |
| height | Altura del widget suggestbox. Acepta valores de tamaño CSS (por ejemplo, 25px). Por defecto: 25px. Nota: Este atributo se hereda de FormElement pero no tiene efecto visual para este tipo de campo. |
false |
-
* Hay tres opciones para obtener los valores del suggest box (usar una de ellas es obligatorio):
-
Elementos hijos:
Basado en filterQuery y valueQuery
Sección titulada «Basado en filterQuery y valueQuery»Ahora filterQuery y valueQuery pueden ser consultas SQL normales.
Crear la tabla COUNTRY:
create table COUNTRY ( CT_ID varchar(2), CT_NAME varchar(32), primary key(CT_ID));
insert into COUNTRY (CT_ID, CT_NAME) values ('es', 'Spain');insert into COUNTRY (CT_ID, CT_NAME) values ('pt', 'Portugal');insert into COUNTRY (CT_ID, CT_NAME) values ('it', 'Italy');Definición de metadatos:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <suggestbox label="country" name="okp:consulting.suggestbox" width="200px" dialogTitle="Choose country" filterMinLen="3" filterQuery="select ct_id, ct_name from COUNTRY where ct_name like '%{0}%' order by ct_name" valueQuery="select ct_id, ct_name from COUNTRY where ct_id='{0}'" /> </property-group></property-groups>Basado en className
Sección titulada «Basado en className»Para facilitar la obtención de un listado desde aplicaciones externas o para otros propósitos, su clase puede construirse para obtener los valores de las opciones desde esos sistemas.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <suggestbox label="country" name="okp:consulting.suggestbox" width="200px" dialogTitle="Choose country" filterMinLen="3" className="com.openkm.plugin.form.values.SuggestBoxUserList" /> </property-group></property-groups>Para más información, lea Creating your own Suggestbox plugin