SuiteCRM v 7.12.6
I have read a lot of old posts about charts not showing on dashlets, an error I encountered today.
A fix for me was in modules\AOR_Reports\AOR_Report.php:
foreach ($linkedCharts as $chart) {
if ($chartIds !== null && !in_array($chart->id, $chartIds)) {
//continue;
}
$html .= $chart->buildChartHTML($data, $fields, $x, $chartType, $mainGroupField);
$x++;
}
Commenting out continue and the chart appears. The array $chartIds was always empty and with continue uncommented the chart isn’t built. I am not sure of the consequence of doing this? Why is the IF there if the buildChartHTML function doesn’t refer to $chartIds?
Further drilling down:
$chartIds is comes from $this->charts, which is populated in the __construct of modules\AOR_Reports\Dashlets\AORReportsDashlet\AORReportsDashlet.php
$this->charts = !empty($def['charts']) ? $def['charts'] : array();
If $def[‘charts’] is empty there will be an empty $charts array and no chart displayed.
In turn $defs[ ] is populated from the users preferences in modules\UserPreferences\UserPreference.php
return $_SESSION[$user->user_name.'_PREFERENCES'][$category][$name];
I have checked two CRMs I have, one with the charts working and with not. The $SESSION variables of the one that works has the ‘charts’ array - the other doesn’t:
Does anyone have any idea why the $SESSION variables load up correctly for one and not the other?