Thursday, 15 October 2015
  1 Replies
  1K Visits
0
Votes
Undo
Hi,
I was using jevents and i noticed that there was a problem with DST in a comparation , making non-DST dates vs DST dates events not appear, because it's not having the right "if condition" anwser (by 1 hour). i made a modification in components/com_jevents/libraries/jicaleventcalrepeat.php
and it started to work again.

 function eventOnDate($testDate, $multidayTreatment = 0)
{

if (!isset($this->_startday))
{
$this->_startday = JevDate::mktime(0, 0, 0, $this->mup(), $this->dup(), $this->yup());
$this->_startday_plus1 = JevDate::mktime(0, 0, 0, $this->mup(), $this->dup()+1, $this->yup());
$this->_endday = JevDate::mktime(0, 0, 0, $this->mdn(), $this->ddn(), $this->ydn());
// if ends on midnight then testing day should ignore the second day since no one wants this event to show
if ($this->hdn() + $this->mindn() + $this->sdn() == 0 && $this->_startday != $this->_endday)
{
$this->_endday = JevDate::mktime(0, 0, 0, $this->mdn(), $this->ddn()-1, $this->ydn());
}

//check both DST
$atual = $testDate;
$atual_localtime = localtime($atual,true);
$atual_horario_verao = $atual_localtime['tm_isdst'];
$date_localtime = localtime($this->_startday,true);
$date_horario_verao = $date_localtime['tm_isdst'];
//correct the hours
if($atual_horario_verao && !$date_horario_verao)
{
$this->_startday -= 3600;
$this->_endday -= 3600;
}
else if(!$atual_horario_verao && $date_horario_verao)
{
$this->_startday += 3600;
$this->_endday += 3600;
}



}
if ($this->_startday <= $testDate && $this->_endday >= $testDate)
{
// if only show on first day
if ($multidayTreatment == 2 && $testDate >= $this->_startday_plus1)
{
return false;
}
// don't show multiday suppressed events after the first day if multiday is not true
if ($multidayTreatment == 0)
{
if (!$this->_multiday && $testDate >= $this->_startday_plus1)
{
return false;
}
}
return true;
}
else
return false;

}
Friday, 16 October 2015 15:58
·
#158194
0
Votes
Undo
what timezone settings do you have within JEvents config and also what version of JEvents and Joomla do you have?

JEvents Club members can get priority forum support at the Support Forum. As well as access to a variety of custom JEvents addons and benefits. Join the JEvents club today!

  • Page :
  • 1
There are no replies made for this post yet.

Members Area

Show your support

Unlike many Joomla calendars we do not charge to download JEvents - please show your support for this project by becoming a member of the JEvents Club Club members get access to early releases, exclusive member support forums, and Silver and Gold members can use many exciting JEvents addons

Your membership will ensure that JEvents continues to be the best events calendar for Joomla.