Ejemplo de Posting de Contenido

Archivo de configuración

Suponiendo que la instancia del Sistema de Posting de Contenidos se llame “postingform”, se tiene un archivo de
configuración como el que se muestra a continuación: [postingform]
_USERS_ID = '1'
_FID = 'fid_general'
_PLT = 'general.html'
_ALTA = '0'

_SECCION1 = '1';
_TEMA1 = '';
_SUBTEMA1 = '';

_MSG_PLANTILLA = 'msg_posting.html'
_MSG_MARCA = '%%MSG%%'
_MSG_OK = 'Gracias por enviar tus contenidos'

_PORT = 'inicio.html'
_AREA = '2'
_ORDEN = '1'
_VB = 'N'
[/postingform]

Esta instancia del formulario está asociada al artículo tipo general, ya que usa el mismo FID y plantilla. Además,
se puede ver que tiene el _ALTA deshabilitado. Tiene asociada primera sección de la taxonomía.

También se pueden apreciar, en el tercer bloque, las configuraciones para la plantilla de mensajes. Se define el
nombre de la plantilla, la marca del mensaje y el mensaje propiamente tal.

Finalmente, en el cuarto bloque, se encuentran la variables del comportamiento de publicación. Los nuevos
artículos, serán publicados en la portada de inicio, en el área 2, desde la posición 1 y con _VB (visto bueno) activado. Sin
embargo, los artículos no serán publicados inmediatamente en la portada, debido a que el _ALTA está
desactivado. El administrador está en la obligación de abrir el artículo, activar el “alta” y guardar el artículo,
obligándolo así, a revisar los artículos antes de publicarlos.

También se pueden dar otras combinaciones en la publicación, como por ejemplo dejar _ALTA activada y el _VB
desactivado, para una publicación más rápida del contenido.

Plantilla de Mensaje
La plantilla de mensajes es el elemento más simple del sistema:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
< title >Altavoz - Posting de Contenidos< /title >
< meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / >
< /head >
< body >
< !-- Inicio Respuesta -- >
< center >
< table width="568" style="border:1px solid;" cellpadding="0" cellspacing="0" >
< tr >
< td height="150" align="center" valign="middle" >< strong >%%MSG%%< /strong >
< br >< br >
< input type="button" value="cerrar" onClick="javascript:window.close();" >< /a >
< /td >
< /tr >
< /table >
< /center >
< !-- /Inicio Respuesta -- >
< /body >
< /html >

Originalmente cuenta con la marca donde irá el mensaje, así como también un botón para cerrar la ventana (en
caso de estar en una pop). Es responsabilidad del desarrollador, habilitar una página visualmente más agradable u
ofrecer otras opciones más sofisticadas.

La plantilla debe estar ubicada en:

/< prontus_id >/plantillas/extra/posting/pags/msg_posting.html

Formulario de Posting de Contenido
A continuación se presenta un formulario con algunas opciones predefinidas y algunos campos de un FID
genérico:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
< title >Altavoz - Posting de Contenidos< /title >
< meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / >
< /head >
< body >
< div align="center" >
< table width="960" style="border:1px solid;" cellspacing="0" cellpadding="0" >
< tr >
< td align="right" valign="top" >
< div align="center" >
< !-- Formulario de Subida -- >
< form method="post" action="/cgi-bin/prontus_art_posting.cgi"
enctype="multipart/form-data" name="form" >
< input type="hidden" name="_IDF" value="postingform" >
< input type="hidden" name="_NP" value="prontus_ejemplo" >
< input type="hidden" name="tgeneral" value="1" >
< table width="630" border="0" cellpadding="0" cellspacing="0" >
< tr >
< td align="center" >
< h2 >Posting de Contenidos< /h2 >
< table width="90%" border="0" cellspacing="0" cellpadding="0" >
< tr >
< td align="left" valign="middle" >< strong >
¿Quiere enviarnos una noticia o un artículo escrito por ud.?
Llene este formulario y su información será revisada por nuestros
administradores del sitio.
< /strong >< /td >
< /tr >
< /table >
< table width="90%" align="center" >
< tr >
< td colspan="2" align="left" valign="middle" > < /td >
< /tr >
< tr >
< td align="left" valign="middle" >Nombre:< /td >
< td >< input type="text" name="nombre" size="30" >< /td >
< /tr >
< tr >
< td align="left" valign="middle" >Apellido:< /td >
< td >< input type="text" name="apellido" size="30" >< /td >
< /tr >
< tr >
< td align="left" valign="middle" >Título:< /td >
< td >< input type="text" name="_TXT_TITULAR" size="50" >< /td >
< /tr >
< tr >
< td align="left" valign="middle" >Descripción:< /td >
< td >< textarea name="_TXT_bajada" cols="40" rows="2" wrap="VIRTUAL" >< /textarea >< /td >
< /tr >
< tr >
< td align="left" valign="middle" >Cuerpo del Artículo:< /td >
< td >< textarea name="VTXT_CUERPO" cols="40" rows="4" wrap="VIRTUAL" >< /textarea >< /td >
< /tr >
< tr >
< td width="40%" align="left" valign="middle" >Sube un Imagen:< /td >
< td width="60%" >
< input type="file" name="FOTO_POSTING_N1" >
< input type="hidden" name="FOTOFIJA_MULTI940" value="FOTO_POSTING_N1(940,940)" / >
< input type="hidden" name="FOTOFIJA_MULTI300" value="FOTO_POSTING_N1(300,300)" / >
< input type="hidden" name="FOTOFIJA_MULTI72" value="FOTO_POSTING_N1(72,72)" / >
< input type="hidden" name="CHK_cuadrar_FOTOFIJA_MULTI72" value="si" / >
< /td >
< /tr >
< tr >
< td align="left" valign="middle" >Sube tu Artículo:< /td >
< td >< input type="file" name="ASOCFILE_1" >< /td >
< /tr >
< tr >
< td align="left" valign="middle" >Sube un Archivo para Descargar:< /td >
< td >< input type="file" name="ASOCFILE_2" >< /td >
< /tr >
< tr >
< td align="right" > < /td >
< td >
< table width="30%" border="0" cellspacing="3" cellpadding="3" >
< tr >
< td >
< img src="/cgi-bin/prontus_captcha.cgi?_type=posting&_nocache=1" width="80" height="35" alt="código
de verificación" style="vertical-align:middle;"/ >
< input type="text" name="_CAPTCHA" maxlength="4" class="field" style="width:100px;"/ >
< input type="submit" value="Enviar" >
< /td >
< td >< input type="button" value="Volver" onClick="javascript:history.back();" >< /td >
< /tr >
< /table >
< /td >
< /tr >
< tr >
< td align="right" > < /td >
< td >
< table width="30%" border="0" cellspacing="3" cellpadding="3" >
< tr >
< td >< input type="submit" value="Enviar" >< /td >
< td >< input type="button" value="Volver" onClick="javascript:history.back();" >< /td >
< /tr >
< /table >
< /td >
< /tr >
< /table >
< table width="90%" border="0" cellspacing="0" cellpadding="0" >
< tr >
< td style="text-align:justify;" >
En este formulario podrá escribirnos información que será revisada por
nuestro departamento de relaciones públicas y podrá salir online
a la página Web!!!< br >
< br >
Recuerde que debe enviar sólo contenido que sea acorde con la
temática del sitio, sin ofender a nadie, ni subir contenido inadecuado.
También intente mantener un lenguaje acorde con el sitio.< br >
< br >
< /td >
< /tr >
< /table >
< br >
< /td >
< /tr >
< /table >
< /form >
< !-- /Formulario de Subida -- >
< /div >
< /td >
< /tr >
< /table >
< /div >
< /body >
< /html >

Como se puede apreciar, la instancia del Prontus se llama: postingform, tal como se usó en el archivo de configuración descrito anteriormente. Además, el Prontus de ejemplo se llama: prontus_ejemplo. En base a esto, se puede definir que en este ejemplo, la ubicación del archivo de configuración y de plantilla de mensajes están ubicadas en:

/< prontus_id >/plantillas/extra/posting/pags/msg_posting.html
/< prontus_id >/cpan/prontus_ejemplo-posting.cfg

El formulario permite introducir el nombre y el apellido. También se podría extender al email de contacto. Si se
tiene una capa de autenticación, se pueden pre-llenar los datos del usuario o bien dejarlos en algún campo hidden.

Más abajo se pueden ver las variables más comunes de Prontus: _TXT_TITULAR, _TXT_BAJADA y
VTXT_CUERPO. Junto con la opción de subir 2 archivos asociados y una imagen. Y finalmente, el botón de
submit.

Cabe rescatar que la marca para asignar una foto fija al artículo es FOTO_POSTING_Nn. En el ejemplo anterior, se permite subir una foto de la siguiente manera:

< input class="combobox" type="file" name="FOTO_POSTING_N1" >
< input type="hidden" name="FOTOFIJA_MULTI940" value="FOTO_POSTING_N1(940,940)" / >
< input type="hidden" name="FOTOFIJA_MULTI300" value="FOTO_POSTING_N1(300,300)" / >
< input type="hidden" name="FOTOFIJA_MULTI72" value="FOTO_POSTING_N1(72,72)" / >
< input type="hidden" name="CHK_cuadrar_FOTOFIJA_MULTI72" value="si" / >

Alternativamente se puede enviar un campo hidden CHK_cuadrar_fotofija, que tiene el mismo efecto que el checkbox del FID.

En este ejemplo, no se incluyó validación de ningún tipo, pero puede agregarse sin ningún problema, ya que no
afectaría al funcionamiento del sistema. Por el contrario, evitaría la recepción de artículos no válidos.

El formulario debe ubicarse en el directorio stat de la instancia Prontus, por ejemplo:

/< prontus_id >/stat/form/aporte.html

Publicación directa a Portada
Para realizar la publicación directa del contenido ingresado en una portada, hay que definir en la configuración los
valores _PORT y _AREA, y definir _ALTA en 1, como se mostró en la configuración de ejemplo.

Además se debe enviar la fecha de publicación del artículo, utilizando campo hidden, como se muestra a
continuación:

< input name="_FECHAP" type="hidden" value="" / >Un código js que genera el valor correcto de _FECHAP, utilizando jquery, es:

$(document).ready(function() {
var fecha = new Date();
$('[name="_FECHAP"]').val(fecha.getFullYear()+''+(((fecha.getMonth() +1) < 10 )?
'0' +(fecha.getMonth()+1) : (fecha.getMonth()+1))+''+((fecha.getDate() < 10 )? '0'
+fecha.getDate() : fecha.getDate()));
})

El valor de _FECHAP debe tener el formato AAAAMMDD para que prontus establezca correctamente la fecha de
publicación.

_FECHAP es obligatorio para generar un articulo con alta, de otra forma el articulo deberá guardarse
manualmente en el publicador.

Si no se cumplen estas condiciones, el articulo no quedará publicado en la portada.

Consideraciones Adicionales
La plantilla de mensaje definida en _msg_plantilla, no es procesada por el publicador, por lo que cualquier tipo de
marca prontus, y código php incluido no será procesado, en caso de necesitar una página de respuesta que se
genere más dinámicamente se puede hacer una plantilla con redirect, y pasar el mensaje como query string a la
página con la respuesta final.

Por ejemplo:

< html >
< head >
< title >Redireccionando...< /title >
< /head >
< body >
< script type="text/javascript" >
window.location.href = "/prontus_id/site/extra/posting/pags/msg_posting.html?m=%
%MSG%%";
< /script >
< h3 >redireccionando...< /h3 >
< /body >
< /html >

Si el fid tiene campos adicionales, checkbox, combobox, etc, y se quiere pasar un valor fijo, se pueden utilizar campos hidden al igual que para _FECHAP, esto aplica por ejemplo cuando el articulo tiene comentarios y necesitan activarse al publicar.