Posts Html functions.
//////////////////////////////////////////////////////////////////////////////
// FILE : pht.tol
// AUTHOR : http://www.asolver.com
// PURPOSE : Posts Html functions.
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtRedTitle(Text tit)
//////////////////////////////////////////////////////////////////////////////
{
// 123456789.123456789.123456789.123456
// <h2 class="title">Quienes somos</h2>
Text ini = Sub(tit, 1,18);
Real len = TextLength(tit);
Text end = Sub(tit, len-4, len);
Text mid = If(TextFind(tit, "_"), PhtRedText(Sub(tit, 19, len-5)),
{
Sub(tit, 19, 19)+
"<span class='red'>"+Sub(tit, 20, 20)+"</span>"+
Sub(tit, 21, len-5)
});
Text htm = ini+mid+end;
htm
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Puts red the second letter.",
PhtRedTitle);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtRedText(Text txt)
//////////////////////////////////////////////////////////////////////////////
{
Set tab =
[[
// Editorial
[["_eaC_", "<span class='aC'>Ediciones a<span class='red'>C</span>ontracorriente</span>"]],
[["_aCo_", "<span class='aC'>a<span class='red'>C</span>ontracorriente</span>"]],
// Colecciones en grande y letra en su color
[["_aQr_", "<span class='aC'>a<span class='grey' >Q</span>uemarropa</span>"]],
[["_aMl_", "<span class='aC'>a<span class='pink' >M</span>edialuz</span>"]],
[["_aMn_", "<span class='aC'>a<span class='blue' >M</span>edianoche</span>"]],
[["_aTp_", "<span class='aC'>a<span class='yellow'>T</span>odaplana</span>"]],
[["_aFd_", "<span class='aC'>a<span class='green' >F</span>ondo</span>"]],
// Colecciones letra en su color y el resto igual
[["_aQr=", "a<span class='grey' >Q</span>uemarropa"]],
[["_aMl=", "a<span class='pink' >M</span>edialuz"]],
[["_aMn=", "a<span class='blue' >M</span>edianoche"]],
[["_aTp=", "a<span class='yellow'>T</span>odaplana"]],
[["_aFd=", "a<span class='green' >F</span>ondo"]],
// Tienda
[["_Pdg_", "<span class='aC'>P<span class='red'>a</span>ck Digital</span>"]],
[["_Pd:_", "<span class='aC'>P<span class='red'>a</span>ck digital:</span>"]],
[["_Pwd_", "<span class='aC'>P<span class='red'>a</span>labra clave</span>"]],
[["_Edd_", "<span class='aC'>D<span class='red'>e</span>scarga directa</span>"]],
[["_Edm_", "<span class='aC'>D<span class='red'>i</span>recta mediante email</span>"]],
[["_Eag_", "<span class='aC'>E<span class='red'>d</span>ición agotada</span>"]],
[["_Epo_", "<span class='aC'>E<span class='red'>n</span>vío postal</span>"]],
[["_Epg_", "<span class='aC'>E<span class='red'>n</span>vío postal, coste incluido a España</span>"]],
// Precios (antiguos, creo que no los uso, se podrían borrar)
[["_000_", "<span class='aC'>E<span class='red'>d</span>ición no venal</span> (edición gratuita)"]],
[["_040_", "<span class='aC'>P<span class='red'>V</span>P 4,00 €</span>"]],
[["_041_", "<span class='aC'>P<span class='red'>V</span>P 4,10 €</span>"]],
[["_049_", "<span class='aC'>P<span class='red'>V</span>P 4,90 €</span>"]],
// Precios
[["_002.70_", "<span class='aC'>P<span class='red'>V</span>P 2,70 €</span>"]],
[["_003.99_", "<span class='aC'>P<span class='red'>V</span>P 3,99 €</span>"]],
[["_003.95_", "<span class='aC'>P<span class='red'>V</span>P 3,95 €</span>"]],
[["_004.50_", "<span class='aC'>P<span class='red'>V</span>P 4,50 €</span>"]],
[["_004.60_", "<span class='aC'>P<span class='red'>V</span>P 4,60 €</span>"]],
[["_012.95_", "<span class='aC'>P<span class='red'>V</span>P 12,95 €</span>"]],
[["_019.95_", "<span class='aC'>P<span class='red'>V</span>P 19,95 €</span>"]],
[["_150.00_", "<span class='aC'>P<span class='red'>V</span>P 150,00 €</span>"]],
[["_400.00_", "<span class='aC'>P<span class='red'>V</span>P 400,00 €</span>"]],
// Varios
[["_Pr!_", "<span class='aC'>¡P<span class='red'>r</span>óximamente!</span>"]],
[["_gra_", "<span class='aC'>g<span class='red'>r</span>atis</span>"]],
[["_Cob_", "<span class='aC'>C<span class='red'>o</span>brar</span>"]],
[["_Non_", "<span class='aC'>N<span class='red'>o</span></span>"]]
]] <<
CriMaiTab; // emails
ReplaceTable(txt, tab, 1) // Con los anteriores textos reemplazados
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Tablas de sustitucion de textos abreviados.",
PhtRedText);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtName(Set pstObj) //
//////////////////////////////////////////////////////////////////////////////
{
Text ideTxt = If(pstObj->pstCod!="",
pstObj->pstCod,
FormatDate(pstObj->pstDte,"%c%Y%m%d%h%m"));
Htm2Ide("aC", ideTxt, FALSE) // Convertir el texto en valido para Html
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"If exists a code returns the code as name, else build one code using the
date of the post.",
PhtName);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtAName(Set pstObj)
//////////////////////////////////////////////////////////////////////////////
{ "<a name='"+PhtName(pstObj)+"'></a>" };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta a name para un post.",
PhtAName);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtLinkTag(Text tag,
Text sep) // Separator space or <br />
//////////////////////////////////////////////////////////////////////////////
{
Text url = Case
(
tag=="Blog", "http://editando-blog.edicionesacontracorriente.com",
TRUE, "../"+PhtFileName(tag)
);
"<a href=\"" + url + "\">" + PhtTitle(tag,sep) + "</a>"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta a href para una etiqueta y opcionalmente puede ponerle
un separador.",
PhtLinkTag);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtLink(Set pstObj, // Post object
Real extern) // If true external
//////////////////////////////////////////////////////////////////////////////
{
Text pstTit = TxtOutside2Tag(pstObj->pstTit, "<", ">");
If(extern, PhtLinkTag(pstTit, " "),
{
Text pstNam = PhtName(pstObj);
"<a href=\"#" + pstNam + "\">" + pstTit + "</a>"
})
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta a href para un objeto post.",
PhtLink);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtLinkCatSet(Set set)
//////////////////////////////////////////////////////////////////////////////
{
SetSum(EvalSet(set, Text(Text cat)
{ "<li>"+PhtLinkTag(cat, " ")+"</li>\n" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un conjunto de li de enlace a href para todo el conjunto set de
categorias.",
PhtLinkCatSet);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPstSet(Set set, // Set of posts
Real ext) // If true external
//////////////////////////////////////////////////////////////////////////////
{
SetSum(EvalSet(set, Text(Set pst)
{ "<li>"+PhtLink(pst, ext)+"</li>\n" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un conjunto de li de enlace a href para todo el conjunto set de
posts.",
PhtLinkPstSet);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtFileName(Text tag) // File tag
//////////////////////////////////////////////////////////////////////////////
{
Text tagLow = ToLower(tag);
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 = If(tag <: CatAll, "categorias", "articulos");
dirNam + "/" + tagCls + ".html"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una ruta para un fichero a partir del tag que lo identifica,
las rutas son diferentes para las categorias y los articulos.",
PhtFileName);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text PhtTitle(Text tag, // For menus
Text sep) // Separator space or <br />
//////////////////////////////////////////////////////////////////////////////
{
Case
(
tag=="Editorial", "Vuestra"+sep+"editorial",
tag=="Autor", "Los"+sep+"autores",
tag=="Tienda", "Tienda"+sep+"online",
tag=="Publicar", "Contacta"+sep+"y publica",
tag=="Blog", "¡Editando!"+sep+"Blog",
// Realmente es Editando! Blog sin ¡
tag=="Catálogo", "Todas las colecciones",
tag=="Hojear", "Hojear libros",
tag=="Vídeo", "Vídeos",
tag=="AnsoteguiL", "Lucia Ansótegui",
tag=="ArduinoM", "Manuel Arduino",
tag=="CalaveraDiabloCG", "CalaveraDiablo",
tag=="BecquerGA", "G. A. Becquer",
tag=="BlondeS", "So Blonde",
tag=="MesaJG", "J. G. Mesa",
tag=="PalaciosT", "Teo Palacios",
TRUE, tag
)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna unos textos mas visuales y significativos para determinados tags.",
PhtTitle);
//////////////////////////////////////////////////////////////////////////////
Ediciones.aContracorriente construye las páginas del sitio web edicionesacontracorriente.com
2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio