Prontus Functions

Las Prontus Functions ayudan a extender las funcionalidades de Prontus, entregandole al desarrollador la posibilidad de manipular datos en tiempo de parseo de plantillas.

 

Las Prontus Functions o PF son útiles cuando se necesita hacer algo específico dentro de las plantillas, como por ejemplo convertir una fechap a un formato mas amigable con los textos en otro idioma o también cosas como convertir el titular a mayusculas, truncar la bajada, quitar algunos caracteres, etc.

Programación de PF

Las funciones deben ser programas en perl y dentro del archivo lib_custom.pm.

Cuando se instala Prontus y no se tienen Prontus Functions existe un archivo de ejemplo llamado lib_custom-sample.pm , el cual debe ser renombrado a lib_custom.pm para utilizarlo.

En el archivo de ejemplo existe la función fechapEngLong, la cual recibe una fechap y la convierte a un texto más amigable en inglés

sub fechapEngLong {
  # aaaamm - > Mon, 24 Apr 2006
  use Time::Local qw(timelocal_nocheck);
  my $aaaammdd = $_[0]; # fechap
  return '' if ($aaaammdd =~ /^9999/);
  return '' if ($aaaammdd !~ /^\d{8}$/);
  my (@dias) = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  my (@meses) = ('January','February','March','April','May','June','July',  'August','September','October','November','December');
 $aaaammdd =~ /(\d\d\d\d)(\d\d)(\d\d)/;
  my ($dia,$mes,$ano) = ($3,$2,$1);
  my ($tiempo) = &Time::Local::timelocal_nocheck(0,0,12,$dia,($mes - 1),($ano - 1900)) || return '';
  my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($tiempo);
  $dia = $dia + 0; # Para extraer los ceros de adelante.
  return $dias[$wday] . ", " . $meses[($mes - 1)] . ' ' . $dia . " $ano";
};

Luego, para usar esta función dentro de una plantilla de artículo de Prontus se debe utilizar la siguiente marca:

%%_PF_fechapEngLong('%%_FECHAP%%')%%El motor de parseo de prontus reconocerá que es una Prontus Function y hará el llamado correspondiente a lib_custom::fechapEngLong pasandole por  parámetros el valor de la marca  _FECHAP. Luego dicha marca se transformará en el texto de la fecha en inglés.

Más ejemplos

Convertir caracteres especiales de HTML/XML en entidades.

sub escapeXML {
my $toencode = $_[0];
utf8::decode($toencode);
$toencode=~s/&/&/g;
$toencode=~s/ >/ >/g;
$toencode=~s/ $toencode=~s/"/"/g;
$toencode=~s/'/'/g;
# restaura a utf8
utf8::encode($toencode);
return $toencode;
};

Ejemplo de uso:

%%_PF_escapeXML("%%_titular%%")%%

Convertir texto a Mayusculas.

sub toUpperCase {
my $str = $_[0];
return uc $str;
};

Ejemplo de uso:

%%_PF_toUpperCase("%%_titular%%")%%

 

Prontus Functions en Prontus Forms
Desde la versión 11.2.81 Prontus Forms permite usar Prontus Functions en el texto y asunto de los mensajes de auto-respuesta enviados al usuario. De este modo ahora es posible implementar fácilmente un sistema de validación de e-mail con una URL única que el usuario debe visitar.