Sunday, 18 October 2026
  0 Replies
  2 Visits
0
Votes
Undo
Dear all,

I got an issue (warning) on my monthly calender and AI support confirmed what I read from the source:

Warning: Undefined variable $icalrows in /components/com_jevents/libraries/datamodel.php on line 298
Version: 3.6.102 on Joomla 6.2

The issue is that $ icalrows is only assigned inside the if (! $ veryshort) branch, but it is used afterward in all cases:

$data['rows'] = $icalrows;

When $ veryshort is true, only $ rows is initialized:

else
{
$rows = array();
}

As a result, $ icalrows is undefined. This may trigger a PHP warning, and $ data['rows'] will not be set reliably.

Simple fix

Initialize both variables before the condition, then assign $data['rows'] afterward:

$icalrows = array();
$rows = array();

if (!$veryshort)
{
$icalrows = $this->queryModel->listIcalEventsByMonth($year, $month);
$rows = array_merge($icalrows, $rows);
}

$data['rows'] = $rows;
$rowcount = count($rows);

This ensures that:

When $ veryshort === true, both $ rows and $ data['rows'] are empty arrays.
Otherwise, $ data['rows'] contains the calendar events returned by the query.

The existing fallback:

if (!isset($icalrows)) $icalrows = array();

does not help in the veryshort case because it is inside the if (!$veryshort) branch.
Tobias set the post as Low priority — 1 week ago
Tobias set the type of the post as  Bug — 1 week ago
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.