You are here

function opigno_lrs_stats_dashboard_top_ten_viewed_pages in Opigno TinCan API 7

Retrieve top ten viewed pages from tincan statements

Output example: array( array('title' => 'Course 3', 'href' => 'http://opigno.com/course3', 'view_count' => 67, 'user_view_count' => 12), array('title' => 'Course 2', 'href' => 'http://opigno.com/course2', 'view_count' => 34, 'user_view_count' => 2) array('title' => 'Course 4', 'href' => 'http://opigno.com/course4', 'view_count' => 22, 'user_view_count' => 4) )

Return value

array

1 call to opigno_lrs_stats_dashboard_top_ten_viewed_pages()
opigno_lrs_stats_dashboard_page in modules/opigno_tincan_api_stats/includes/dashboard/dashboard.pages.inc
Display general statistics page

File

modules/opigno_tincan_api_stats/includes/dashboard/model.inc, line 164
Dashboard model functions

Code

function opigno_lrs_stats_dashboard_top_ten_viewed_pages() {
  $viewed_pages = array();
  $statements_per_page = opigno_lrs_stats_aggregate_viewed_statements_by_page(opigno_lrs_stats_all_viewed_statements());
  foreach ($statements_per_page as $page_statements) {
    $user_statements = array();
    foreach ($page_statements as $statement) {
      $user_statements[$statement->actor->name] = TRUE;
    }
    $viewed_pages[] = array(
      'title' => $page_statements[0]->object->definition->name->{'en-US'},
      'href' => $page_statements[0]->object->id,
      'view_count' => count($page_statements),
      'user_view_count' => count($user_statements),
    );
  }
  usort($viewed_pages, function ($viewed_page_a, $viewed_page_b) {
    return $viewed_page_a['view_count'] < $viewed_page_b['view_count'];
  });
  $top_ten_viewed_pages = array_slice($viewed_pages, 0, 10);
  return $top_ten_viewed_pages;
}