function pageviews($course_id) { global $wpdb; $lids = namasterep_get_lessons($course_id); $visits = $wpdb->get_results($wpdb->prepare("SELECT SUM(visits) as visits FROM " . NAMASTE_VISITS . " \n\t\t\tWHERE (course_id=%d OR lesson_id IN(" . implode(',', $lids) . ")) GROUP BY user_id", $course_id)); if (empty($visits)) { return array(0, 0); } $total = 0; foreach ($visits as $visit) { $total += $visit->visits; } $avg = round($total / sizeof($visits), 2); return array($total, $avg); }
function pageviews($num_users, $course_id = 0, $lesson_id = 0) { global $wpdb; $course_sql = $lesson_sql = ""; if (!empty($course_id) and empty($lesson_id)) { // when showing course pageviews we also include pageviews of all lessons in the course $lids = namasterep_get_lessons($course_id); $course_sql = $wpdb->prepare("AND (course_id=%d OR lesson_id IN (" . implode(',', $lids) . "))", $course_id); } if (!empty($lesson_id)) { $course_sql = "AND course_id = 0"; // when pageview is on lesson, course_id = 0 $lesson_sql = $wpdb->prepare("AND lesson_id=%d", $lesson_id); } $users = $wpdb->get_results($wpdb->prepare("SELECT tU.*, SUM(tV.visits) as pageviews FROM {$wpdb->users} tU\n\t\tJOIN " . NAMASTE_VISITS . " tV ON tV.user_id = tU.ID {$course_sql} {$lesson_sql}\n\t\tGROUP BY tU.ID ORDER BY pageviews DESC LIMIT %d", $num_users)); return $users; }