Cómo implementar un formulario
El Formulario Prontus o Prontus Form (prontus_form.cgi) es una aplicación que permite procesar el contenido de un formulario publicado a través de un artículo Prontus.
Última modificación: Miércoles 10 de noviembre de 2021
Para implementar Formularios en Prontus es necesario crear previamente un FID tipo "Formulario" (ver Cómo crear FID ).
Por defecto, al crear un nuevo sitio Prontus usando el modelo noticias en el wizard_prontus creará un fid_form.html
, el cual podrás utilizar de base para tu FID tipo formulario, y que está ubicado en el siguiente directorio:
/[nombre del sitio]/cpan/fid/fid_form.html
En caso de que no exista o desees simplemente crear uno nuevo, con caracteristicas adicionales puedes crear un nuevo fid en [/nombre del sitio]/cpan/fid
con el siguente formato fid_[nombre del formulario].html
donde puedes darle el nombre que deseas.
Ejemplo:
fid_mi_formulario.html
En este ejemplo destacamos la importancia de la macro reservada _prontus_form_mensajes.html
la cual creará un panel donde podrás configurar los mensajes que se desplegarán al momento de enviar información por medio de un formulario en el sitio:
<!DOCTYPE html>
<html lang="es">
<head>
%%macro(_head.html)%%
<script>
// Espacio para personalizar o agregar JS custom al cargar o guardar datos
$(document).ready(function () {
%%macro(comun_head.html)%% $('#_mainFidForm').submit(function() {
});
});
</script>
</head>
%%macro(_open_body.html)%%
%%menu%%
%%item(Cabecera, body1)%%%%/item%%
%%item(Mensajes, body2)%%%%/item%%
%%item(Datos, body3)%%%%/item%%
%%/menu%%
<div class="main-fid" id="fid">
%%macro(_titulo_principal.html)%%
<div class="content">
%%macro(_publicacion_directa.html)%%
<div class="panel-group">
%%panel(Cabecera, body1, form_cabecera.html)%%
%%panel(Mensajes, body2, _prontus_form_mensajes.html)%%
%%panel(Datos, body3, form_datos.html)%%
</div>
</div>
</div>
%%macro(_close_body.html)%%
</html>
además también son importantes las macros
(los cuales deben estar en /[nombre del prontus]/cpan/fid/macros/
).
Ejemplo:
form_cabecera.html
<div class="form-group">
<label for="txt_titular_largo">Titular Largo</label>
<textarea name="txt_titular_largo" id="txt_titular_largo" >%%txt_titular_largo%%</textarea>
</div> %%macro(comun_titular_especial.html)%% <div class="form-group">
<label for="_txt_bajada">Introducción</label>
<textarea name="_txt_bajada" id="_txt_bajada">%%_txt_bajada%%</textarea>
</div>
<div class="form-group">
<label>Introducción Corta</label>
<input type="text" value="%%bajada_corta%%" size="5" name="bajada_corta">
</div> %%macro(comun_coment.html)%%
%%_taxonomia%%
%%macro(_tax_manual.html)%%
%%macro(_tags.html)%% %%macro(_prontus_form_cabecera.html)%%
En el siguiente ejemplo de parcial podrás apreciar que se definen campos tales como "teléfono", "nombres", entre otros. Sin embargo puedes configurar la cantidad de campos que desees con los nombres que tu elijas. En caso de necesitar que el usuario cargue archivos adjuntos, debes agregar campos
input
de tipo file
, y recordar que debes declarar el formulario como enctype=multipart/form-data
para cargar correctamente los archivos. En el respaldo de datos enviados quedarán disponibles como enlaces, con sus nombres modificados para evitar posibles superposiciones. El primer archivo adjunto llega adjunto en el email que recibe el administrador del formulario, y los demás, si hay, como enlaces.
form_datos.html
<div>
<div>
<h4>Identificación del Contacto</h4>
</div>
</div>
<div>
<div>Nombre Contacto</div>
<div>
<input type="text" name="nombre_contacto" size="60" value="%%nombre_contacto%%">
</div>
</div>
<div>
<div>Teléfono Contacto</div>
<div>
<input type="text" name="telefono_contacto" size="60" value="%%telefono_contacto%%">
</div>
</div>
<div>
<div>Email Contacto</div>
<div>
<input type="text" name="email_contacto" size="60" value="%%email_contacto%%">
</div>
</div>
<div>
<div>
<h4>Identificación del Remitente</h4>
</div>
</div> <div>
<div>
<a href="#"id="seleccionarTodosObligatorios">Todos</a>
<a href="#" id="seleccionarNingunoObligatorios">Ninguno</a>
</div>
</div>
<div>
<div>Nombre</div>
<div>
<input type="checkbox" id="chk_form_required_nombre" name="chk_form_required_nombre" value="si">
<label for="chk_form_required_nombre">Obligatorio</label>
</div>
</div>
<div>
<div>Apellido Paterno</div>
<div>
<input type="checkbox" name="chk_form_required_apellido_paterno" id="chk_form_required_apellido_paterno"
value="si">
<label for="chk_form_required_apellido_paterno">Obligatorio</label>
</div>
</div>
<div>
<div>Apellido Materno</div>
<div>
<input type="checkbox" name="chk_form_required_apellido_materno" id="chk_form_required_apellido_materno"
value="si">
<label for="chk_form_required_apellido_materno">Obligatorio</label>
</div>
</div>
<div>
<div>Teléfono</div>
<div>
<input type="checkbox" id="chk_form_required_telefono" name="chk_form_required_telefono" value="si">
<label for="chk_form_required_telefono">Obligatorio</label>
</div>
</div>
<div>
<div>Email</div>
<div>
<input type="checkbox" id="chk_form_required_email" name="chk_form_required_email" value="si">
<label for="chk_form_required_email">Obligatorio</label>
</div>
</div>
<div class="row rowfix">
<div>Consulta</div>
<div>
<input type="checkbox" id="chk_form_required_consulta" name="chk_form_required_consulta" value="si">
<label for="chk_form_required_consulta">Obligatorio</label>
</div>
</div>
En este caso llamaremos a la plantilla "formulario.html" sin embargo puedes colocarle cualquier otro nombre, ya que la asociación entre el FID y las plantillas se define en la configuración en el administrador del sitio:
<!doctype html>
<html>
<head>
<title>%%_titular%% - Modelo Mínimo 12</title>
<meta charset="utf-8">
<script src="/prontus/front/js-local/validator.min-av-1723585740-av-.js"></script>
</head>
<body> %%if(txt_titular_largo)%%
%%txt_titular_largo%%
%%/if%% %%if(txt_titular_portada)%%
%%txt_titular_portada%%
%%/if%% %%if(_txt_bajada)%%
%%_txt_bajada%%
%%/if%% %%if(bajada_corta)%%
<p>%%bajada_corta%%</p>
%%/if%% %%if(invitacion_coment)%%
<p>%%invitacion_coment%%</p>
%%/if%% <p>Los campos (*) son obligatorios</p>
%%if(nombre_contacto)%%
<p>%%nombre_contacto%% %%if(telefono_contacto)%%- %%telefono_contacto%%%%/if%% %%if(email_contacto)%%- %%email_contacto%%%%/if%%</p>
%%/if%%
<form id="formProntusConsulta" action="/cgi-bin/prontus_form.cgi" method="post" enctype="multipart/form-data" class="form-horizontal" role="form">
<input type="hidden" name="_TS" value="%%_ts%%" />
<input type="hidden" name="_FILE" value="%%_file%%" />
<input type="hidden" name="_PRONTUS_ID" value="%%_prontus_id%%" />
<div>
<div>
<label for="nombres">Nombres
%%if(chk_form_required_nombre)%%
<span>*</span>:
%%/if%%
</label>
<div>
<input type="text" class="form-control" id="nombre" name="nombre" placeholder="Nombres">
</div>
</div>
</div>
<!--row-->
<div>
<div>
<label for="apellido_paterno">Apellido Paterno
%%if(chk_form_required_apellido_paterno)%%
<span>*</span>:
%%/if%%
</label>
<div >
<input type="text" class="form-control" id="apellido_paterno" name="apellido_paterno" placeholder="Apellido Paterno">
</div>
</div>
</div>
<!--row-->
<div>
<div>
<label for="apellido_materno">Apellido Materno
%%if(chk_form_required_apellido_materno)%%
<span>*</span>:
%%/if%%
</label>
<div>
<input type="text" class="form-control" id="apellido_materno" name="apellido_materno" placeholder="Apellido materno">
</div>
</div>
</div>
<!--row-->
<div>
<div>
<label for="telefono">Teléfono
%%if(chk_form_required_telefono)%%
<span>*</span>:
%%/if%%
</label>
<div>
<input type="text" id="telefono" name="telefono" placeholder="9 876 543 21">
</div>
</div>
</div>
<!--row-->
<div class="row">
<div class="form-group">
<label for="email">Email
%%if(chk_form_required_email)%%
<span>*</span>:
%%/if%%
</label>
<div>
<input type="text" id="email" name="email" placeholder="Email">
</div>
</div>
</div>
<!--row-->
<div class="row">
<div class="form-group">
<label for="consulta" >Consulta
%%if(chk_form_required_consulta)%%
<span>*</span>:
%%/if%%
</label>
<div>
<textarea class="form-control" rows="5" id="consulta" name="consulta"placeholder="Escríbanos su consulta" style="min-height: 100px;"></textarea>
</div>
</div>
</div>
<!--row-->
<div>
<div class="form-group">
<label for="consulta">Archivo
<span>*</span>:
</label>
<div>
<input type="file" name="archivo" class="form-control">
</div>
</div>
</div>
<div>
<div class="form-group">
<div>
<label for="telefono">Código de validación
%%if(chk_form_captcha_enable)%%
<span>*</span>:
%%/if%%
</label>
</div>
<div>
<img src="/cgi-bin/prontus_captcha.cgi?_type=form" width="80" height="35" style="border:1px solid #bbbbbb;" alt=""/></td>
</div>
<div>
<input type="text" name="_CAPTCHA_FORM" class="form-control" placeholder="Ingrese el código de validación"/>
</div>
</div>
</div>
<!--row--> <!--fin informacion y postulaciones-->
<div>
<div>
<button type="submit" href="#" class="wp-boton-volver" onclick="enviaFormConsulta();">Enviar Formulario</button>
<a class="boton" href="#">Volver</a>
</div>
</div>
</form>
<div class="separa"></div>
<script>
var validatorConsulta = new Validador('formProntusConsulta','one','#FDF8C1');
%%if(chk_form_required_nombre)%%
validatorConsulta.addconstraint('nombre','obligatorio','','El campo Nombres es obligatorio.');
validatorConsulta.addconstraint('nombre','texto','','El campo Nombre contiene caracteres no permitidos.');
%%/if%% %%if(chk_form_required_apellido_paterno)%%
validatorConsulta.addconstraint('apellido_paterno','obligatorio','','El campo Apellido Paterno es obligatorio.');
validatorConsulta.addconstraint('apellido_paterno','texto','','El campo Apellido Paterno contiene caracteres no permitidos.');
%%/if%% %%if(chk_form_required_apellido_materno)%%
validatorConsulta.addconstraint('apellido_materno','obligatorio','','El campo Apellido Materno es obligatorio.');
validatorConsulta.addconstraint('apellido_materno','texto','','El campo Apellido Materno contiene caracteres no permitidos.');
%%/if%% %%if(chk_form_required_telefono)%%
validatorConsulta.addconstraint('telefono','obligatorio','','El campo Teléfono es obligatorio.');
validatorConsulta.addconstraint('telefono','regex',new RegExp(/^[0-9\-\(\) ]+$/),'El campo Teléfono contiene caracteres no permitidos.');
%%/if%%
%%if(chk_form_required_email)%%
validatorConsulta.addconstraint('email','obligatorio','','El campo correo electrónico es obligatorio.');
validatorConsulta.addconstraint('email','email','','El campo correo electrónico no es válido.');
%%/if%%
%%if(chk_form_required_consulta)%%
validatorConsulta.addconstraint('consulta','obligatorio','','El campo consulta es obligatorio.');
validatorConsulta.addconstraint('consulta','texto','','El campo consulta contiene caracteres no permitidos.');
%%/if%% %%if(chk_form_captcha_enable)%%
validatorConsulta.addconstraint('_CAPTCHA_FORM','obligatorio','','El campo Código de validación es obligatorio.');
%%/if%% function enviaFormConsulta() {
var formObject = document.getElementById('formProntusConsulta');
if (validatorConsulta.validar()) {
if (confirm('¿Está seguro que desea enviar los datos?')) {
formObject.submit();
};
};
return false;
};
</script>
</body>
</html>
3. - Luego que tengas creados los FID con sus respectivas macros, debes Guardarlos en la configuración del sitio de forma de que puedas hacer artículos del tipo "Formulario".
Puedes configurar el Formulario Prontus mediante variables Prontus globales, a las que se agregan otras de uso específico para los formularios.
Variables globales
- _TS: contiene el Timestamp de creación del artículo Prontus. Utilizada para ubicar el archivo XML con los datos ocultos del formulario.
- _FILE: contiene el Path completo al artículo Prontus. Utilizado para reconocer la extensión del formulario. Esta extensión debe ser la misma en las plantillas de respuesta.
- _PRONTUS_ID: contiene el Identificador de la instancia de Prontus.
Para que el Formulario Prontus funcione correctamente, existe una serie de variables Prontus que debes definir en el FID. Estas variables serán almacenadas en el archivo XML correspondiente, siendo leídas desde él por la cgi prontus_form
.
form_admin |
E-mails de destino del formulario, separadas por comas. Ejemplo: acorrea@midominio.com, pfaundez@web.com Si como parte del formulario se envía un dato con el nombre _admin, entonces ese dato sustituirá a form_admin. Para evitar que direcciones de correo seandetectadas por sniffers, puede usarse el carácter # como sustituto de la arroba (@). Ejemplo: gflores#sitio.com El uso práctico de esta mecánica es publicar tópicos, temas o áreas distintos usando un combo-box (control select) o alternativas (control radio). |
form_remitente |
E-mail del remitente. Se puede indicar un remitente fijo en el FID con esta variable. Al marcar el check "chk_form_force_from" se deja con preferencia el campo "form_from" como remitente. |
form_from |
E-mail del remitente. Esta variable es sustituida por el dato email, si es que existe en el formulario. Si el dato email no existe en el formulario, entonces no se enviará un mail de autorrespuesta. |
form_subject
|
Subject (asunto) del mensaje que llegará al administrador. Puede contener datos del formulario, para lo cual deben insertarse marcas de la forma %nombre% (Para más información sobre el parseo de marcas, revisa este artículo.). Ejemplo: Formulario de Contacto Prontus - %tipo% |
form_subject_auto |
Subject (asunto) del mensaje de autorrespuesta que se envía al remitente. Puede contener datos del formulario, para lo cual deben insertarse marcas de la forma %nombre%. |
form_msg_auto |
Mensaje de autorrespuesta que se envía al remitente. Puede contener datos del formulario, para lo cual deben insertarse marcas de la forma %nombre%. Ejemplo: Estimado(a) %nombre%, Gracias por contestar nuestra encuesta. Pronto nos contactaremos con Ud. Visite nuestro sitio web en www.misitio.com Atte., El Webmaster |
form_msg_exito |
Mensaje de éxito del sistema, en formato HTML. Puede contener datos del formulario, para lo cual debes insertar marcas de la forma %nombre%. Ejemplo: Estimado(a) %nombre%,< br > Gracias por contestar nuestra encuesta.< br > Pronto nos contactaremos con Ud.< br > Visite nuestro sitio web en < a href="http://www.misitio.com" >www.misitio.com< /a > < br >
Atte.,< br > El Webmaster< br > |
form_msg_error |
Mensaje de error del sistema, en formato HTML. Puede contener datos del formulario, para lo cual deben insertarse marcas de la forma %nombre%. La marca %err% es sustituida por el mensaje de error del sistema. Ejemplo: Estimado(a) %nombre%,< br > Ha cometido el siguiente error:< br >< br > %err%< br >< br > Por favor, vuelva < a href='javascript:history.back()' >atrás< /a > y corríjalo. |
chk_form_required_[nombre] |
Indica que el dato [nombre] es obligatorio en el formulario. |
chk_form_backup_datos |
Si existe, realiza una copia de los datos recibidos dentro del directorio de respaldo, incluyendo los archivos adjuntos. |
Los datos ingresados en el formulario (artículo Prontus publicado), incluyendo eventuales archivos adjuntos, son enviados por e-mail al administrador y eventualmente respaldados (todos) de acuerdo a la existencia de la variable chk_form_backup_datos. Los datos ingresados en el formulario son enviados y almacenados en mismo orden en que aparecen en él. Los archivos adjuntos se mostrarán como enlaces en el mail al administrador, y se adjuntará el primero.
Dentro del correo electrónico al administrador, éstos aparecerán con su nombre, un signo igual (=) y su valor. Por ejemplo:
Nombre = Alejandro Pérez
Telefono = 34667467
Pregunta = ¿Pueden informarme dónde está la home page?
Recibido el 31/02/2007 a las 13:54:23 desde el IP 200.34.212.17
Atentamente,
Prontus CMS
Nótese que al final el Formulario Prontus registra la fecha, la hora y el número IP desde donde fueron recibidos los datos.
En el archivo de respaldo (backup.csv), los datos serán escritos en un archivo CSV (compatible con Excel), donde cada columna contendrá un dato en particular. La primera fila corresponderá a los nombres de los datos almacenados.
Los nombres de los archivos adjuntos son alterados de manera que no se repitan dentro del directorio del formulario.
El formulario Prontus valida automáticamente los datos cuyos atributos name comiencen con:
- email o e-mail (se asume que es una dirección de correo electrónico)
- rut (se asume que es un RUT)
- telefono, phone, fax, celular o cellphone (se asume que es un número telefónico)
Los datos que comienzan con un underscore (_) no son enviados ni almacenados.
Es decir, el siguiente código hará que Prontus procese el dato enviado como rut:
<input type="text" name="rutCliente" value="" id="rutCliente">
Con el fin de relacionar el formulario con su correspondiente artículo Prontus, dentro de la plantilla de formulario debes incluir los siguientes datos:
_TS |
Timestamp de Prontus. Utilizada para ubicar el archivo XML con los datos ocultos del formulario. Ejemplo:
|
_FILE |
Path completo al artículo Prontus. Utilizado para reconocer la extensión del formulario. Esta extensión debe ser la misma en las plantillas de respuesta. Ejemplo:
|
_PRONTUS_ID |
Identificador de la instancia de Prontus. Ejemplo:
|
_pag_exito |
Plantilla de éxito del formulario (sólo el nombre del archivo, sin extensión. La extensión se deduce del nombre del archivo que contiene el formulario). Si no se especifica, entonces se usa:
|
_pag_error |
Plantilla de error del sistema (sólo el nombre del archivo, sin extensión. La extensión se deduce del nombre del archivo que contiene el formulario). Si no se especifica, entonces se usa:
|
Es importante destacar que si tienes configuradas multivistas en tu Prontus, cada vista debe tener las plantillas correspondientes de éxito y error. Prontus identificará automáticamente qué plantilla de éxito o error corresponde mostrar luego de enviar datos por un formulario mediante una vista específica. Es decir, si estás usando la vista móvil, al enviar datos Prontus te deberá mostrar la vista extra/form/pags-movil/exito.html
, por ejemplo.
Además, es posible crear distintas plantillas de éxito y error para distintos formularios Prontus. En este caso deberás indicarle al formulario qué plantillas de éxito y error usar. Por ejemplo, si un formulario particular debe usar las plantillas exito_alt.html
y error_alt.html
, la plantilla del formulario deberá incluir los siguientes campos:
<input type="hidden" name="_pag_exito" value="exito_alt">
<input type="hidden" name="_pag_error" value="error_alt">
El respaldo de los datos recibidos se encuentra en:
/[prontus_id]/cpan/procs/form/[ts]
El archivo de respaldo se llama backup.csv
. A los archivos adjuntos se les antepone un número aleatorio para evitar que sean sobreescritos.
Los archivos temporales utilizados para entregar la respuesta al visitante se encuentran en:
/[prontus_id]/site/cache/form/pags
y
/[prontus_id]/site/cache/form/pags-[vvv]
Donde "vvv" corresponde al nombre de cada vista.
El Formulario Prontus utiliza el servidor SMTP indicado en el archivo de configuración [nombre del sitio]-var.cfg
ubicado en /[nombre del sitio]/cpan/
para realizar los envíos (parámetro SERVER_SMTP).
Dado que el Formulario es también un tipo de FID, su apariencia se modifica por medio de la plantilla que hayas configurado (Ver Plantillas Artículos)
Sin embargo, una vez tengas implementado tu formulario en Prontus puedes configurar varias plantillas para los estados de envío (Éxito y Error).
Debes crear las plantillas para multivistas en los directorios
/[prontus_id]/plantillas/extra/form/pags-[vvv]
Donde "vvv" corresponde al nombre de cada vista.
Si todo sale bien y los datos se envían de forma exitosa, querrás hacerlo saber al usuario por medio de un mensaje que le indique que su consulta llegó a buen destino.
Para ello deberás buscar en el directorio /[nombre del prontus]/plantillas/extra/form/pags/
y configurar la siguiente plantilla: exito.html
En el código de la plantilla podrás apreciar y destacar la marca:
%%msg%%
La cual despliega el mensaje que configuraste desde el administrador del sitio al momento de crear el artículo desde el FID.
Ademas del mensaje de éxito configurado en el administrador tambien puedes configurar otros mensajes para diferentes iteraciones y validaciones en el formulario, por ejemplo, un mensaje en caso de los datos sean erróneos, un mensaje en caso de que el servidor no responda correctamente, un mensaje para reescribir una etiqueta, entre otros:
<!-- MSG out_of_service = Sistema fuera de servicio. Intente otra vez más tarde ... -->
<!-- MSG required_data = Este dato es obligatorio: -->
<!-- MSG wrong_data = Este dato es incorrecto: -->
<!-- MSG nombres = Nombre -->
<!-- MSG apellidos = Apellidos -->
<!-- MSG rut = RUT -->
<!-- MSG email = E-Mail -->
<!-- MSG direccion = Dirección-->
<!-- MSG telefono = Teléfono -->
<!-- MSG tipo_de_consulta = Tipo de Consulta -->
<!-- MSG comentarios = Comentarios -->
<!-- MSG fecha = Fecha -->
<!-- MSG lugar = Lugar -->
<!-- MSG contacto = Contacto -->
<!-- MSG descripcion = Descripción -->
<!-- MSG inscripcion = Inscripción -->
<!-- MSG wrong_captcha = El código de validación es incorrecto -->
La apariencia del resto de la página dependerá del diseño que tengas definido para el sitio, el cual podrás modificar por medio de estilos CSS y scriptsJavaScript.
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<title>Prontus.cl - Formularios</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="ROBOTS" content="NOINDEX" />
<!-- MSG out_of_service = Sistema fuera de servicio. Intente otra vez más tarde ... -->
<!-- MSG required_data = Este dato es obligatorio: -->
<!-- MSG wrong_data = Este dato es incorrecto: -->
<!-- MSG nombres = Nombre -->
<!-- MSG apellidos = Apellidos -->
<!-- MSG rut = RUT -->
<!-- MSG email = E-Mail -->
<!-- MSG direccion = Dirección-->
<!-- MSG telefono = Teléfono -->
<!-- MSG tipo_de_consulta = Tipo de Consulta -->
<!-- MSG comentarios = Comentarios -->
<!-- MSG fecha = Fecha --> <!-- MSG lugar = Lugar -->
<!-- MSG contacto = Contacto -->
<!-- MSG descripcion = Descripción -->
<!-- MSG inscripcion = Inscripción -->
<!-- MSG wrong_captcha = El código de validación es incorrecto -->
</head>
<body class="bodyport">
<section id="main" class="art-general">
<h2>Error al envíar mensaje.</h2>
<!-- Area superior-->
<p>%%msg%%</p>
<div class="separa">
</div>
<p>
<a href="/"><span class="text-cerrar">[Volver]</span></a>
</p>
</section>
</body>
</html>
En el caso de la plantilla de Error para los formularios, la estructura es similar a la de Éxito en cuanto a la marca %%msg%%
, que desplegará de igual forma el mensaje de error configurado en el administrador del sitio para el artículo formulario.
<!DOCTYPE html>
<html lang="es">
<head>
<title>Prontus.cl - Formularios</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="ROBOTS" content="NOINDEX" />
<!-- MSG out_of_service = Sistema fuera de servicio. Intente otra vez más tarde ... -->
<!-- MSG required_data = Este dato es obligatorio: -->
<!-- MSG wrong_data = Este dato es incorrecto: -->
<!-- MSG nombres = Nombre -->
<!-- MSG apellidos = Apellidos -->
<!-- MSG rut = RUT -->
<!-- MSG email = E-Mail -->
<!-- MSG direccion = Dirección-->
<!-- MSG telefono = Teléfono -->
<!-- MSG tipo_de_consulta = Tipo de Consulta -->
<!-- MSG comentarios = Comentarios -->
<!-- MSG fecha = Fecha -->
<!-- MSG lugar = Lugar -->
<!-- MSG contacto = Contacto -->
<!-- MSG descripcion = Descripción -->
<!-- MSG inscripcion = Inscripción -->
<!-- MSG wrong_captcha = El código de validación es incorrecto -->
<link type="text/css" rel="stylesheet" href="/cms/css/global.css" />
<link type="text/css" rel="stylesheet" href="/cms/css/articulo-av-1723585740-av-.css" />
<?php include($_SERVER['DOCUMENT_ROOT']."/cms/js-local/_includedjavascripts.html");?>
</head>
<body class="bodyport">
<section id="main" class="art-general">
<h2>Formularios</h2>
<!-- Area superior-->
<p>%%msg%%</p>
<div class="separa"></div>
<p><a href="javascript:history.back();"><span class="text-cerrar">[Volver]</span></a></p>
</section>
</body>
</html>
Generación de datos ingresados en Prontus form
Para obtener los datos existe un botón dentro del fid que dice “Ver datos recibidos por este formulario”. El archivo generado es un CSV, el cual se puede seleccionar la codificación de este.
Luego aparecerá un aviso de generación de archivo
A continuación se descargará el archivo.
Conceptos Básicos
¿Qué es Prontus?
Estructura de directorios
Glosario
Navegadores soportados
Tutoriales
Instalación de Prontus CMS
Implementar un nuevo sitio en Prontus
Cómo crear un FID
Cómo crear una plantilla de artículo
Cómo crear una plantilla de portada
Cómo crear plantillas de formulario
Cómo implementar un formulario
Cómo implementar un buscador
Cómo implementar un buscador Elasticsearch
Cómo crear una plantilla de taxonomía
Cómo crear plantillas de tags
Cómo crear una plantilla de listado
Cómo crear una plantilla de tags jerárquicos
Implementar carga de videos en Prontus
Integración de Redes Sociales
Instalación y Configuración
Requerimientos
Configuración del servidor
Base de datos
Asegurar la plataforma
Instalación con Wizard Prontus
Ajustes post-instalación
Archivos de configuración de Prontus
Friendly URLs
Friendly URLs para imágenes
SSI en Prontus
Logs de Eventos
Ejecutar procesos periódicamente con cron
Debugging
Plantillas
Plantillas de FID
Plantillas de artículo
Plantillas de portada
Plantillas de taxonomía
Plantillas de artículos relacionados
Plantillas de tags
Plantillas de listado
Plantillas de tags jerárquicos
Plantillas de mapa de taxonomía
Plantillas de mapa de tags
Marcas
Tipos de marcas
Diccionario de marcas
Marcas para texto
Marcas de lógica
Marcas de despliegue
Marca Menú y Panel
Parsing de marcas en formularios Prontus
Funcionalidades
Funcionalidades SEO en Prontus CMS
Multivistas
Galería de Imágenes
Buscador Multivista
Buscador
Buscador Elasticsearch
Calendarios
Imprimir artículos
Posting de contenidos
Plugins
Post-procesos
Prontus functions
Implementar copias de seguridad automáticas con Dropbox
Implementar múltiples ediciones
Regeneración masiva de artículos via línea de comandos