Prontus Functions
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.
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.
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%%")%%