como señalizar nuevo contenido

La discusión del CMS Made Simple en español.

Moderator: hexdj

Post Reply
ant666
New Member
New Member
Posts: 3
Joined: Mon Jul 20, 2009 4:24 pm

como señalizar nuevo contenido

Post by ant666 »

Un saludo
quisiera saber si es posible señalizar en el menu que el contenido de esa pagina ha cambiado, bien con un icono de "new" o hacer que el texto parpadee, o cualquier otra forma.
estoy usando la version 1.5.4 de cmsms, plantilla Left simple navigation + 1 column,
hexdj
Power Poster
Power Poster
Posts: 415
Joined: Sat Mar 24, 2007 8:28 am

Re: como señalizar nuevo contenido

Post by hexdj »

@ant666

Buena pregunta, he creado una UDT (Tag personalizada) que se puede usar para saber si una pagina es nueva (basados en la ultima fecha de modificación de esta)

Este es el código de mi UDT, a la que he llamado FreshContent

Code: Select all

global $gCms;
$db =& $gCms->GetDb();

$the_alias = isset($params['alias']) ? $params['alias'] : ""; 

$the_days = isset($params['days']) ? $params['days'] : "";

$the_output = isset($params['output']) ? $params['output'] : "";

$query = "SELECT modified_date FROM ".cms_db_prefix()."content WHERE content_alias=?";
$row = $db->GetRow($query, array($the_alias));
if($row)
{
   $last_mod = strtotime($row['modified_date']);

   $today = time();

   $date_diff = floor(($today - $last_mod)/86400);
  
   if ($date_diff < $the_days)
   {
      return $the_output;
   }
}

else
{
  return "No se encontró dicha pagina de contenido, revisar el <em>alias</em> de la pagina";
}
Parametros:
alias = el alias de la pagina en cuestión, a la que chequeamos si tiene contenido nuevo (basados en la fecha de modificación)
days = el numero de dias maximo en el que una pagina se considera "Nueva"
output = lo que se desea desplegar, si dicha pagina es considerada "Nueva"

Ejemplo:

Code: Select all

{FreshContent alias='home' days='14' output='<img src="new.gif" />'}
El ejemplo anterior verifica si la pagina que tiene el alias 'home' ha sido modificada en los ultimos 14 dias y si es asi despliega una imagen (ver html) llamada new.gif

El output puede ser cualquier codigo HTML que se desee, por ejemplo output="NUEVO!" desplegara un párrafo que dice NUEVO! si la pagina es considerada "Nueva"

Ejemplo #2:

Code: Select all

</__body>
{FreshContent alias=$page_alias days='8' output='<div class="notice">Esta pagina es nueva!</div>'}
...
Si se usa este codigo en una de las plantillas de paginas, se desplegara el div dado si la pagina tiene un maximo de 8 dias de antiguedad.

Ejemplo #3:

Code: Select all

<li>
{FreshContent alias=$node->alias days='5' output='NUEVA!'}
</li>
Este codigo se puede usar en el administrador de menus, y si se agrega en el lugar adecuad, mostrará la palabra "NUEVA!" junto al item del menu que tenga un maximo de 5 dias de antiguedad.

Otros Usos
Este UDT puede ser util en las plantillas de Menu Manager (ver Ejemplo 3), si se desea mostrar un icono (por ejemplo) junto a los enlaces del Menu para paginas que son consideradas "Nuevas"
Last edited by hexdj on Mon Mar 08, 2010 9:03 pm, edited 1 time in total.
Post Reply

Return to “Spanish - Español”