Secciones de la página

pht. tol


Declaraciones


Funciones


Time oriented language


Árbol de ficheros

Funciones

Text PhtExpText()

Text PhtXlsInclude()

Text PhtName()

Text PhtAName()

Text PhtLinkTag()

Text PhtLink()

Text PhtLinkCatSet()

Text PhtLinkPstSet()

Text PhtFileName()

Text PhtTitle()

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









pht.tol de iForense

Posts Html functions.

Declaraciones

Funciones

  • Text PhtExpText(Text txtPst)
    Expande pequeños textos muy habituales dentro de los posts.
  • Text PhtXlsInclude(Text xlsPth)
    Retorna, para su inclusión, el resultado de leer el Css y el Html de una tabla Excel volcada como Html en el fichero de ruta xlsPth.
  • Text PhtName(Set pstObj)
    Retorna el nombre del post como su codigo si lo tiene y si no lo tiene utiliza la fecha para crear un nombre.
  • Text PhtAName(Set pstObj)
    Retorna un enlace con el nombre de un post.
  • Text PhtLinkTag(Text tagLbl, Real tinLbl)
    Retorna un enlace para una etiqueta que puede ser corta o larga.
  • Text PhtLink(Set pstObj, Real tinLbl)
    Retorna un enlace para un post recibiendolo como objeto y utilizando una etiqueta que puede ser corta o larga.
  • Text PhtLinkCatSet(Set setCat, Real tinLbl)
    Retorna una lista de tipo li con los enlaces para todas las categorias de un conjunto.
  • Text PhtLinkPstSet(Set setPst, Real tinLbl)
    Retorna una lista de tipo li con los enlaces para todos los post de un conjunto.
  • Text PhtFileName(Text tagLbl)
    Retorna limpia la ruta de un fichero eliminado los acentos y todos los caracteres que no son basicos.
  • Text PhtTitle(Text tagLbl, Real tinLbl)
    Retorna para ciertas etiquetas otras mas largas o cortas para utilizarse en los diferentes tipos de menus.

Funciones

Text PhtExpText()

//////////////////////////////////////////////////////////////////////////////
Text PhtExpText(Text txtPst) // Expand basic literals
//////////////////////////////////////////////////////////////////////////////
{ ReplaceTable(txtPst, PhtRepTab, 1) };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Expande pequeños textos muy habituales dentro de los posts.",
PhtExpText);
//////////////////////////////////////////////////////////////////////////////

Text PhtXlsInclude()

//////////////////////////////////////////////////////////////////////////////
Text PhtXlsInclude(Text xlsPth) // Excel.html path
//////////////////////////////////////////////////////////////////////////////
{
  Text xlsHtm = ReadFile(xlsPth);
  Text iniCss = "<style ";
  Text endCss = "</style>";
  Text xlsCss = iniCss +
                TxtBetween2Tag(xlsHtm, iniCss, endCss, FALSE) +
                endCss;
  Text iniBdy = "<body>";
  Text endBdy = "</body>";
  Text xlsBdy = TxtBetween2Tag(xlsHtm, iniBdy, endBdy, FALSE);

  "\n"+xlsCss+"\n"+xlsBdy+"\n"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna, para su inclusión, el resultado de leer el Css y el Html de una
tabla Excel volcada como Html en el fichero de ruta xlsPth.",
PhtXlsInclude);
//////////////////////////////////////////////////////////////////////////////

Text PhtName()

//////////////////////////////////////////////////////////////////////////////
Text PhtName(Set pstObj) // If exists returns else build one
//////////////////////////////////////////////////////////////////////////////
{
  If(pstObj->pstCod!="", pstObj->pstCod,
                         FormatDate(pstObj->pstDte,"%c%Y%m%d%h%m"))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el nombre del post como su codigo si lo tiene y si no lo tiene
utiliza la fecha para crear un nombre.",
PhtName);
//////////////////////////////////////////////////////////////////////////////

Text PhtAName()

//////////////////////////////////////////////////////////////////////////////
Text PhtAName(Set pstObj)
//////////////////////////////////////////////////////////////////////////////
{ "<a name='"+PhtName(pstObj)+"'></a>" };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un enlace con el nombre de un post.",
PhtAName);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkTag()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkTag(Text tagLbl, // Tag label
                Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{ 
  "<a href=" + Q("../"+PhtFileName(tagLbl)) + ">" +
                       PhtTitle   (tagLbl, tinLbl) + "</a>" 
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un enlace para una etiqueta que puede ser corta o larga.",
PhtLinkTag);
//////////////////////////////////////////////////////////////////////////////

Text PhtLink()

//////////////////////////////////////////////////////////////////////////////
Text PhtLink(Set  pstObj, // Post object
             Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  Text pstTit = TxtOutside2Tag(pstObj->pstTit, "<", ">"); 
  PhtLinkTag(pstTit, tinLbl)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un enlace para un post recibiendolo como objeto y utilizando una
etiqueta que puede ser corta o larga.",
PhtLink);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkCatSet()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkCatSet(Set  setCat, // Set of category names
                   Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setCat, Text(Text cat)
                 { "<li>" + PhtLinkTag(cat, tinLbl) + "</li>" })) 
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de tipo li con los enlaces para todas las categorias de un
conjunto.",
PhtLinkCatSet);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkPstSet()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPstSet(Set  setPst, // Set of posts
                   Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setPst, Text(Set pst)
                 { "<li>" + PhtLink(pst, tinLbl) + "</li>" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de tipo li con los enlaces para todos los post de un
conjunto.",
PhtLinkPstSet);
//////////////////////////////////////////////////////////////////////////////

Text PhtFileName()

//////////////////////////////////////////////////////////////////////////////
Text PhtFileName(Text tagLbl) // File tag
//////////////////////////////////////////////////////////////////////////////
{
  Text tagLow = ToLower(tagLbl);
  Text tagRep = ReplaceTable(tagLow,
    [[
       [["á", "a"]], [["é", "e"]], [["í", "i"]], [["ó", "o"]], [["ú", "u"]],
       [["ñ", "n"]]
    ]]);

  Set  letCic = For(1, TextLength(tagRep), Text(Real pos)
  {
    Text let = Sub(tagRep, pos, pos);
    If(Or(And(let>="0", let<="9"), And(let>="a", let<="z")), let, "")
  });
  Text tagCls = Set2Txt(letCic, "", "", "", "", "", "", "", "");
                        
  Text dirNam = Case(
    tagLbl == "Completo", "categorias", // Categoria especial
    tagLbl <: CatAll,     "categorias", // Categoria normal
    TRUE,                 "articulos"); // El resto son articulos
  
  dirNam + "/" + tagCls + ".html"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna limpia la ruta de un fichero eliminado los acentos y  todos los
caracteres que no son basicos.",
PhtFileName);
//////////////////////////////////////////////////////////////////////////////

Text PhtTitle()

//////////////////////////////////////////////////////////////////////////////
Text PhtTitle(Text tagLbl, // For menus
              Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  Case
  (
    tagLbl == "Presentación",
      If(tinLbl, "Inicio",
         "Presentación del contenido"),

    tagLbl == "Derecho e informática",
      If(tinLbl, "Derecho e<br />informática",
         "Área de conceptos del Derecho para informáticos forenses y peritos"),

    tagLbl == "Informática forense",
      If(tinLbl, "Informática<br />forense",
         "Área de conceptos fundamentales de informática forense y pericial"),

    tagLbl == "Investigación básica",
      If(tinLbl, "Investigación<br />básica",
         "Área de investigación en sistemas informáticos"),

    tagLbl == "Investigación avanzada",
      If(tinLbl, "Investigación<br />avanzada",
         "Área de investigación avanzada en informática forense"),

    tagLbl == "Base documental",
      If(tinLbl, "Base<br />documental",
         "Área del caso práctico personal y de la base documental"),

    tagLbl == "Área",
      If(tinLbl, "Áreas",
         "Áreas de conocimiento"),

    tagLbl == "Módulo",
      If(tinLbl, "Módulos",
         "Módulos de informática forense y pericial"),

    tagLbl == "Bibliografía",
      If(tinLbl, "Bibliografía",
         "Bibliografía seleccionada"),
    
    TRUE, tagLbl
  )
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna para ciertas etiquetas otras mas largas o cortas para utilizarse
en los diferentes tipos de menus.",
PhtTitle);
//////////////////////////////////////////////////////////////////////////////

Time oriented language

//////////////////////////////////////////////////////////////////////////////
// FILE    : pht.tol
// AUTHOR  : http://www.asolver.com
// PURPOSE : Posts Html functions.
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// CONSTANT
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
PhtRepTab =
[[
  [["_f.i_",
    "<a href='http://www.forense.info'>Forense.info</a>"]],

  [["_c.e_",
    "<a href='http://www.ciip.es'>Campus Internacional de Inteligencia y Pericia</a>"]],
  [["_C.e_",
    "<a href='http://www.ciip.es'>CIIP</a>"]],
  [["_c:e_",
    "<a href='http://www.ciip.es'>ciip.es</a>"]],

  [["_mas_",
    "<a href='http://www.ciip.es/index.php?option=com_content&amp;view=article&amp;id=202&amp;Itemid=120'>Máster</a>"]],
  [["_esp_",
    "<a href='http://www.ciip.es/index.php?option=com_content&amp;view=article&amp;id=208&amp;Itemid=126'>Especialista</a>"]],
  [["_exp_",
    "<a href='http://www.ciip.es/index.php?option=com_content&amp;view=article&amp;id=214&amp;Itemid=132'>Experto</a>"]]
]] << CriMaiTab; // emails
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Tabla de pequeños textos muy habituales dentro de los posts a expandir.",
PhtRepTab);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
Text PhtExpText(Text txtPst) // Expand basic literals
//////////////////////////////////////////////////////////////////////////////
{ ReplaceTable(txtPst, PhtRepTab, 1) };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Expande pequeños textos muy habituales dentro de los posts.",
PhtExpText);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtXlsInclude(Text xlsPth) // Excel.html path
//////////////////////////////////////////////////////////////////////////////
{
  Text xlsHtm = ReadFile(xlsPth);
  Text iniCss = "<style ";
  Text endCss = "</style>";
  Text xlsCss = iniCss +
                TxtBetween2Tag(xlsHtm, iniCss, endCss, FALSE) +
                endCss;
  Text iniBdy = "<body>";
  Text endBdy = "</body>";
  Text xlsBdy = TxtBetween2Tag(xlsHtm, iniBdy, endBdy, FALSE);

  "\n"+xlsCss+"\n"+xlsBdy+"\n"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna, para su inclusión, el resultado de leer el Css y el Html de una
tabla Excel volcada como Html en el fichero de ruta xlsPth.",
PhtXlsInclude);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtName(Set pstObj) // If exists returns else build one
//////////////////////////////////////////////////////////////////////////////
{
  If(pstObj->pstCod!="", pstObj->pstCod,
                         FormatDate(pstObj->pstDte,"%c%Y%m%d%h%m"))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el nombre del post como su codigo si lo tiene y si no lo tiene
utiliza la fecha para crear un nombre.",
PhtName);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtAName(Set pstObj)
//////////////////////////////////////////////////////////////////////////////
{ "<a name='"+PhtName(pstObj)+"'></a>" };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un enlace con el nombre de un post.",
PhtAName);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkTag(Text tagLbl, // Tag label
                Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{ 
  "<a href=" + Q("../"+PhtFileName(tagLbl)) + ">" +
                       PhtTitle   (tagLbl, tinLbl) + "</a>" 
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un enlace para una etiqueta que puede ser corta o larga.",
PhtLinkTag);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLink(Set  pstObj, // Post object
             Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  Text pstTit = TxtOutside2Tag(pstObj->pstTit, "<", ">"); 
  PhtLinkTag(pstTit, tinLbl)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un enlace para un post recibiendolo como objeto y utilizando una
etiqueta que puede ser corta o larga.",
PhtLink);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkCatSet(Set  setCat, // Set of category names
                   Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setCat, Text(Text cat)
                 { "<li>" + PhtLinkTag(cat, tinLbl) + "</li>" })) 
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de tipo li con los enlaces para todas las categorias de un
conjunto.",
PhtLinkCatSet);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPstSet(Set  setPst, // Set of posts
                   Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setPst, Text(Set pst)
                 { "<li>" + PhtLink(pst, tinLbl) + "</li>" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de tipo li con los enlaces para todos los post de un
conjunto.",
PhtLinkPstSet);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtFileName(Text tagLbl) // File tag
//////////////////////////////////////////////////////////////////////////////
{
  Text tagLow = ToLower(tagLbl);
  Text tagRep = ReplaceTable(tagLow,
    [[
       [["á", "a"]], [["é", "e"]], [["í", "i"]], [["ó", "o"]], [["ú", "u"]],
       [["ñ", "n"]]
    ]]);

  Set  letCic = For(1, TextLength(tagRep), Text(Real pos)
  {
    Text let = Sub(tagRep, pos, pos);
    If(Or(And(let>="0", let<="9"), And(let>="a", let<="z")), let, "")
  });
  Text tagCls = Set2Txt(letCic, "", "", "", "", "", "", "", "");
                        
  Text dirNam = Case(
    tagLbl == "Completo", "categorias", // Categoria especial
    tagLbl <: CatAll,     "categorias", // Categoria normal
    TRUE,                 "articulos"); // El resto son articulos
  
  dirNam + "/" + tagCls + ".html"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna limpia la ruta de un fichero eliminado los acentos y  todos los
caracteres que no son basicos.",
PhtFileName);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtTitle(Text tagLbl, // For menus
              Real tinLbl) // Tiny or long label
//////////////////////////////////////////////////////////////////////////////
{
  Case
  (
    tagLbl == "Presentación",
      If(tinLbl, "Inicio",
         "Presentación del contenido"),

    tagLbl == "Derecho e informática",
      If(tinLbl, "Derecho e<br />informática",
         "Área de conceptos del Derecho para informáticos forenses y peritos"),

    tagLbl == "Informática forense",
      If(tinLbl, "Informática<br />forense",
         "Área de conceptos fundamentales de informática forense y pericial"),

    tagLbl == "Investigación básica",
      If(tinLbl, "Investigación<br />básica",
         "Área de investigación en sistemas informáticos"),

    tagLbl == "Investigación avanzada",
      If(tinLbl, "Investigación<br />avanzada",
         "Área de investigación avanzada en informática forense"),

    tagLbl == "Base documental",
      If(tinLbl, "Base<br />documental",
         "Área del caso práctico personal y de la base documental"),

    tagLbl == "Área",
      If(tinLbl, "Áreas",
         "Áreas de conocimiento"),

    tagLbl == "Módulo",
      If(tinLbl, "Módulos",
         "Módulos de informática forense y pericial"),

    tagLbl == "Bibliografía",
      If(tinLbl, "Bibliografía",
         "Bibliografía seleccionada"),
    
    TRUE, tagLbl
  )
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna para ciertas etiquetas otras mas largas o cortas para utilizarse
en los diferentes tipos de menus.",
PhtTitle);
//////////////////////////////////////////////////////////////////////////////

Árbol de ficheros

iForense construye las paginas del sitio sobre informática forense Forense.Info

  • make.tol proceso principal de generacion del sitio web y todas su páginas
  • tol directorios de código en lenguaje Tol
    • cmm funciones comunes
      • txt.tol código de funciones de textos
      • dte.tol código de funciones de fechas
      • set.tol código de funciones de conjuntos
      • fil.tol código de funciones de ficheros
      • dir.tol código de funciones de directorios
      • tme.tol funciones del macro-expansor doble de Tol en Html
      • img.tol funciones para imagenes declaradas en Html
      • ftp.tol para generar mandatos para hacer Ftp
      • xsm.tol para construir sitemaps en Xml
    • app funciones específicas de aplicación
      • glo.tol de términos del glosario forense e informatico
      • pdb.tol de manejo de los posts de una agenda
      • pht.tol funciones auxiliares para el Html de los post
    • inc.tol para la inclusión de ficheros en lenguaje Tol
  • agenda directorio destinado a la agenda de post
  • web directorio destinado a las páginas web generadas y a contenido
    • css directorio para ficheros de estilo de tipo Css
      • common.css fichero Cascading Style Sheets para las paginas Html
    • seed directorio para ficheros semilla
      • seed.htm semilla de página Html, template, con Tol embebido
    • src directorio para ficheros con código Javascript
      • common.js funciones Javascript de redes sociales y multimedia
    • imagenes directorio de ilustraciones del sitio web
    • articulos directorio para las páginas de artículos de informática forense
    • categorias directorio para paginas de categorias de informática forense
    • sitemap.xml mapa del sitio web generado automáticamente en Xml
  • resultado.html muestra del web de informática forense del dominio Forense.Info
  • iforense.pdf documento resumen de funciones del programa creador del web

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol