diff --git a/public/main/admin/statistics/index.php b/public/main/admin/statistics/index.php index 923e274032..81ebd60e1b 100644 --- a/public/main/admin/statistics/index.php +++ b/public/main/admin/statistics/index.php @@ -5,6 +5,9 @@ /** * This tool show global Statistics on general platform events. */ + +use Chamilo\CoreBundle\Framework\Container; + $cidReset = true; require_once __DIR__.'/../../inc/global.inc.php'; @@ -130,7 +133,7 @@ in_array( $form = new FormValidator('users_active', 'get', api_get_self().'?report=users_active'); $form->addDateRangePicker( 'daterange', - get_lang('DateRange'), + get_lang('Date range'), true, ['format' => 'YYYY-MM-DD', 'timePicker' => 'false', 'validate_format' => 'Y-m-d'] ); @@ -162,14 +165,14 @@ in_array( cutoutPercentage: 25 '; - $reportName1 = get_lang('UsersCreatedInTheSelectedPeriod'); - $reportName2 = get_lang('UsersByStatus'); - $reportName3 = get_lang('UsersByLanguage'); - $reportName4 = get_lang('UsersByTargetLanguage'); - $reportName5 = get_lang('UsersByCareer'); - $reportName6 = get_lang('UsersByContract'); - $reportName7 = get_lang('UsersByCertificate'); - $reportName8 = get_lang('UsersByAge'); + $reportName1 = get_lang('Users created in the selected period'); + $reportName2 = get_lang('Users by status'); + $reportName3 = get_lang('Users per language'); + $reportName4 = get_lang('Users by target language'); + $reportName5 = get_lang('Users by career'); + $reportName6 = get_lang('Users by contract'); + $reportName7 = get_lang('Users by certificate'); + $reportName8 = get_lang('Users by age'); //$url1 = $urlBase.'a=users_active&filter=active&date_start='.$dateStart.'&date_end='.$dateEnd; $url2 = $urlBase.'a=users_active&filter=status&date_start='.$dateStart.'&date_end='.$dateEnd; @@ -329,10 +332,10 @@ if (isset($_GET['export'])) { $tool_name = get_lang('Statistics'); $tools = [ get_lang('Courses') => [ - 'report=courses' => get_lang('CountCours'), - 'report=tools' => get_lang('PlatformToolAccess'), - 'report=courselastvisit' => get_lang('LastAccess'), - 'report=coursebylanguage' => get_lang('CountCourseByLanguage'), + 'report=courses' => get_lang('Courses'), + 'report=tools' => get_lang('Tools access'), + 'report=courselastvisit' => get_lang('Latest access'), + 'report=coursebylanguage' => get_lang('Number of courses by language'), ], get_lang('Users') => [ 'report=users' => get_lang('CountUsers'), @@ -342,7 +345,7 @@ $tools = [ 'report=logins&type=hour' => get_lang('Logins').' ('.get_lang('PeriodHour').')', 'report=pictures' => get_lang('CountUsers').' ('.get_lang('UserPicture').')', 'report=logins_by_date' => get_lang('LoginsByDate'), - 'report=no_login_users' => get_lang('StatsUsersDidNotLoginInLastPeriods'), + 'report=no_login_users' => get_lang('Not logged in for some time'), 'report=zombies' => get_lang('Zombies'), 'report=users_active' => get_lang('UserStats'), 'report=users_online' => get_lang('UsersOnline'), @@ -361,7 +364,6 @@ $tools = [ ], ]; -$course_categories = Statistics::getCourseCategories(); $content = ''; switch ($report) { @@ -685,13 +687,15 @@ switch ($report) { break; case 'courses': + $courseCategoryRepo = Container::getCourseCategoryRepository(); + $categories = $courseCategoryRepo->findAll(); $content .= ''; // total amount of courses - foreach ($course_categories as $code => $name) { - $courses[$name] = Statistics::countCourses($code); + foreach ($categories as $category) { + $courses[$category->getName()] = $category->getCourses()->count(); } // courses for each course category - $content .= Statistics::printStats(get_lang('CountCours'), $courses); + $content .= Statistics::printStats(get_lang('Courses'), $courses); break; case 'tools': $content .= ''; diff --git a/public/main/inc/ajax/statistics.ajax.php b/public/main/inc/ajax/statistics.ajax.php index a2f2c2a4f8..26be6d8805 100644 --- a/public/main/inc/ajax/statistics.ajax.php +++ b/public/main/inc/ajax/statistics.ajax.php @@ -2,6 +2,7 @@ /* For licensing terms, see /license.txt */ use Chamilo\CoreBundle\Component\Utils\ChamiloApi; +use Chamilo\CoreBundle\Framework\Container; /** * Responses to AJAX calls. @@ -170,12 +171,13 @@ switch ($action) { $statsName = 'Tools'; $all = Statistics::getToolsStats(); } elseif ('courses' == $action) { + $courseCategoryRepo = Container::getCourseCategoryRepository(); + $categories = $courseCategoryRepo->findAll(); $statsName = 'CountCours'; - $course_categories = Statistics::getCourseCategories(); // total amount of courses $all = []; - foreach ($course_categories as $code => $name) { - $all[$name] = Statistics::countCourses($code); + foreach ($categories as $category) { + $all[$category->getName()] = $category->getCourses()->count(); } } elseif ('courses_by_language' == $action) { $statsName = 'CountCourseByLanguage'; @@ -194,11 +196,14 @@ switch ($action) { ]; } elseif ('users_teachers' == $action) { $statsName = 'Teachers'; - $course_categories = Statistics::getCourseCategories(); + $courseCategoryRepo = Container::getCourseCategoryRepository(); + $categories = $courseCategoryRepo->findAll(); $countInvisible = isset($_GET['count_invisible']) ? (int) $_GET['count_invisible'] : null; $all = []; - foreach ($course_categories as $code => $name) { - $name = str_replace(get_lang('Department'), "", $name); + foreach ($categories as $category) { + $code = $category->getCode(); + $name = $category->getName(); + $name = str_replace(get_lang('Department'), '', $name); $all[$name] = Statistics::countUsers(COURSEMANAGER, $code, $countInvisible); } // use slightly different colors than previous chart @@ -208,11 +213,14 @@ switch ($action) { } } elseif ('users_students' == $action) { $statsName = 'Students'; - $course_categories = Statistics::getCourseCategories(); + $courseCategoryRepo = Container::getCourseCategoryRepository(); + $categories = $courseCategoryRepo->findAll(); $countInvisible = isset($_GET['count_invisible']) ? (int) $_GET['count_invisible'] : null; $all = []; - foreach ($course_categories as $code => $name) { - $name = str_replace(get_lang('Department'), "", $name); + foreach ($categories as $category) { + $code = $category->getCode(); + $name = $category->getName(); + $name = str_replace(get_lang('Department'), '', $name); $all[$name] = Statistics::countUsers(STUDENT, $code, $countInvisible); } // use slightly different colors than previous chart diff --git a/public/main/inc/lib/statistics.lib.php b/public/main/inc/lib/statistics.lib.php index a4afee4a47..8231d2f351 100644 --- a/public/main/inc/lib/statistics.lib.php +++ b/public/main/inc/lib/statistics.lib.php @@ -51,8 +51,8 @@ class Statistics $categoryCondition = ''; if (!empty($categoryCode)) { - $categoryJoin = " LEFT JOIN $tblCourseCategory course_category ON course.category_id = course_category.id "; - $categoryCondition = " course_category.code = '".Database::escape_string($categoryCode)."' "; + //$categoryJoin = " LEFT JOIN $tblCourseCategory course_category ON course.category_id = course_category.id "; + //$categoryCondition = " course_category.code = '".Database::escape_string($categoryCode)."' "; } if (api_is_multiple_url_enabled()) { @@ -415,26 +415,6 @@ class Statistics return $activities; } - /** - * Get all course categories. - * - * @return array All course categories (code => name) - */ - public static function getCourseCategories() - { - $categoryTable = Database::get_main_table(TABLE_MAIN_CATEGORY); - $sql = "SELECT code, name - FROM $categoryTable - ORDER BY tree_pos"; - $res = Database::query($sql); - $categories = []; - while ($category = Database::fetch_object($res)) { - $categories[$category->code] = $category->name; - } - - return $categories; - } - /** * Rescale data. *