PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.0.0
Tutor LMS – eLearning and online course solution v3.0.0
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
141 lines
1 <?php
2 /**
3 * Preview script for html markup generator
4 *
5 * @package tutor-droip-elements
6 */
7
8 namespace TutorLMSDroip\ElementGenerator;
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit; // Exit if accessed directly.
12 }
13
14 /**
15 * Class GradebookGenerator
16 * This class is used to define all helper functions.
17 */
18 trait InstructorGenerator {
19
20 /**
21 * Generate instructor markup
22 *
23 * @return string
24 */
25 private function generate_instructor_all_markup() {
26 switch ( $this->element['name'] ) {
27 case TDE_APP_PREFIX . '-instructor-list':
28 return $this->generate_instructor_list_markup();
29
30 case TDE_APP_PREFIX . '-instructor-list-item':
31 return $this->generate_instructor_list_item_markup();
32
33 case TDE_APP_PREFIX . '-instructor-avatar':
34 return $this->generate_instructor_avatar_markup();
35
36 case TDE_APP_PREFIX . '-instructor-name':
37 return $this->generate_instructor_name_markup();
38
39 }
40 }
41
42 /**
43 * Generate instructor list markup
44 *
45 * @return string
46 */
47 private function generate_instructor_list_markup() {
48 $course_id = isset( $this->options['post'] ) ? $this->options['post']->ID : get_the_ID();
49 $instructors = tutor_utils()->get_instructors_by_course($course_id);
50
51 $children = '';
52
53 if ( is_array( $instructors ) ) {
54 foreach ( $instructors as $instructor ) {
55 $children .= call_user_func(
56 $this->generate_child_element,
57 $this->element['children'][0],
58 array_merge(
59 $this->options,
60 array( 'instructor' => $instructor )
61 )
62 );
63 }
64 }
65
66 return "<div $this->attributes>$children</div>";
67 }
68
69 /**
70 * Generate instructor list item markup
71 *
72 * @return string
73 */
74 private function generate_instructor_list_item_markup() {
75 $instructor = $this->options['instructor'];
76
77 $instructor_profile_url = tutor_utils()->profile_url( $instructor->ID, true );
78
79 $children = '';
80
81 if ( is_array( $this->element['children'] ) ) {
82 foreach ( $this->element['children'] as $child ) {
83 $children .= call_user_func(
84 $this->generate_child_element,
85 $child,
86 array_merge(
87 $this->options,
88 array( 'instructor' => $instructor )
89 )
90 );
91 }
92 }
93
94 return "<a $this->attributes href='$instructor_profile_url' >$children</a>";
95 }
96
97 /**
98 * Generate instructor name markup
99 *
100 * @return string
101 */
102 private function generate_instructor_name_markup() {
103 $instructor = $this->options['instructor'];
104
105 return "<div $this->attributes >$instructor->display_name</div>";
106 }
107
108 /**
109 * Generate instructor avatar markup
110 *
111 * @return string
112 */
113 private function generate_instructor_avatar_markup() {
114 $instructor = $this->options['instructor'];
115
116 $profile_photo = get_user_meta( $instructor->ID, '_tutor_profile_photo', true );
117
118 $avatar = '';
119
120 if ( $profile_photo ) {
121 $avatar_src = wp_get_attachment_image_url( $instructor->tutor_profile_photo, 'thumbnail' );
122
123 $instructor_name = $instructor->display_name;
124
125 $avatar = "<img src=$avatar_src alt=$instructor_name />";
126 } else {
127 $arr = explode( ' ', trim( $instructor->display_name ) );
128
129 $first_char = ! empty( $arr[0] ) ? tutor_utils()->str_split( $arr[0] )[0] : '';
130
131 $second_char = ! empty( $arr[1] ) ? tutor_utils()->str_split( $arr[1] )[0] : '';
132
133 $initial_avatar = strtoupper( $first_char . $second_char );
134
135 $avatar = $initial_avatar;
136 }
137
138 return "<div $this->attributes >$avatar</div>";
139 }
140 }
141