Secciones de la página

pht. tol


Declaraciones


Funciones


Time oriented language


Árbol de ficheros

Funciones

Text PhtExpText()

Text PhtCleanFilePath()

Text PhtLinkClass()

Text PhtLinkPost()

Text PhtLinkClassSet()

Text PhtLinkPostSet()

Text PhtQuote()

Text PhtCleanHtml()

Text PhtSpanishDate()

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 con-Q.tv

Posts Html functions.

Declaraciones

Funciones

  • Text PhtExpText(Text txtHtm, Real ctrHtm)
    Expande pequeños textos muy habituales dentro de los posts.
  • Text PhtCleanFilePath(Text dirNam, Text filNam, Text filExt)
    Retorna limpia la ruta de un fichero eliminado los acentos y cambiando por _ todos los caracteres que no son basicos.
  • Text PhtLinkClass(Text claNam)
    Retorna el link de enlace a una pagina de clases.
  • Text PhtLinkPost(Set pstObj)
    Retorna el link de enlace a un post.
  • Text PhtLinkClassSet(Set setCla)
    Retorna una lista de link de enlaces a un conjunto de clases, a modo de indice.
  • Text PhtLinkPostSet(Set setPst)
    Retorna una lista de link de enlaces a un conjunto de post, a modo de indice.
  • Text PhtQuote(Text resTxt, Real opeQuo, Real common)
    Retorna el codigo html con las imagenes de las comillas de apertura y cierre y el resumen del post.
  • Text PhtCleanHtml(Text htmCod)
    Retorna un codigo limpio de referencias externas a internet, con el objetivo que al enviarse el codigo html por correo electronico el gestor de email no diga que para proteger la privacidad se han bloqueado elementos externos. Tambien elimina los iframes de videos que no se visualizan por email, al hacerlo deja las imagenes insertadas entre el <iframe y el </iframe> que muestran la portada del video. Tambien elimina los anuncios publicitarios.
  • Text PhtSpanishDate(Set objPst)
    Retorna una fecha en formato español, aaaa/mm/dd, al que estan acostumbrados los lectores de la newsletter.

Funciones

Text PhtExpText()

//////////////////////////////////////////////////////////////////////////////
Text PhtExpText(Text txtHtm, // Expande este texto
                Real ctrHtm) // Si true con html si false sin html
//////////////////////////////////////////////////////////////////////////////
{
  Text outHtm = ReplaceTable(txtHtm,
  [[
    [["_avp_", "<a href=" + Q("http://www.avppm.es")  + ">AVPPM</a>"]],
    [["_cnQ_", "<a href=" + Q("http://www.con-q.es")  + ">con-Q</a>"]],
    [["_Qre_", "<a href=" + Q("http://www.qred.es")   + ">Qred</a>"]],
    [["_new_", "<a href=" + Q("../newsletter.html")   + ">Newsletter</a>"]]
  ]], 1); // Solo 1 ciclo
  If(ctrHtm, outHtm, TxtOutHtmScr(outHtm))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Expande pequeños textos muy habituales dentro de los posts.",
PhtExpText);
//////////////////////////////////////////////////////////////////////////////

Text PhtCleanFilePath()

//////////////////////////////////////////////////////////////////////////////
Text PhtCleanFilePath(Text dirNam, // Directorio
                      Text filNam, // Nombre del fichero sin extension
                      Text filExt) // Extension sin punto
//////////////////////////////////////////////////////////////////////////////
{
  Text filLow = ToLower(filNam);
  Text filRep = ReplaceTable(filLow,
    [[
       [["á", "a"]], [["é", "e"]], [["í", "i"]], [["ó", "o"]], [["ú", "u"]],
       [["ñ", "n"]]
    ]]);

  Set  letCic = TxtForChr(filRep, Text(Text let)
  { If(Or(And(let>="0", let<="9"), And(let>="a", let<="z")), let, "_") });

  dirNam + "/" + SetSum(letCic) + "." + filExt
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna limpia la ruta de un fichero eliminado los acentos y cambiando por
_ todos los caracteres que no son basicos.",
PhtCleanFilePath);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkClass()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkClass(Text claNam)
//////////////////////////////////////////////////////////////////////////////
{ 
  Text claPth = PhtCleanFilePath("../quiosco", claNam, "html");
  "<a href=" + Q(claPth) + ">" + claNam + "</a>" 
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el link de enlace a una pagina de clases.",
PhtLinkClass);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkPost()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPost(Set pstObj)
//////////////////////////////////////////////////////////////////////////////
{ "<a href=" + Q("../"+pstObj->pstFil) + ">" + pstObj->pstTit + "</a>" };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el link de enlace a un post.",
PhtLinkPost);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkClassSet()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkClassSet(Set  setCla) // Set of classes
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setCla, Text(Text claNam)
  { "<li>" + PhtLinkClass(claNam) + ".</li>" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de link de enlaces a un conjunto de clases,
a modo de indice.",
PhtLinkClassSet);
//////////////////////////////////////////////////////////////////////////////

Text PhtLinkPostSet()

//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPostSet(Set  setPst) // Set of posts
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setPst, Text(Set pstObj)
  { "<li>" + PhtLinkPost(pstObj) + ".</li>" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de link de enlaces a un conjunto de post,
a modo de indice.",
PhtLinkPostSet);
//////////////////////////////////////////////////////////////////////////////

Text PhtQuote()

//////////////////////////////////////////////////////////////////////////////
Text PhtQuote(Text resTxt, // Resume text
              Real opeQuo, // Open quote, ese close
              Real common) // Normal color
//////////////////////////////////////////////////////////////////////////////
{
  Text filQuo = Case
  (
    And( opeQuo,  common), "quoteopenred.png",
    And( opeQuo, !common), "quoteopenwhite.png",
    And(!opeQuo,  common), "quoteclosered.png",
    And(!opeQuo, !common), "quoteclosewhite.png",
    TRUE,                  "quoteopenred.png"
  );
  Text htmQuo = "<p><img src=" + Q("../css/"+filQuo) +
                       " alt=" + Q("Resumen de la noticia") + " />";
  TxtReplaceFirst(resTxt, "<p>", htmQuo)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el codigo html con las imagenes de las comillas de apertura y
cierre y el resumen del post.",
PhtQuote);
//////////////////////////////////////////////////////////////////////////////

Text PhtCleanHtml()

//////////////////////////////////////////////////////////////////////////////
Text PhtCleanHtml(Text htmCod) // Limpia para email, deja interior iframe
//////////////////////////////////////////////////////////////////////////////
{
  Text notDoc = TxtOutside2Tag(htmCod, "<!DOCTYPE",         ">"); 
  Text notXml = "<html>" + 
                TxtOutside2Tag(notDoc, "<html",             ">");
  Text notBck = TxtOutside2Tag(notXml, "background-image:", ";");
  Text notEFr = Replace(       notBck, "</iframe>",         "");
  Text notIFr = TxtOutside2Tag(notEFr, "<iframe",           ">"); 
  Text notIco = TxtOutside2Tag(notIFr, "<link rel=",        ">");
  Text notScr = TxtOutside2Tag(notIco, "<script",           "</script>");
  Text notFrm = TxtOutside2Tag(notScr, "<form",             "</form>");
  Text notAds = TxtOutside2Tag(notFrm, AdsCla,             "</div>");
  notAds
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un codigo limpio de referencias externas a internet,
con el objetivo que al enviarse el codigo html por correo electronico
el gestor de email no diga que para proteger la privacidad se han bloqueado
elementos externos.
Tambien elimina los iframes de videos que no se visualizan por email,
al hacerlo deja las imagenes insertadas entre el <iframe y el </iframe> que
muestran la portada del video.
Tambien elimina los anuncios publicitarios.",
PhtCleanHtml);
//////////////////////////////////////////////////////////////////////////////

Text PhtSpanishDate()

//////////////////////////////////////////////////////////////////////////////
Text PhtSpanishDate(Set  objPst) // Posts
//////////////////////////////////////////////////////////////////////////////
{
  Text dteTxt = TxtBetween2Tag(objPst->pstFil,"noticia/","_", TRUE);
  Sub(dteTxt,7,8)+"/"+Sub(dteTxt,5,6)+"/"+Sub(dteTxt,1,4)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una fecha en formato español, aaaa/mm/dd, al que estan acostumbrados
los lectores de la newsletter.",
PhtSpanishDate);
//////////////////////////////////////////////////////////////////////////////

Time oriented language

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


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

//////////////////////////////////////////////////////////////////////////////
Text PhtExpText(Text txtHtm, // Expande este texto
                Real ctrHtm) // Si true con html si false sin html
//////////////////////////////////////////////////////////////////////////////
{
  Text outHtm = ReplaceTable(txtHtm,
  [[
    [["_avp_", "<a href=" + Q("http://www.avppm.es")  + ">AVPPM</a>"]],
    [["_cnQ_", "<a href=" + Q("http://www.con-q.es")  + ">con-Q</a>"]],
    [["_Qre_", "<a href=" + Q("http://www.qred.es")   + ">Qred</a>"]],
    [["_new_", "<a href=" + Q("../newsletter.html")   + ">Newsletter</a>"]]
  ]], 1); // Solo 1 ciclo
  If(ctrHtm, outHtm, TxtOutHtmScr(outHtm))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Expande pequeños textos muy habituales dentro de los posts.",
PhtExpText);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtCleanFilePath(Text dirNam, // Directorio
                      Text filNam, // Nombre del fichero sin extension
                      Text filExt) // Extension sin punto
//////////////////////////////////////////////////////////////////////////////
{
  Text filLow = ToLower(filNam);
  Text filRep = ReplaceTable(filLow,
    [[
       [["á", "a"]], [["é", "e"]], [["í", "i"]], [["ó", "o"]], [["ú", "u"]],
       [["ñ", "n"]]
    ]]);

  Set  letCic = TxtForChr(filRep, Text(Text let)
  { If(Or(And(let>="0", let<="9"), And(let>="a", let<="z")), let, "_") });

  dirNam + "/" + SetSum(letCic) + "." + filExt
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna limpia la ruta de un fichero eliminado los acentos y cambiando por
_ todos los caracteres que no son basicos.",
PhtCleanFilePath);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkClass(Text claNam)
//////////////////////////////////////////////////////////////////////////////
{ 
  Text claPth = PhtCleanFilePath("../quiosco", claNam, "html");
  "<a href=" + Q(claPth) + ">" + claNam + "</a>" 
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el link de enlace a una pagina de clases.",
PhtLinkClass);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPost(Set pstObj)
//////////////////////////////////////////////////////////////////////////////
{ "<a href=" + Q("../"+pstObj->pstFil) + ">" + pstObj->pstTit + "</a>" };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el link de enlace a un post.",
PhtLinkPost);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkClassSet(Set  setCla) // Set of classes
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setCla, Text(Text claNam)
  { "<li>" + PhtLinkClass(claNam) + ".</li>" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de link de enlaces a un conjunto de clases,
a modo de indice.",
PhtLinkClassSet);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPostSet(Set  setPst) // Set of posts
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(setPst, Text(Set pstObj)
  { "<li>" + PhtLinkPost(pstObj) + ".</li>" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una lista de link de enlaces a un conjunto de post,
a modo de indice.",
PhtLinkPostSet);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtQuote(Text resTxt, // Resume text
              Real opeQuo, // Open quote, ese close
              Real common) // Normal color
//////////////////////////////////////////////////////////////////////////////
{
  Text filQuo = Case
  (
    And( opeQuo,  common), "quoteopenred.png",
    And( opeQuo, !common), "quoteopenwhite.png",
    And(!opeQuo,  common), "quoteclosered.png",
    And(!opeQuo, !common), "quoteclosewhite.png",
    TRUE,                  "quoteopenred.png"
  );
  Text htmQuo = "<p><img src=" + Q("../css/"+filQuo) +
                       " alt=" + Q("Resumen de la noticia") + " />";
  TxtReplaceFirst(resTxt, "<p>", htmQuo)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el codigo html con las imagenes de las comillas de apertura y
cierre y el resumen del post.",
PhtQuote);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtCleanHtml(Text htmCod) // Limpia para email, deja interior iframe
//////////////////////////////////////////////////////////////////////////////
{
  Text notDoc = TxtOutside2Tag(htmCod, "<!DOCTYPE",         ">"); 
  Text notXml = "<html>" + 
                TxtOutside2Tag(notDoc, "<html",             ">");
  Text notBck = TxtOutside2Tag(notXml, "background-image:", ";");
  Text notEFr = Replace(       notBck, "</iframe>",         "");
  Text notIFr = TxtOutside2Tag(notEFr, "<iframe",           ">"); 
  Text notIco = TxtOutside2Tag(notIFr, "<link rel=",        ">");
  Text notScr = TxtOutside2Tag(notIco, "<script",           "</script>");
  Text notFrm = TxtOutside2Tag(notScr, "<form",             "</form>");
  Text notAds = TxtOutside2Tag(notFrm, AdsCla,             "</div>");
  notAds
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un codigo limpio de referencias externas a internet,
con el objetivo que al enviarse el codigo html por correo electronico
el gestor de email no diga que para proteger la privacidad se han bloqueado
elementos externos.
Tambien elimina los iframes de videos que no se visualizan por email,
al hacerlo deja las imagenes insertadas entre el <iframe y el </iframe> que
muestran la portada del video.
Tambien elimina los anuncios publicitarios.",
PhtCleanHtml);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtSpanishDate(Set  objPst) // Posts
//////////////////////////////////////////////////////////////////////////////
{
  Text dteTxt = TxtBetween2Tag(objPst->pstFil,"noticia/","_", TRUE);
  Sub(dteTxt,7,8)+"/"+Sub(dteTxt,5,6)+"/"+Sub(dteTxt,1,4)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una fecha en formato español, aaaa/mm/dd, al que estan acostumbrados
los lectores de la newsletter.",
PhtSpanishDate);
//////////////////////////////////////////////////////////////////////////////

Árbol de ficheros

con-Q.tv construye las páginas del sitio y newsletter Con-Q.tv

  • make.tol proceso principal de generacion del sitio web y la newsletter
  • tol directorios de código Tol
    • cmm funciones comunes
      • txt.tol funciones de textos
      • set.tol funciones de conjuntos
      • fil.tol funciones de ficheros
      • dir.tol funciones directorios
      • tme.tol funciones del macro-expansor de Tol en Html
      • img.tol funciones de imagenes Html
      • ftp.tol para generar mandatos para hacer Ftp
      • xsm.tol para construir sitemaps en Xml
    • app funciones especificas de aplicacion
      • ads.tol funciones de anuncios de publicidad
      • pdb.tol funciones 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 Tol
  • agenda directorio destinado a la agenda de post
  • web directorio destinado a las páginas web generadas
    • css directorio para ficheros de estilo
      • common.css fichero de estilo Css para las páginas Html
    • seed directorio para ficheros semilla
      • seed.htm semilla de página Html con Tol embebido
      • lopd.htm texto Lopd para insertar en la newsletter de envío por email
    • src directorio para ficheros con código Javascript
      • common.js funciones Javascript para diferentes redes sociales
    • noticia directorio para páginas de noticias
    • quiosco directorio para páginas Html de categorias
      • asamblea.html ejemplo de página de categoría generada automáticamente
    • sitemap.xml mapa completo del sitio web generado en Xml automáticamente
  • presentacion.html vídeo de presentación de la Newsletter de la Avppm
  • con-q_tv.pdf documento resumen de funciones del programa de la newsletter

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

Tol