diff --git a/controllers/statistics.php b/controllers/statistics.php index 24611eaf0cac44f543956705e5819dec6de9033b..45b497d102e81a73fc7a5bc4ae50f362da117d86 100644 --- a/controllers/statistics.php +++ b/controllers/statistics.php @@ -28,19 +28,36 @@ class StatisticsController extends PluginController ); $this->getCached($this->semester->id, function () { - $query = "SELECT plugins.pluginid AS id, - pluginname AS name, - COUNT(poiid) AS quantity - FROM plugins - LEFT JOIN plugins_activated USING (pluginid) - LEFT JOIN seminare - ON SUBSTR(plugins_activated.poiid, 4) = seminare.Seminar_id - WHERE start_time BETWEEN ? AND ? - AND plugins_activated.state = 'on' - AND FIND_IN_SET('StandardPlugin', plugintype) - AND plugins.enabled = 'yes' - GROUP BY plugins.pluginid - ORDER BY quantity DESC"; + if (StudipVersion::olderThan('4.2')) { + $query = "SELECT `plugins`.`pluginid` AS id, + `plugins`.`pluginname` AS name, + COUNT(`seminare`.`Seminar_id`) AS quantity + FROM `plugins` + LEFT JOIN `plugins_activated` USING (`pluginid`) + LEFT JOIN `seminare` + ON SUBSTR(`plugins_activated`.`poiid`, 4) = `seminare`.`Seminar_id` + WHERE `seminare`.`start_time` BETWEEN ? AND ? + AND `plugins_activated`.`state` = 'on' + AND FIND_IN_SET('StandardPlugin', `plugintype`) + AND `plugins`.`enabled` = 'yes' + GROUP BY `plugins`.`pluginid` + ORDER BY quantity DESC"; + } else { + $query = "SELECT `plugins`.`pluginid` AS id, + `plugins`.`pluginname` AS name, + COUNT(`seminare`.`Seminar_id`) AS quantity + FROM `plugins` + LEFT JOIN `plugins_activated` USING (`pluginid`) + LEFT JOIN `seminare` + ON `plugins_activated`.`range_type` = 'sem' + AND `plugins_activated`.`range_id` = `seminare`.`Seminar_id` + WHERE `seminare`.`start_time` BETWEEN ? AND ? + AND `plugins_activated`.`state` = 1 + AND FIND_IN_SET('StandardPlugin', `plugins`.`plugintype`) + AND `plugins`.`enabled` = 'yes' + GROUP BY `plugins`.`pluginid` + ORDER BY quantity DESC"; + } $plugins = DBManager::get()->fetchAll($query, [ $this->semester->beginn, $this->semester->ende @@ -467,6 +484,10 @@ class StatisticsController extends PluginController private function getCached($index, Closure $generator) { + if (!$GLOBALS['CACHING_ENABLE']) { + return $generator(); + } + $this->createSidebarCachePruner($index); $cache = StudipCacheFactory::getCache(); diff --git a/views/statistics/index.php b/views/statistics/index.php index cb57205509f654397baca98bb778d1b04e99eba2..5b9ed51203b0afcdbf6bfac7decb91c013bfc81a 100644 --- a/views/statistics/index.php +++ b/views/statistics/index.php @@ -13,6 +13,13 @@ </tr> </thead> <tbody> + <? if (count($plugins) === 0): ?> + <tr> + <td colspan="2"> + <?= _('In diesem Semester wurden noch keine Standardplugins aktiviert') ?> + </td> + </tr> + <? endif; ?> <? foreach ($plugins as $plugin): ?> <tr> <td>