Plantillas de calendarios

Las plantillas de calendarios corresponden a una lista de artículos agrupados por fechas, de forma que se visualiza un calendario con el mes generado que mostrará links a las portadillas de vista diaria, donde se desplegará una lista de artículos de un día en particular.

Publicado: Lunes 8 de octubre de 2018 por David García
Última modificación: Jueves 20 de agosto de 2020

Las plantillas de calendarios corresponden a una lista de artículos agrupados por fechas, de forma que se visualiza un calendario con el mes generado que mostrará links a las portadillas de vista diaria, donde se desplegará una lista de artículos de un día en particular.

Ejemplo de una vista de calendario que cuyo link corresponde a los artículos generados el dia 27. el resto de los dias que no generaron articulos se desplegará vacío:

Ubicación de las plantillas

La plantilla mescalendar.html usada para generar el calendario con los links a los dias en que se generaron artículos tiene el siguiente formato y se encuentra en el directorio /[nombre del sitio]/plantillas/extra/calendar/mes/port/mescalendar.ext

Ruta:

/[nombre del sitio]/plantillas/extra/calendar/mes/port/mescalendar.html

Ejemplo de código de plantilla mescalendar.html

<form id="formCalendar" method="post" action="">
   <!-- CALENDAR -->
<script type="text/javascript" src="/calendar/js-local/_calendar.js"></script>
<!-- /CALENDAR -->
<h2>Calendario de Artículos del %%mm%% de %%aaaa%% </h2>
<table width="230" border="0" cellspacing="0" cellpadding="0">
<tr valign="top" align="center">
<td style="border: 0px none;">
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="cal-tabla">
<tr align="center">
<td colspan="7" valign="middle" class="cal-rotulo">
<!-- CALENDAR -->
   %%nom_mes%% %%aaaa%% &nbsp
<!-- /CALENDAR -->
</td>
</tr>
<tr align="center" valign="middle">
<td class="cal-top">Lu</td>
<td class="cal-top">Ma</td>
<td class="cal-top">Mi</td>
<td class="cal-top">Ju</td>
<td class="cal-top">Vi</td>
<td class="cal-top">Sa</td>
<td class="cal-top">Do</td>
</tr>
%%loop%%
<tr align="center">
<td class="cal-cont">%%lun%%</td>
<td class="cal-cont">%%mar%%</td>
<td class="cal-cont">%%mie%%</td>
<td class="cal-cont">%%jue%%</td>
<td class="cal-cont">%%vie%%</td>
<td class="cal-cont">%%sab%%</td>
<td class="cal-cont">%%dom%%</td>
</tr>
%%/loop%%
</table>
</td>
</tr>
</table>
</form>

La plantilla  portallcalendar.html  encargada de desplegar una lista de artículos de todas las secciones generados el mismo día se encuentra en:

/[nombre del sitio]/plantillas/extra/calendar/fechap/pags/portallcalendar.html

Ejemplo de código de portallcalendar.html: 

<!DOCTYPE html>
<html lang="es">
<head>
<!--# block name="blank" --><!--# endblock -->
<!--#config timefmt="%Y%m" -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Calendario</title>
%%macro(macro_headtags.html)%%
<link type="text/css" rel="stylesheet" href="/%%_prontus_id%%/css/global.css" />
<link href="/%%_prontus_id%%/css/carrusel.css" rel="stylesheet" type="text/css">
<?php include($_SERVER['DOCUMENT_ROOT']."/%%_prontus_id%%/js-local/_includedjavascripts.html");?>
</head>
<body id="wrap-articulos">
<!-- inicio header-->
<?php include($_SERVER['DOCUMENT_ROOT']."/%%_prontus_id%%/site/edic/base/port/_p_header.html"); ?>
<!-- fin header-->
<div id="main">
<section id="noticias">
<div class="breadcrumbs">
Usted está en: <a href="#"> Noticias de %%_fechaplong%% </a>
</div>
<br/>
%%loop%%
<article>
<div>
%%if(fotofija_port370)%%
<a href="%%_fileurl%%">
<img src="%%fotofija_port370%%" alt="%%_titular%%" title="%%_titular%%" />
</a>
<div>
<a href="#"></a>
<a href="%%_fileurl%%" class="leer-mas">Leer más +</a>
</div>
%%/if%%
</div>
<h3><a href="%%_fileurl%%">%%_titular(65)%%</a></h3>
%%if(_txt_bajada)%%
%%_txt_bajada(120)%%
%%/if%%
%%if(_nom_seccion1)%%
<span>
<a href="/%%_prontus_id%%/site/tax/port/all/taxport_%%_seccion1%%___1.html">%%_nom_seccion1%%</a>
</span>
%%/if%%
%%if(fecha)%%
<span>%%fecha%% %%if(anyofecha)%%de %%anyofecha%%%%/if%%</span>
%%/if%%
%%nif(fecha)%%
<span>%%_fechaplong%%</span>
%%/nif%%
<span></span><!-- separa -->
</article>
<br/>
%%/loop%%
</div>
</section>
<!-- fin contenido-->
<!-- inicio footer-->
<?php include($_SERVER['DOCUMENT_ROOT']."/%%_prontus_id%%/site/edic/base/port/_p_footer.html"); ?>
<!-- fin footer-->
</body>
</html>

La plantilla portcalendar.html es utilizada para generar salidas HTML correspondientes a un día específico y a una sección específica de la taxonomía del sitio Prontus

/< prontus_id >/plantillas/extra/calendar/fechap/pags/portcalendar.html 

<!DOCTYPE html>
<html lang="es">
  <head>
    <!--# block name="blank" --><!--# endblock -->
    <!--#config timefmt="%Y%m" -->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Calendario</title>
  </head>
  <body id="wrap-articulos">
   <div id="main">
     <section  id="noticias">
        <div>
          Usted está en: <a href="#">Calendario</a>
        </div>
        <!--Rotulo-->
        <div>
          <h3>Noticias de %%_fechaplong%%</h3>
        </div>
        <!--Fin Rotulo-->
        %%loop%%
        <article>
          <div>
            %%if(fotofija_port370)%%
              <a href="%%_fileurl%%">
                <img src="%%fotofija_port370%%" alt="%%_titular%%" title="%%_titular%%" />
              </a>
              <div>
                  <a href="%%_fileurl%%">Leer más +</a>
              </div>
            %%/if%%
          </div>
            <h3><a href="%%_fileurl%%">%%_titular(65)%%</a></h3>
            %%if(_txt_bajada)%%
                %%_txt_bajada(120)%%
            %%/if%%
            %%if(_nom_seccion1)%%
            <span>
              <a href="/%%_prontus_id%%/site/tax/port/all/taxport_%%_seccion1%%___1.html">%%_nom_seccion1%%</a>
            </span>
            %%/if%%
            %%if(fecha)%%
              <span>%%fecha%% %%if(anyofecha)%%de %%anyofecha%%%%/if%%</span>
            %%/if%%
            %%nif(fecha)%%
              <span>%%_fechaplong%%</span>
            %%/nif%%
        </article>
        %%/loop%%
      </div>
    </section>
   </div>
  </body>
</html>

Marcas 
  • %%nomsecc%% : Nombre de la sección
  • %%secc%%: Identificador de la sección
  • %%aaaa%%: Año mostrado en el calendario
  • %%mm%%: Mes mostrado en el calendario (numérico)
  • %%nom_mes%%: Nombre del mes mostrado en el calendario
  • %%nom_mes%%: Nombre del mes mostrado en el calendario
  • %%loop%%: Sección que se repite y que corresponde a una semana.

%%lun%%, %%mar%%, %%mie%%, %%jue%%, %%vie%%, %%sab%%, %%dom%% : Día de la semana dentro de la sección que se repite. Esta marca será sustituída por el número del día linkeado a la portadilla de los artículos de ese día para esa sección si es que existen. En caso contrario el número aparecerá sin link.

LOOP día

Muestra los últimos artículos de ese día.

Por ejemplo:

%%loop_lun(3)%%
    <!-- Mostrar últimos 3 artículos por día -->
    <div class="actividad" title="%%_ts%%: %%_titular%%">
      [%%_horap%%]%%_titular(30)%%
    </div>
  %%/loop_lun%%

Dentro de estos loops puede insertarse cualquier marca del artículo.

Otros LOOP: 

%%loop_lun(n)%%

%%loop_mar(n)%%

%%loop_mie(n)%%

%%loop_jue(n)%%

%%loop_vie(n)%%

%%loop_sab(n)%%

%%loop_dom(n)%%

Generación de los calendarios 

Para generar los calendarios y las portadillas diarias debe invocarse el script prontus_cron_taxcalend.cgi.

Este script puede ejecutarse como cron. Los parámetros son los siguientes:

  1. Directorio del Prontus, relativo a la raíz del sitio web.
  2. Mes para el que se ejecuta el proceso, en formato aaaamm. Si se omite, se procesa el mes en curso.

0 * * * * /usr/bin/perl /sites/prontus.cl/web/cgi-cpn/prontus_cron_taxcalend.cgi prontus_agenda 200803