PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.2.1
Tutor LMS – eLearning and online course solution v3.2.1
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 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / tutor-droip / backend / ElementGenerator / InstructorGenerator.php
tutor / tutor-droip / backend / ElementGenerator Last commit date
ActionBoxGenerator.php 1 year ago AnnouncementsGenerator.php 1 year ago CourseMetaGenerator.php 1 year ago CourseThumbnailGenerator.php 1 year ago ElementGenerator.php 1 year ago GradebookGenerator.php 1 year ago InstructorGenerator.php 1 year ago LessonGenerator.php 1 year ago Preview.php 1 year ago QnAGenerator.php 1 year ago RatingGenerator.php 1 year ago ResourcesGenerator.php 1 year ago ShareGenerator.php 1 year ago TopicsGenerator.php 1 year ago WishListGenerator.php 1 year ago
InstructorGenerator.php
182 lines
1 <?php
2
3 /**
4 * Preview script for html markup generator
5 *
6 * @package tutor-droip-elements
7 */
8
9 namespace TutorLMSDroip\ElementGenerator;
10
11 if (! defined('ABSPATH')) {
12 exit; // Exit if accessed directly.
13 }
14
15 /**
16 * Class GradebookGenerator
17 * This class is used to define all helper functions.
18 */
19 trait InstructorGenerator
20 {
21
22 /**
23 * Generate instructor markup
24 *
25 * @return string
26 */
27 private function generate_instructor_all_markup()
28 {
29 switch ($this->element['name']) {
30 case TDE_APP_PREFIX . '-instructor-list':
31 return $this->generate_instructor_list_markup();
32
33 case TDE_APP_PREFIX . '-instructor-list-item':
34 return $this->generate_instructor_list_item_markup();
35
36 case TDE_APP_PREFIX . '-instructor-avatar':
37 return $this->generate_instructor_avatar_markup();
38
39 case TDE_APP_PREFIX . '-instructor-name':
40 return $this->generate_instructor_name_markup();
41 case TDE_APP_PREFIX . '-instructor-bio':
42 return $this->generate_instructor_bio_markup();
43
44 case TDE_APP_PREFIX . '-instructor-job-title':
45 return $this->generate_instructor_job_title_markup();
46 }
47 }
48
49 /**
50 * Generate instructor list markup
51 *
52 * @return string
53 */
54 private function generate_instructor_list_markup()
55 {
56 $course_id = isset($this->options['post']) ? $this->options['post']->ID : get_the_ID();
57 $instructors = tutor_utils()->get_instructors_by_course($course_id);
58
59 $children = '';
60
61 if (is_array($instructors)) {
62 foreach ($instructors as $instructor) {
63 $children .= call_user_func(
64 $this->generate_child_element,
65 $this->element['children'][0],
66 array_merge(
67 $this->options,
68 array('instructor' => $instructor)
69 )
70 );
71 }
72 }
73
74 return "<div $this->attributes>$children</div>";
75 }
76
77 /**
78 * Generate instructor list item markup
79 *
80 * @return string
81 */
82 private function generate_instructor_list_item_markup()
83 {
84 $instructor = $this->options['instructor'];
85
86 $instructor_profile_url = tutor_utils()->profile_url($instructor->ID, true);
87
88 $children = '';
89
90 if (is_array($this->element['children'])) {
91 foreach ($this->element['children'] as $child) {
92 $children .= call_user_func(
93 $this->generate_child_element,
94 $child,
95 array_merge(
96 $this->options,
97 array('instructor' => $instructor)
98 )
99 );
100 }
101 }
102
103 return "<a $this->attributes href='$instructor_profile_url' >$children</a>";
104 }
105
106 /**
107 * Generate instructor name markup
108 *
109 * @return string
110 */
111 private function generate_instructor_name_markup()
112 {
113 $instructor = $this->get_instructor_details();
114
115 return "<div $this->attributes >$instructor->display_name</div>";
116 }
117
118 private function generate_instructor_bio_markup()
119 {
120 $instructor = $this->get_instructor_details();
121 if (!$instructor->tutor_profile_bio) return '';
122 return "<div $this->attributes >$instructor->tutor_profile_bio</div>";
123 }
124
125 private function generate_instructor_job_title_markup()
126 {
127 $instructor = $this->get_instructor_details();
128 if (!$instructor->tutor_profile_job_title) return '';
129 return "<div $this->attributes >$instructor->tutor_profile_job_title</div>";
130 }
131
132 /**
133 * Generate instructor avatar markup
134 *
135 * @return string
136 */
137 private function generate_instructor_avatar_markup()
138 {
139 $instructor = $this->get_instructor_details();
140 if (!$instructor->tutor_profile_photo) return '';
141 $avatar = '';
142 if ($instructor->tutor_profile_photo) {
143 $avatar_src = wp_get_attachment_image_url($instructor->tutor_profile_photo, 'thumbnail');
144
145 $instructor_name = $instructor->display_name;
146
147 $avatar = "<img src=$avatar_src alt=$instructor_name style='width: 100%; height: 100%;' />";
148 } else {
149 $arr = explode(' ', trim($instructor->display_name));
150
151 $first_char = ! empty($arr[0]) ? tutor_utils()->str_split($arr[0])[0] : '';
152
153 $second_char = ! empty($arr[1]) ? tutor_utils()->str_split($arr[1])[0] : '';
154
155 $initial_avatar = strtoupper($first_char . $second_char);
156
157 $avatar = $initial_avatar;
158 }
159
160 return "<div $this->attributes >$avatar</div>";
161 }
162
163 private function get_instructor_details()
164 {
165 $instructor = isset($this->options['instructor']) ? $this->options['instructor'] : false;
166 if (!$instructor) {
167 $instructor = isset($this->options['user']) ? (object) $this->options['user'] : false;
168
169 if ($instructor) {
170 $is_instructor = tutor_utils()->is_instructor($instructor->ID);
171 if ($is_instructor) {
172 $instructor->tutor_profile_bio = get_user_meta($instructor->ID, '_tutor_profile_bio', true);
173 $instructor->tutor_profile_job_title = get_user_meta($instructor->ID, '_tutor_profile_job_title', true);
174 $instructor->tutor_profile_photo = get_user_meta($instructor->ID, '_tutor_profile_photo', true);
175 }
176 }
177 }
178
179 return $instructor;
180 }
181 }
182