PluginProbe
Tutor LMS – eLearning and online course solution / 1.0.7
Tutor LMS – eLearning and online course solution v1.0.7
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 All 191 releases
tutor / classes / Students_List.php

Students_List.php in Tutor LMS – eLearning and online course solution 1.0.7, at classes/Students_List.php

131 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace TUTOR;
3
4 if ( ! defined( 'ABSPATH' ) )
5 exit;
6
7 if (! class_exists('Tutor_List_Table')){
8 include_once tutor()->path.'classes/Tutor_List_Table.php';
9 }
10
11 class Students_List extends \Tutor_List_Table {
12
13 function __construct(){
14 global $status, $page;
15
16 //Set parent defaults
17 parent::__construct( array(
18 'singular' => 'student', //singular name of the listed records
19 'plural' => 'students', //plural name of the listed records
20 'ajax' => false //does this table support ajax?
21 ) );
22 }
23
24 function column_default($item, $column_name){
25 switch($column_name){
26 case 'user_email':
27 case 'display_name':
28 return $item->$column_name;
29 default:
30 return print_r($item,true); //Show the whole array for troubleshooting purposes
31 }
32 }
33
34 /**
35 * @param $item
36 *
37 * Completed Course by User
38 */
39 function column_completed_course($item){
40 $user_id = $item->ID;
41
42 $courses = tutor_utils()->get_courses_by_user($user_id);
43 if ($courses && is_array($courses->posts) && count($courses->posts)){
44 foreach ($courses->posts as $course){
45 echo '<a href="'.get_the_permalink($course->ID).'" target="_blank">'.$course->post_title.'</a>';
46 }
47 }
48 }
49
50 /*
51 function column_display_name($item){
52 //Build row actions
53 $actions = array(
54 'edit' => sprintf('<a href="?page=%s&action=%s&student=%s">Edit</a>',$_REQUEST['page'],'edit',$item->ID),
55 'delete' => sprintf('<a href="?page=%s&action=%s&student=%s">Delete</a>',$_REQUEST['page'],'delete',$item->ID),
56 );
57
58 //Return the title contents
59 return sprintf('%1$s <span style="color:silver">(id:%2$s)</span>%3$s',
60 $item->display_name,
61 $item->ID,
62 $this->row_actions($actions)
63 );
64 }*/
65
66 function column_cb($item){
67 return sprintf(
68 '<input type="checkbox" name="%1$s[]" value="%2$s" />',
69 /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label ("student")
70 /*$2%s*/ $item->ID //The value of the checkbox should be the record's id
71 );
72 }
73
74 function get_columns(){
75 $columns = array(
76 'cb' => '<input type="checkbox" />', //Render a checkbox instead of text
77 'display_name' => __('Name', 'tutor'),
78 'user_email' => __('E-Mail', 'tutor'),
79 'completed_course' => __('Completed Course', 'tutor'),
80 );
81 return $columns;
82 }
83
84 function get_sortable_columns() {
85 $sortable_columns = array(
86 //'display_name' => array('title',false), //true means it's already sorted
87 );
88 return $sortable_columns;
89 }
90
91 function get_bulk_actions() {
92 $actions = array(
93 //'delete' => 'Delete'
94 );
95 return $actions;
96 }
97
98 function process_bulk_action() {
99 //Detect when a bulk action is being triggered...
100 if( 'delete'===$this->current_action() ) {
101 wp_die('Items deleted (or they would be if we had items to delete)!');
102 }
103 }
104
105 function prepare_items() {
106 $per_page = 20;
107
108 $search_term = '';
109 if (isset($_REQUEST['s'])){
110 $search_term = sanitize_text_field($_REQUEST['s']);
111 }
112
113 $columns = $this->get_columns();
114 $hidden = array();
115 $sortable = $this->get_sortable_columns();
116
117 $this->_column_headers = array($columns, $hidden, $sortable);
118 //$this->process_bulk_action();
119
120 $current_page = $this->get_pagenum();
121
122 $total_items = tutor_utils()->get_total_students($search_term);
123 $this->items = tutor_utils()->get_students(($current_page-1)*$per_page, $per_page, $search_term);;
124
125 $this->set_pagination_args( array(
126 'total_items' => $total_items, //WE have to calculate the total number of items
127 'per_page' => $per_page, //WE have to determine how many items to show on a page
128 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages
129 ) );
130 }
131 }