From 45e2912db40e64e8ca15789c293865c8512d998a Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Tue, 14 Sep 2021 08:46:44 +0200 Subject: [PATCH 1/2] Resolve undefined count property PHP notices --- classes/output/renderer.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/classes/output/renderer.php b/classes/output/renderer.php index d608915..f5e4333 100644 --- a/classes/output/renderer.php +++ b/classes/output/renderer.php @@ -79,7 +79,7 @@ public function render_tab_viewtable() { if ($sumofsiteswithplugins > 0) { // Get all site records and the plugin counts from DB ordered by site name - $sql_sitesplugins = 'SELECT site.id, site.url, site.title, count(jointable.site) + $sql_sitesplugins = 'SELECT site.id, site.url, site.title, count(jointable.site) AS count FROM {local_sitestats_sites} AS site JOIN {local_sitestats_plugins_site} AS jointable ON site.id = jointable.site @@ -88,7 +88,7 @@ public function render_tab_viewtable() { $result_sitesplugins = $DB->get_records_sql($sql_sitesplugins); // Get all plugin records and the installation counts from DB ordered by installation count - $sql_plugins = 'SELECT pl.id, pl.frankenstyle, pl.title, count(pl.frankenstyle) + $sql_plugins = 'SELECT pl.id, pl.frankenstyle, pl.title, count(pl.frankenstyle) AS count FROM {local_sitestats_plugins} AS pl JOIN {local_sitestats_plugins_site} AS jointable ON pl.id = jointable.plugin @@ -298,7 +298,7 @@ public function render_tab_viewchart() { if ($sumofsiteswithplugins > 0) { // Get all site records and the plugin counts from DB ordered by site name - $sql_sites = 'SELECT site.id, site.url, site.title, count(jointable.site) + $sql_sites = 'SELECT site.id, site.url, site.title, count(jointable.site) AS count FROM {local_sitestats_sites} AS site JOIN {local_sitestats_plugins_site} AS jointable ON site.id = jointable.site @@ -307,7 +307,7 @@ public function render_tab_viewchart() { $result_sites = $DB->get_records_sql($sql_sites); // Get all plugin records and the installation counts from DB ordered by installation count - $sql_plugins = 'SELECT pl.id, pl.frankenstyle, pl.title, count(pl.frankenstyle) + $sql_plugins = 'SELECT pl.id, pl.frankenstyle, pl.title, count(pl.frankenstyle) AS count FROM {local_sitestats_plugins} AS pl JOIN {local_sitestats_plugins_site} AS jointable ON pl.id = jointable.plugin @@ -485,7 +485,7 @@ public function render_tab_viewmetrics() { if ($sumofsiteswithplugins > 0) { // Get all site records and the plugin counts from DB ordered by site name - $sql_sites = 'SELECT site.id, site.url, site.title, count(jointable.site) + $sql_sites = 'SELECT site.id, site.url, site.title, count(jointable.site) AS count FROM {local_sitestats_sites} AS site JOIN {local_sitestats_plugins_site} AS jointable ON site.id = jointable.site @@ -494,7 +494,7 @@ public function render_tab_viewmetrics() { $result_sites = $DB->get_records_sql($sql_sites); // Get all plugin records and the installation counts from DB ordered by installation count - $sql_plugins = 'SELECT pl.id, pl.frankenstyle, pl.title, count(pl.frankenstyle) + $sql_plugins = 'SELECT pl.id, pl.frankenstyle, pl.title, count(pl.frankenstyle) AS count FROM {local_sitestats_plugins} AS pl JOIN {local_sitestats_plugins_site} AS jointable ON pl.id = jointable.plugin From 735f8bfd5806b26012df30cfbee3498a03d36043 Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Tue, 14 Sep 2021 11:26:46 +0200 Subject: [PATCH 2/2] Resolve undefined offset index PHP notices in charts --- classes/output/renderer.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/classes/output/renderer.php b/classes/output/renderer.php index f5e4333..5dd870a 100644 --- a/classes/output/renderer.php +++ b/classes/output/renderer.php @@ -365,18 +365,27 @@ public function render_tab_viewchart() { // Pick the plugin counts per site. $pluginsusedpersiterawdata = array(); foreach ($result_sites as $s) { - if ($pluginsusedpersiterawdata[$s->count]) { + if (array_key_exists($s->count, $pluginsusedpersiterawdata)) { $pluginsusedpersiterawdata[$s->count]++; } else { $pluginsusedpersiterawdata[$s->count] = 1; }; } + + $rangekey = 0; $pluginsusedpersitedata = array(); $pluginsusedpersitelabels = array(); for ($j = 1; $j <= max(array_keys($pluginsusedpersiterawdata)); $j += 5) { - $pluginsusedpersitedata[] = $pluginsusedpersiterawdata[$j] + $pluginsusedpersiterawdata[$j + 1] + - $pluginsusedpersiterawdata[$j + 2] + $pluginsusedpersiterawdata[$j + 3] + $pluginsusedpersiterawdata[$j + 4]; - $pluginsusedpersitelabels[] = get_string('chart_pluginusedpersiteaxis', 'local_sitestats', array('from' => $j, 'to' => ($j + 4))); + $pluginsusedpersitedata[$rangekey] = 0; + + for ($i = 0; $i < 5; $i++) { + $pluginsusedpersitedata[$rangekey] += $pluginsusedpersiterawdata[$j + $i] ?? 0; + } + + $pluginsusedpersitelabels[$rangekey] = + get_string('chart_pluginusedpersiteaxis', 'local_sitestats', ['from' => $j, 'to' => ($j + 4)]); + + $rangekey++; } // Build chart heading.