Afgelopen dagen heb ik mijn website naar versie 1.9.2 gebracht. Een van de modules die ik gebruik is Cataloger. De versie hiervan (0.9) is hetzelfde voor en na de upgrade. De meeste andere modules zijn wel vernieuwd. Op alle templates heb ik onderaan de content de tag {modified_date format='%A, %d %B %Y %H:%M'} staan. Na de update staat deze met de correcte datum op alle 'gewone' pagina's, maar niet op de Cataloger pagina's. Alle Cataloger pagina's geven deze timestamp: donderdag, 01 januari 1970 01:33. De timestamps in de database zijn correct.
Ik heb gezien dat de plugin voor 1.9.2 is veranderd, maar ook als ik een UDT maak volgens de oude code dan werkt het niet voor deze pagina's (wel voor de gewone content). Kan iemand mij hierbij helpen?
[Opgelost] modified_date tag doet het gedeeltelijk na 1.9.2
Moderator: velden
[Opgelost] modified_date tag doet het gedeeltelijk na 1.9.2
Last edited by jellef on Tue Feb 08, 2011 10:24 pm, edited 2 times in total.
Re: modified_date tag doet het gedeeltelijk na 1.9.2 update
Beste Jellef,
ik ben ook benieuwd wie hier een oplossing voor heeft, ik heb hier ook een tijdje meegestoeid en geen oplossing gevonden.
Cataloger gebruikt mdate voor lastmodified.
ik ben ook benieuwd wie hier een oplossing voor heeft, ik heb hier ook een tijdje meegestoeid en geen oplossing gevonden.
Cataloger gebruikt mdate voor lastmodified.
Re: modified_date tag doet het gedeeltelijk na 1.9.2 update
----------
Last edited by deactivated010521 on Tue Mar 12, 2013 5:25 pm, edited 1 time in total.
Re: modified_date tag doet het gedeeltelijk na 1.9.2 update
Arnoud,
Sorry, maar dit is mij iets te cryptisch. Wat moet ik aanpassen om dit werkend te krijgen?
Overigens, hoe kan het dat de functie wel goed werkt voor 'content' type pagina's en niet voor type 'catalog*'?
Jelle
Sorry, maar dit is mij iets te cryptisch. Wat moet ik aanpassen om dit werkend te krijgen?
Overigens, hoe kan het dat de functie wel goed werkt voor 'content' type pagina's en niet voor type 'catalog*'?
Jelle
[Opgelost]Re: modified_date tag doet het gedeeltelijk na 1.9
Na bestudering van de vorige aanwijzing (dank, Arnoud) begrijp ik toch waar het probleem zit. Standaard komt $content_obj->GetModifiedDate() sinds CMSMS 1.9 kennelijk terug met de 'epoch' waarde, i.p.v. de timestamp string. Helaas, ondanks de melding dat Cataloger 0.9 compatibel moet zijn met CMSMS 1.9.2 is dat niet zo. Binnen Cataloger geeft de functie modified_date de (oude) timestamp string terug.
De oplossing is vrij simpel in de vorm van een UDT (heb hem Cataloger_modified genoemd):
Dit is weinig anders als een aangepaste functie modified_date, waarbij de timpestamp wordt omgezet in de epoch code en vervolgens normaal wordt verwerkt. De functie is met dezelfde parameters aan te roepen.
De oplossing is vrij simpel in de vorm van een UDT (heb hem Cataloger_modified genoemd):
Code: Select all
global $gCms;
$content_obj = $gCms->variables['content_obj'];
if(empty($params['format']))
{
$format = "%x %X";
}
else
{
$format = $params['format'];
}
$str = '';
if (is_object($content_obj) && $content_obj->GetModifiedDate() && $content_obj->GetModifiedDate() > -1)
{
$time = strtotime($content_obj->GetModifiedDate());
$str = htmlentities(strftime($format, $time));
}
if( isset($params['assign']) )
{
$smarty = $gCms->GetSmarty();
$smarty->assign($params['assign'],$str);
return;
}
return $str;