@@ -27,13 +27,13 @@ discard block |
||
27 | 27 | <form method="post" name="sensi-login-form" id="loginform" class="login sensei"> |
28 | 28 | |
29 | 29 | <?php |
30 | - /** |
|
31 | - * Executes inside the sensei login form before all the default fields. |
|
32 | - * |
|
33 | - * @since 1.6.2 |
|
34 | - */ |
|
35 | - do_action( 'sensei_login_form_inside_before' ); |
|
36 | - ?> |
|
30 | + /** |
|
31 | + * Executes inside the sensei login form before all the default fields. |
|
32 | + * |
|
33 | + * @since 1.6.2 |
|
34 | + */ |
|
35 | + do_action( 'sensei_login_form_inside_before' ); |
|
36 | + ?> |
|
37 | 37 | |
38 | 38 | <p class="sensei-login-username form-row form-row-wide"> |
39 | 39 | |
@@ -52,15 +52,15 @@ discard block |
||
52 | 52 | </p> |
53 | 53 | |
54 | 54 | <?php |
55 | - /** |
|
56 | - * Executes inside the sensei login form after the password field. |
|
57 | - * |
|
58 | - * You can use the action to add extra form login fields. |
|
59 | - * |
|
60 | - * @since 1.6.2 |
|
61 | - */ |
|
62 | - do_action( 'sensei_login_form_inside_after_password_field' ); |
|
63 | - ?> |
|
55 | + /** |
|
56 | + * Executes inside the sensei login form after the password field. |
|
57 | + * |
|
58 | + * You can use the action to add extra form login fields. |
|
59 | + * |
|
60 | + * @since 1.6.2 |
|
61 | + */ |
|
62 | + do_action( 'sensei_login_form_inside_after_password_field' ); |
|
63 | + ?> |
|
64 | 64 | |
65 | 65 | <p class='sensei-login-submit'> |
66 | 66 | |
@@ -81,13 +81,13 @@ discard block |
||
81 | 81 | </p> |
82 | 82 | |
83 | 83 | <?php |
84 | - /** |
|
85 | - * Executes inside the sensei login form after all the default fields. |
|
86 | - * |
|
87 | - * @since 1.6.2 |
|
88 | - */ |
|
89 | - do_action( 'sensei_login_form_inside_after' ); |
|
90 | - ?> |
|
84 | + /** |
|
85 | + * Executes inside the sensei login form after all the default fields. |
|
86 | + * |
|
87 | + * @since 1.6.2 |
|
88 | + */ |
|
89 | + do_action( 'sensei_login_form_inside_after' ); |
|
90 | + ?> |
|
91 | 91 | |
92 | 92 | <?php wp_nonce_field( 'sensei-login' ); ?> |
93 | 93 | |
@@ -101,9 +101,9 @@ discard block |
||
101 | 101 | |
102 | 102 | <?php |
103 | 103 | /** |
104 | - * Executes after the Login form markup closes. |
|
105 | - * |
|
106 | - * @since 1.9.0 |
|
107 | - */ |
|
104 | + * Executes after the Login form markup closes. |
|
105 | + * |
|
106 | + * @since 1.9.0 |
|
107 | + */ |
|
108 | 108 | do_action( 'sensei_login_form_after' ); |
109 | 109 | ?> |
110 | 110 | \ No newline at end of file |
@@ -1,61 +1,61 @@ |
||
1 | 1 | <?php |
2 | 2 | if ( ! defined( 'ABSPATH' ) ) exit; |
3 | 3 | /** |
4 | - * The Template for displaying the my course page data. |
|
5 | - * |
|
6 | - * Override this template by copying it to yourtheme/sensei/user/my-courses.php |
|
7 | - * |
|
8 | - * @author Automattic |
|
9 | - * @package Sensei |
|
10 | - * @category Templates |
|
11 | - * @version 1.9.0 |
|
12 | - */ |
|
4 | + * The Template for displaying the my course page data. |
|
5 | + * |
|
6 | + * Override this template by copying it to yourtheme/sensei/user/my-courses.php |
|
7 | + * |
|
8 | + * @author Automattic |
|
9 | + * @package Sensei |
|
10 | + * @category Templates |
|
11 | + * @version 1.9.0 |
|
12 | + */ |
|
13 | 13 | ?> |
14 | 14 | |
15 | 15 | <?php |
16 | 16 | /** |
17 | - * Executes before the Sensei my courses markup begins. This hook |
|
18 | - * only fires whe a user is logged in. If you need to add |
|
19 | - * something here for when users are logged out use `sensei_login_form_before`. |
|
20 | - * |
|
21 | - * @since 1.9.0 |
|
22 | - */ |
|
17 | + * Executes before the Sensei my courses markup begins. This hook |
|
18 | + * only fires whe a user is logged in. If you need to add |
|
19 | + * something here for when users are logged out use `sensei_login_form_before`. |
|
20 | + * |
|
21 | + * @since 1.9.0 |
|
22 | + */ |
|
23 | 23 | do_action( 'sensei_my_courses_before' ); |
24 | 24 | ?> |
25 | 25 | |
26 | 26 | <section id="main-course" class="course-container"> |
27 | 27 | |
28 | 28 | <?php |
29 | - /** |
|
30 | - * Executes inside just before the Sensei my courses content. This hook |
|
31 | - * only fires whe a user is logged in. |
|
32 | - * |
|
33 | - * @since 1.9.0 |
|
34 | - */ |
|
35 | - do_action( 'sensei_my_courses_content_inside_before' ); |
|
36 | - ?> |
|
29 | + /** |
|
30 | + * Executes inside just before the Sensei my courses content. This hook |
|
31 | + * only fires whe a user is logged in. |
|
32 | + * |
|
33 | + * @since 1.9.0 |
|
34 | + */ |
|
35 | + do_action( 'sensei_my_courses_content_inside_before' ); |
|
36 | + ?> |
|
37 | 37 | |
38 | 38 | <?php sensei_the_my_courses_content(); ?> |
39 | 39 | |
40 | 40 | <?php |
41 | - /** |
|
42 | - * Executes inside just after the Sensei my courses content. This hook |
|
43 | - * only fires whe a user is logged in. |
|
44 | - * |
|
45 | - * @since 1.9.0 |
|
46 | - */ |
|
47 | - do_action( 'sensei_my_courses_content_inside_after' ); |
|
48 | - ?> |
|
41 | + /** |
|
42 | + * Executes inside just after the Sensei my courses content. This hook |
|
43 | + * only fires whe a user is logged in. |
|
44 | + * |
|
45 | + * @since 1.9.0 |
|
46 | + */ |
|
47 | + do_action( 'sensei_my_courses_content_inside_after' ); |
|
48 | + ?> |
|
49 | 49 | |
50 | 50 | </section> |
51 | 51 | |
52 | 52 | <?php |
53 | 53 | /** |
54 | - * Executes after the Sensei my courses template markup ends. This hook |
|
55 | - * only fires whe a user is logged in. If you need to add |
|
56 | - * something here for when users are logged out use `sensei_login_form_after`. |
|
57 | - * |
|
58 | - * @since 1.9.0 |
|
59 | - */ |
|
54 | + * Executes after the Sensei my courses template markup ends. This hook |
|
55 | + * only fires whe a user is logged in. If you need to add |
|
56 | + * something here for when users are logged out use `sensei_login_form_after`. |
|
57 | + * |
|
58 | + * @since 1.9.0 |
|
59 | + */ |
|
60 | 60 | do_action( 'sensei_my_courses_after' ); |
61 | 61 | ?> |
@@ -14,205 +14,205 @@ |
||
14 | 14 | */ |
15 | 15 | class Sensei_Shortcode_Courses implements Sensei_Shortcode_Interface { |
16 | 16 | |
17 | - /** |
|
18 | - * @var WP_Query to help setup the query needed by the render method. |
|
19 | - */ |
|
20 | - protected $query; |
|
21 | - |
|
22 | - /** |
|
23 | - * @var string number of items to show on the current page |
|
24 | - * Default: -1. |
|
25 | - */ |
|
26 | - protected $number; |
|
27 | - |
|
28 | - /** |
|
29 | - * @var string ordery by course field |
|
30 | - * Default: date |
|
31 | - */ |
|
32 | - protected $orderby; |
|
33 | - |
|
34 | - /** |
|
35 | - * @var string ASC or DESC |
|
36 | - * Default: 'DESC' |
|
37 | - */ |
|
38 | - protected $order; |
|
17 | + /** |
|
18 | + * @var WP_Query to help setup the query needed by the render method. |
|
19 | + */ |
|
20 | + protected $query; |
|
21 | + |
|
22 | + /** |
|
23 | + * @var string number of items to show on the current page |
|
24 | + * Default: -1. |
|
25 | + */ |
|
26 | + protected $number; |
|
27 | + |
|
28 | + /** |
|
29 | + * @var string ordery by course field |
|
30 | + * Default: date |
|
31 | + */ |
|
32 | + protected $orderby; |
|
33 | + |
|
34 | + /** |
|
35 | + * @var string ASC or DESC |
|
36 | + * Default: 'DESC' |
|
37 | + */ |
|
38 | + protected $order; |
|
39 | 39 | |
40 | - /** |
|
41 | - * @var category can be completed or active or all |
|
42 | - */ |
|
43 | - protected $category; |
|
44 | - |
|
45 | - /** |
|
46 | - * @var string teacher id to limit the courses to |
|
47 | - */ |
|
48 | - protected $teacher; |
|
40 | + /** |
|
41 | + * @var category can be completed or active or all |
|
42 | + */ |
|
43 | + protected $category; |
|
44 | + |
|
45 | + /** |
|
46 | + * @var string teacher id to limit the courses to |
|
47 | + */ |
|
48 | + protected $teacher; |
|
49 | 49 | |
50 | - /** |
|
51 | - * @var string csv of course ids to limit the search to |
|
52 | - */ |
|
53 | - protected $ids; |
|
50 | + /** |
|
51 | + * @var string csv of course ids to limit the search to |
|
52 | + */ |
|
53 | + protected $ids; |
|
54 | 54 | |
55 | - /** |
|
56 | - * @var exclude courses by id |
|
57 | - */ |
|
58 | - protected $exclude; |
|
55 | + /** |
|
56 | + * @var exclude courses by id |
|
57 | + */ |
|
58 | + protected $exclude; |
|
59 | 59 | |
60 | - /** |
|
61 | - * Setup the shortcode object |
|
62 | - * |
|
63 | - * @since 1.9.0 |
|
64 | - * @param array $attributes |
|
65 | - * @param string $content |
|
66 | - * @param string $shortcode the shortcode that was called for this instance |
|
67 | - */ |
|
68 | - public function __construct( $attributes, $content, $shortcode ){ |
|
60 | + /** |
|
61 | + * Setup the shortcode object |
|
62 | + * |
|
63 | + * @since 1.9.0 |
|
64 | + * @param array $attributes |
|
65 | + * @param string $content |
|
66 | + * @param string $shortcode the shortcode that was called for this instance |
|
67 | + */ |
|
68 | + public function __construct( $attributes, $content, $shortcode ){ |
|
69 | 69 | |
70 | - // set up all argument need for constructing the course query |
|
71 | - $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10'; |
|
72 | - $this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : ''; |
|
73 | - $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date'; |
|
70 | + // set up all argument need for constructing the course query |
|
71 | + $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10'; |
|
72 | + $this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : ''; |
|
73 | + $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date'; |
|
74 | 74 | |
75 | - // set the default for menu_order to be ASC |
|
76 | - if( 'menu_order' == $this->orderby && !isset( $attributes['order'] ) ){ |
|
75 | + // set the default for menu_order to be ASC |
|
76 | + if( 'menu_order' == $this->orderby && !isset( $attributes['order'] ) ){ |
|
77 | 77 | |
78 | - $this->order = 'ASC'; |
|
78 | + $this->order = 'ASC'; |
|
79 | 79 | |
80 | - }else{ |
|
80 | + }else{ |
|
81 | 81 | |
82 | - // for everything else use the value passed or the default DESC |
|
83 | - $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'DESC'; |
|
82 | + // for everything else use the value passed or the default DESC |
|
83 | + $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'DESC'; |
|
84 | 84 | |
85 | - } |
|
85 | + } |
|
86 | 86 | |
87 | - $category = isset( $attributes['category'] ) ? $attributes['category'] : ''; |
|
88 | - $this->category = is_numeric( $category ) ? intval( $category ) : $category; |
|
87 | + $category = isset( $attributes['category'] ) ? $attributes['category'] : ''; |
|
88 | + $this->category = is_numeric( $category ) ? intval( $category ) : $category; |
|
89 | 89 | |
90 | - $ids = isset( $attributes['ids'] ) ? $attributes['ids'] : ''; |
|
91 | - $this->ids = empty( $ids ) ? '' : explode( ',', $ids ); |
|
90 | + $ids = isset( $attributes['ids'] ) ? $attributes['ids'] : ''; |
|
91 | + $this->ids = empty( $ids ) ? '' : explode( ',', $ids ); |
|
92 | 92 | |
93 | - $exclude = isset( $attributes['exclude'] ) ? $attributes['exclude'] : ''; |
|
94 | - $this->exclude = empty( $exclude ) ? '' : explode( ',', $exclude ); |
|
93 | + $exclude = isset( $attributes['exclude'] ) ? $attributes['exclude'] : ''; |
|
94 | + $this->exclude = empty( $exclude ) ? '' : explode( ',', $exclude ); |
|
95 | 95 | |
96 | - // setup the course query that will be used when rendering |
|
97 | - $this->setup_course_query(); |
|
98 | - } |
|
96 | + // setup the course query that will be used when rendering |
|
97 | + $this->setup_course_query(); |
|
98 | + } |
|
99 | 99 | |
100 | - /** |
|
101 | - * Sets up the object course query |
|
102 | - * that will be used int he render method. |
|
103 | - * |
|
104 | - * @since 1.9.0 |
|
105 | - */ |
|
106 | - protected function setup_course_query(){ |
|
100 | + /** |
|
101 | + * Sets up the object course query |
|
102 | + * that will be used int he render method. |
|
103 | + * |
|
104 | + * @since 1.9.0 |
|
105 | + */ |
|
106 | + protected function setup_course_query(){ |
|
107 | 107 | |
108 | - // query defaults |
|
109 | - $query_args = array( |
|
110 | - 'post_type' => 'course', |
|
111 | - 'post_status' => 'publish', |
|
112 | - 'orderby' => $this->orderby, |
|
113 | - 'order' => $this->order, |
|
114 | - 'posts_per_page' => $this->number, |
|
108 | + // query defaults |
|
109 | + $query_args = array( |
|
110 | + 'post_type' => 'course', |
|
111 | + 'post_status' => 'publish', |
|
112 | + 'orderby' => $this->orderby, |
|
113 | + 'order' => $this->order, |
|
114 | + 'posts_per_page' => $this->number, |
|
115 | 115 | |
116 | - ); |
|
116 | + ); |
|
117 | 117 | |
118 | - // setup the teacher query if any teacher was specified |
|
119 | - if( !empty( $this->teacher )){ |
|
118 | + // setup the teacher query if any teacher was specified |
|
119 | + if( !empty( $this->teacher )){ |
|
120 | 120 | |
121 | - // when users passed in a csv |
|
122 | - if( strpos( $this->teacher, ',' ) ){ |
|
121 | + // when users passed in a csv |
|
122 | + if( strpos( $this->teacher, ',' ) ){ |
|
123 | 123 | |
124 | - $teachers = explode( ',', $this->teacher ); |
|
124 | + $teachers = explode( ',', $this->teacher ); |
|
125 | 125 | |
126 | - // for all user names given convert them to user ID's |
|
127 | - foreach( $teachers as $index => $teacher ){ |
|
126 | + // for all user names given convert them to user ID's |
|
127 | + foreach( $teachers as $index => $teacher ){ |
|
128 | 128 | |
129 | - //replace the teacher value with the teachers ID |
|
130 | - if( ! is_numeric( $teacher ) ){ |
|
129 | + //replace the teacher value with the teachers ID |
|
130 | + if( ! is_numeric( $teacher ) ){ |
|
131 | 131 | |
132 | - $user = get_user_by('login', $teacher); |
|
133 | - $teachers[$index] = $user->ID; |
|
132 | + $user = get_user_by('login', $teacher); |
|
133 | + $teachers[$index] = $user->ID; |
|
134 | 134 | |
135 | - } |
|
135 | + } |
|
136 | 136 | |
137 | - } // end for each |
|
137 | + } // end for each |
|
138 | 138 | |
139 | - $teacher_query_by = 'author__in'; |
|
140 | - $this->teacher = $teachers; |
|
139 | + $teacher_query_by = 'author__in'; |
|
140 | + $this->teacher = $teachers; |
|
141 | 141 | |
142 | - }else{ |
|
143 | - // when users passed in a single teacher value |
|
144 | - $teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name'; |
|
142 | + }else{ |
|
143 | + // when users passed in a single teacher value |
|
144 | + $teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name'; |
|
145 | 145 | |
146 | - } |
|
146 | + } |
|
147 | 147 | |
148 | - // attach teacher query by and teacher query value to the course query |
|
149 | - $query_args[ $teacher_query_by ] = $this->teacher; |
|
148 | + // attach teacher query by and teacher query value to the course query |
|
149 | + $query_args[ $teacher_query_by ] = $this->teacher; |
|
150 | 150 | |
151 | - }// end if empty teacher |
|
151 | + }// end if empty teacher |
|
152 | 152 | |
153 | 153 | |
154 | - // add the course category taxonomy query |
|
155 | - if( ! empty( $this->category ) ) { |
|
154 | + // add the course category taxonomy query |
|
155 | + if( ! empty( $this->category ) ) { |
|
156 | 156 | |
157 | - $tax_query = array(); |
|
158 | - $term_id = intval( term_exists($this->category) ); |
|
157 | + $tax_query = array(); |
|
158 | + $term_id = intval( term_exists($this->category) ); |
|
159 | 159 | |
160 | - if (! empty( $term_id) ) { |
|
160 | + if (! empty( $term_id) ) { |
|
161 | 161 | |
162 | - $tax_query = array( |
|
163 | - 'taxonomy' => 'course-category', |
|
164 | - 'field' => 'id', |
|
165 | - 'terms' => $term_id, |
|
166 | - ); |
|
162 | + $tax_query = array( |
|
163 | + 'taxonomy' => 'course-category', |
|
164 | + 'field' => 'id', |
|
165 | + 'terms' => $term_id, |
|
166 | + ); |
|
167 | 167 | |
168 | - } |
|
168 | + } |
|
169 | 169 | |
170 | - $query_args['tax_query'] = array($tax_query); |
|
170 | + $query_args['tax_query'] = array($tax_query); |
|
171 | 171 | |
172 | - } |
|
172 | + } |
|
173 | 173 | |
174 | - // limit the query if the user supplied ids |
|
175 | - if( ! empty( $this->ids ) && is_array( $this->ids ) ) { |
|
174 | + // limit the query if the user supplied ids |
|
175 | + if( ! empty( $this->ids ) && is_array( $this->ids ) ) { |
|
176 | 176 | |
177 | - $query_args['post__in'] = $this->ids; |
|
177 | + $query_args['post__in'] = $this->ids; |
|
178 | 178 | |
179 | - } |
|
179 | + } |
|
180 | 180 | |
181 | - // exclude the course by id fromt he query |
|
182 | - if( ! empty( $this->exclude ) && is_array( $this->exclude ) ) { |
|
181 | + // exclude the course by id fromt he query |
|
182 | + if( ! empty( $this->exclude ) && is_array( $this->exclude ) ) { |
|
183 | 183 | |
184 | - $query_args['post__not_in'] = $this->exclude; |
|
184 | + $query_args['post__not_in'] = $this->exclude; |
|
185 | 185 | |
186 | - } |
|
186 | + } |
|
187 | 187 | |
188 | - $this->query = new WP_Query( $query_args ); |
|
188 | + $this->query = new WP_Query( $query_args ); |
|
189 | 189 | |
190 | - }// end setup _course_query |
|
190 | + }// end setup _course_query |
|
191 | 191 | |
192 | - /** |
|
193 | - * Rendering the shortcode this class is responsible for. |
|
194 | - * |
|
195 | - * @return string $content |
|
196 | - */ |
|
197 | - public function render(){ |
|
192 | + /** |
|
193 | + * Rendering the shortcode this class is responsible for. |
|
194 | + * |
|
195 | + * @return string $content |
|
196 | + */ |
|
197 | + public function render(){ |
|
198 | 198 | |
199 | - global $wp_query; |
|
199 | + global $wp_query; |
|
200 | 200 | |
201 | - // keep a reference to old query |
|
202 | - $current_global_query = $wp_query; |
|
201 | + // keep a reference to old query |
|
202 | + $current_global_query = $wp_query; |
|
203 | 203 | |
204 | - // assign the query setup in $this-> setup_course_query |
|
205 | - $wp_query = $this->query; |
|
204 | + // assign the query setup in $this-> setup_course_query |
|
205 | + $wp_query = $this->query; |
|
206 | 206 | |
207 | - ob_start(); |
|
208 | - Sensei_Templates::get_template('loop-course.php'); |
|
209 | - $shortcode_output = ob_get_clean(); |
|
207 | + ob_start(); |
|
208 | + Sensei_Templates::get_template('loop-course.php'); |
|
209 | + $shortcode_output = ob_get_clean(); |
|
210 | 210 | |
211 | - //restore old query |
|
212 | - $wp_query = $current_global_query; |
|
211 | + //restore old query |
|
212 | + $wp_query = $current_global_query; |
|
213 | 213 | |
214 | - return $shortcode_output; |
|
214 | + return $shortcode_output; |
|
215 | 215 | |
216 | - }// end render |
|
216 | + }// end render |
|
217 | 217 | |
218 | 218 | } |
219 | 219 | \ No newline at end of file |
@@ -14,88 +14,88 @@ |
||
14 | 14 | */ |
15 | 15 | class Sensei_Shortcode_Lesson_Page implements Sensei_Shortcode_Interface { |
16 | 16 | |
17 | - /** |
|
18 | - * @var array $lesson_page_query { |
|
19 | - * @type WP_Post |
|
20 | - * } |
|
21 | - * The lessons query |
|
22 | - */ |
|
23 | - protected $lesson_page_query; |
|
17 | + /** |
|
18 | + * @var array $lesson_page_query { |
|
19 | + * @type WP_Post |
|
20 | + * } |
|
21 | + * The lessons query |
|
22 | + */ |
|
23 | + protected $lesson_page_query; |
|
24 | 24 | |
25 | - /** |
|
26 | - * Setup the shortcode object |
|
27 | - * |
|
28 | - * @since 1.9.0 |
|
29 | - * @param array $attributes |
|
30 | - * @param string $content |
|
31 | - * @param string $shortcode the shortcode that was called for this instance |
|
32 | - */ |
|
33 | - public function __construct( $attributes, $content, $shortcode ){ |
|
25 | + /** |
|
26 | + * Setup the shortcode object |
|
27 | + * |
|
28 | + * @since 1.9.0 |
|
29 | + * @param array $attributes |
|
30 | + * @param string $content |
|
31 | + * @param string $shortcode the shortcode that was called for this instance |
|
32 | + */ |
|
33 | + public function __construct( $attributes, $content, $shortcode ){ |
|
34 | 34 | |
35 | - $this->id = isset( $attributes['id'] ) ? $attributes['id'] : ''; |
|
36 | - $this->setup_lesson_query(); |
|
35 | + $this->id = isset( $attributes['id'] ) ? $attributes['id'] : ''; |
|
36 | + $this->setup_lesson_query(); |
|
37 | 37 | |
38 | - } |
|
38 | + } |
|
39 | 39 | |
40 | - /** |
|
41 | - * create the lessons query . |
|
42 | - * |
|
43 | - * @return mixed |
|
44 | - */ |
|
45 | - public function setup_lesson_query(){ |
|
40 | + /** |
|
41 | + * create the lessons query . |
|
42 | + * |
|
43 | + * @return mixed |
|
44 | + */ |
|
45 | + public function setup_lesson_query(){ |
|
46 | 46 | |
47 | - if( empty( $this->id ) ){ |
|
48 | - return; |
|
49 | - } |
|
47 | + if( empty( $this->id ) ){ |
|
48 | + return; |
|
49 | + } |
|
50 | 50 | |
51 | - $args = array( |
|
52 | - 'post_type' => 'lesson', |
|
53 | - 'posts_per_page' => 1, |
|
54 | - 'post_status' => 'publish', |
|
55 | - 'post__in' => array( $this->id ), |
|
56 | - ); |
|
51 | + $args = array( |
|
52 | + 'post_type' => 'lesson', |
|
53 | + 'posts_per_page' => 1, |
|
54 | + 'post_status' => 'publish', |
|
55 | + 'post__in' => array( $this->id ), |
|
56 | + ); |
|
57 | 57 | |
58 | - $this->lesson_page_query = new WP_Query( $args ); |
|
58 | + $this->lesson_page_query = new WP_Query( $args ); |
|
59 | 59 | |
60 | - } |
|
60 | + } |
|
61 | 61 | |
62 | - /** |
|
63 | - * Rendering the shortcode this class is responsible for. |
|
64 | - * |
|
65 | - * @return string $content |
|
66 | - */ |
|
67 | - public function render(){ |
|
62 | + /** |
|
63 | + * Rendering the shortcode this class is responsible for. |
|
64 | + * |
|
65 | + * @return string $content |
|
66 | + */ |
|
67 | + public function render(){ |
|
68 | 68 | |
69 | - if( empty( $this->id ) ){ |
|
69 | + if( empty( $this->id ) ){ |
|
70 | 70 | |
71 | - return __( 'Please supply a lesson ID for this shortcode.', 'woothemes-sensei' ); |
|
71 | + return __( 'Please supply a lesson ID for this shortcode.', 'woothemes-sensei' ); |
|
72 | 72 | |
73 | - } |
|
73 | + } |
|
74 | 74 | |
75 | - //set the wp_query to the current lessons query |
|
76 | - global $wp_query; |
|
77 | - $wp_query = $this->lesson_page_query; |
|
75 | + //set the wp_query to the current lessons query |
|
76 | + global $wp_query; |
|
77 | + $wp_query = $this->lesson_page_query; |
|
78 | 78 | |
79 | - if( have_posts() ){ |
|
79 | + if( have_posts() ){ |
|
80 | 80 | |
81 | - the_post(); |
|
81 | + the_post(); |
|
82 | 82 | |
83 | - }else{ |
|
83 | + }else{ |
|
84 | 84 | |
85 | - return __('No posts found.', 'woothemes-sensei'); |
|
85 | + return __('No posts found.', 'woothemes-sensei'); |
|
86 | 86 | |
87 | - } |
|
87 | + } |
|
88 | 88 | |
89 | - ob_start(); |
|
90 | - Sensei_Templates::get_template('content-single-lesson.php'); |
|
91 | - $shortcode_output = ob_get_clean(); |
|
89 | + ob_start(); |
|
90 | + Sensei_Templates::get_template('content-single-lesson.php'); |
|
91 | + $shortcode_output = ob_get_clean(); |
|
92 | 92 | |
93 | - // set back the global query |
|
94 | - wp_reset_query(); |
|
93 | + // set back the global query |
|
94 | + wp_reset_query(); |
|
95 | 95 | |
96 | - return $shortcode_output; |
|
96 | + return $shortcode_output; |
|
97 | 97 | |
98 | - }// end render |
|
98 | + }// end render |
|
99 | 99 | |
100 | 100 | }// end class |
101 | 101 |
@@ -13,115 +13,115 @@ |
||
13 | 13 | */ |
14 | 14 | class Sensei_Shortcode_Featured_Courses implements Sensei_Shortcode_Interface { |
15 | 15 | |
16 | - /** |
|
17 | - * @var WP_Query to help setup the query needed by the render method. |
|
18 | - */ |
|
19 | - protected $query; |
|
20 | - |
|
21 | - /** |
|
22 | - * @var string number of items to show on the current page |
|
23 | - * Default: -1. |
|
24 | - */ |
|
25 | - protected $number; |
|
26 | - |
|
27 | - /** |
|
28 | - * @var string ordery by course field |
|
29 | - * Default: date |
|
30 | - */ |
|
31 | - protected $orderby; |
|
32 | - |
|
33 | - /** |
|
34 | - * @var string ASC or DESC |
|
35 | - * Default: 'DESC' |
|
36 | - */ |
|
37 | - protected $order; |
|
38 | - |
|
39 | - /** |
|
40 | - * @var string teacher id to limit the courses to |
|
41 | - */ |
|
42 | - protected $teacher; |
|
43 | - |
|
44 | - /** |
|
45 | - * Setup the shortcode object |
|
46 | - * |
|
47 | - * @since 1.9.0 |
|
48 | - * @param array $attributes |
|
49 | - * @param string $content |
|
50 | - * @param string $shortcode the shortcode that was called for this instance |
|
51 | - */ |
|
52 | - public function __construct( $attributes, $content, $shortcode ){ |
|
53 | - |
|
54 | - // set up all argument need for constructing the course query |
|
55 | - $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10'; |
|
56 | - $this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : ''; |
|
57 | - $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date'; |
|
58 | - |
|
59 | - // set the default for menu_order to be ASC |
|
60 | - if( 'menu_order' == $this->orderby && !isset( $attributes['order'] ) ){ |
|
61 | - |
|
62 | - $this->order = 'ASC'; |
|
63 | - |
|
64 | - }else{ |
|
65 | - |
|
66 | - // for everything else use the value passed or the default DESC |
|
67 | - $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'DESC'; |
|
68 | - |
|
69 | - } |
|
70 | - |
|
71 | - // setup the course query that will be used when rendering |
|
72 | - $this->setup_course_query(); |
|
73 | - } |
|
74 | - |
|
75 | - /** |
|
76 | - * Sets up the object course query |
|
77 | - * that will be used int he render method. |
|
78 | - * |
|
79 | - * @since 1.9.0 |
|
80 | - */ |
|
81 | - protected function setup_course_query(){ |
|
82 | - |
|
83 | - //for non numeric teacher arguments value query by author_name and not author |
|
84 | - $teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name'; |
|
85 | - |
|
86 | - $query_args = array( |
|
87 | - 'post_type' => 'course', |
|
88 | - 'post_status' => 'publish', |
|
89 | - 'orderby' => $this->orderby, |
|
90 | - 'order' => $this->order, |
|
91 | - 'posts_per_page' => $this->number, |
|
92 | - $teacher_query_by => $this->teacher, |
|
93 | - 'meta_value' => 'featured', |
|
94 | - 'meta_key' => '_course_featured', |
|
95 | - 'meta_compare' => '=', |
|
96 | - 'suppress_filters' => 0, |
|
97 | - ); |
|
98 | - |
|
99 | - $this->query = new WP_Query( $query_args ); |
|
100 | - |
|
101 | - }// end setup _course_query |
|
102 | - |
|
103 | - /** |
|
104 | - * Rendering the shortcode this class is responsible for. |
|
105 | - */ |
|
106 | - public function render(){ |
|
107 | - |
|
108 | - global $wp_query; |
|
109 | - |
|
110 | - // keep a reference to old query |
|
111 | - $current_global_query = $wp_query; |
|
112 | - |
|
113 | - // assign the query setup in $this-> setup_course_query |
|
114 | - $wp_query = $this->query; |
|
115 | - |
|
116 | - ob_start(); |
|
117 | - Sensei_Templates::get_template('loop-course.php'); |
|
118 | - $shortcode_output = ob_get_clean(); |
|
119 | - |
|
120 | - //restore old query |
|
121 | - $wp_query = $current_global_query; |
|
122 | - |
|
123 | - return $shortcode_output; |
|
124 | - |
|
125 | - }// end render |
|
16 | + /** |
|
17 | + * @var WP_Query to help setup the query needed by the render method. |
|
18 | + */ |
|
19 | + protected $query; |
|
20 | + |
|
21 | + /** |
|
22 | + * @var string number of items to show on the current page |
|
23 | + * Default: -1. |
|
24 | + */ |
|
25 | + protected $number; |
|
26 | + |
|
27 | + /** |
|
28 | + * @var string ordery by course field |
|
29 | + * Default: date |
|
30 | + */ |
|
31 | + protected $orderby; |
|
32 | + |
|
33 | + /** |
|
34 | + * @var string ASC or DESC |
|
35 | + * Default: 'DESC' |
|
36 | + */ |
|
37 | + protected $order; |
|
38 | + |
|
39 | + /** |
|
40 | + * @var string teacher id to limit the courses to |
|
41 | + */ |
|
42 | + protected $teacher; |
|
43 | + |
|
44 | + /** |
|
45 | + * Setup the shortcode object |
|
46 | + * |
|
47 | + * @since 1.9.0 |
|
48 | + * @param array $attributes |
|
49 | + * @param string $content |
|
50 | + * @param string $shortcode the shortcode that was called for this instance |
|
51 | + */ |
|
52 | + public function __construct( $attributes, $content, $shortcode ){ |
|
53 | + |
|
54 | + // set up all argument need for constructing the course query |
|
55 | + $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10'; |
|
56 | + $this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : ''; |
|
57 | + $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date'; |
|
58 | + |
|
59 | + // set the default for menu_order to be ASC |
|
60 | + if( 'menu_order' == $this->orderby && !isset( $attributes['order'] ) ){ |
|
61 | + |
|
62 | + $this->order = 'ASC'; |
|
63 | + |
|
64 | + }else{ |
|
65 | + |
|
66 | + // for everything else use the value passed or the default DESC |
|
67 | + $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'DESC'; |
|
68 | + |
|
69 | + } |
|
70 | + |
|
71 | + // setup the course query that will be used when rendering |
|
72 | + $this->setup_course_query(); |
|
73 | + } |
|
74 | + |
|
75 | + /** |
|
76 | + * Sets up the object course query |
|
77 | + * that will be used int he render method. |
|
78 | + * |
|
79 | + * @since 1.9.0 |
|
80 | + */ |
|
81 | + protected function setup_course_query(){ |
|
82 | + |
|
83 | + //for non numeric teacher arguments value query by author_name and not author |
|
84 | + $teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name'; |
|
85 | + |
|
86 | + $query_args = array( |
|
87 | + 'post_type' => 'course', |
|
88 | + 'post_status' => 'publish', |
|
89 | + 'orderby' => $this->orderby, |
|
90 | + 'order' => $this->order, |
|
91 | + 'posts_per_page' => $this->number, |
|
92 | + $teacher_query_by => $this->teacher, |
|
93 | + 'meta_value' => 'featured', |
|
94 | + 'meta_key' => '_course_featured', |
|
95 | + 'meta_compare' => '=', |
|
96 | + 'suppress_filters' => 0, |
|
97 | + ); |
|
98 | + |
|
99 | + $this->query = new WP_Query( $query_args ); |
|
100 | + |
|
101 | + }// end setup _course_query |
|
102 | + |
|
103 | + /** |
|
104 | + * Rendering the shortcode this class is responsible for. |
|
105 | + */ |
|
106 | + public function render(){ |
|
107 | + |
|
108 | + global $wp_query; |
|
109 | + |
|
110 | + // keep a reference to old query |
|
111 | + $current_global_query = $wp_query; |
|
112 | + |
|
113 | + // assign the query setup in $this-> setup_course_query |
|
114 | + $wp_query = $this->query; |
|
115 | + |
|
116 | + ob_start(); |
|
117 | + Sensei_Templates::get_template('loop-course.php'); |
|
118 | + $shortcode_output = ob_get_clean(); |
|
119 | + |
|
120 | + //restore old query |
|
121 | + $wp_query = $current_global_query; |
|
122 | + |
|
123 | + return $shortcode_output; |
|
124 | + |
|
125 | + }// end render |
|
126 | 126 | |
127 | 127 | } |
128 | 128 | \ No newline at end of file |
@@ -12,19 +12,19 @@ |
||
12 | 12 | */ |
13 | 13 | interface Sensei_Shortcode_Interface { |
14 | 14 | |
15 | - /** |
|
16 | - * All constructors must implement and accept $attributes and $content as arguments |
|
17 | - * |
|
18 | - * @param array $attributes |
|
19 | - * @param string $content |
|
20 | - * @param string $shortcode |
|
21 | - * @return mixed |
|
22 | - */ |
|
23 | - public function __construct($attributes, $content, $shortcode); |
|
15 | + /** |
|
16 | + * All constructors must implement and accept $attributes and $content as arguments |
|
17 | + * |
|
18 | + * @param array $attributes |
|
19 | + * @param string $content |
|
20 | + * @param string $shortcode |
|
21 | + * @return mixed |
|
22 | + */ |
|
23 | + public function __construct($attributes, $content, $shortcode); |
|
24 | 24 | |
25 | - /** |
|
26 | - * @return string generated output |
|
27 | - */ |
|
28 | - public function render(); |
|
25 | + /** |
|
26 | + * @return string generated output |
|
27 | + */ |
|
28 | + public function render(); |
|
29 | 29 | |
30 | 30 | }// end interface |
31 | 31 | \ No newline at end of file |
@@ -14,97 +14,97 @@ discard block |
||
14 | 14 | */ |
15 | 15 | class Sensei_Shortcode_Course_Page implements Sensei_Shortcode_Interface { |
16 | 16 | |
17 | - /** |
|
18 | - * @var array $course_page_query{ |
|
19 | - * @type WP_Post |
|
20 | - * } |
|
21 | - * The courses query |
|
22 | - */ |
|
23 | - protected $course_page_query; |
|
24 | - |
|
25 | - /** |
|
26 | - * Setup the shortcode object |
|
27 | - * |
|
28 | - * @since 1.9.0 |
|
29 | - * @param array $attributes |
|
30 | - * @param string $content |
|
31 | - * @param string $shortcode the shortcode that was called for this instance |
|
32 | - */ |
|
33 | - public function __construct( $attributes, $content, $shortcode ){ |
|
34 | - |
|
35 | - $this->id = isset( $attributes['id'] ) ? $attributes['id'] : ''; |
|
36 | - $this->setup_course_query(); |
|
37 | - |
|
38 | - } |
|
39 | - |
|
40 | - /** |
|
41 | - * create the courses query . |
|
42 | - * |
|
43 | - * @return mixed |
|
44 | - */ |
|
45 | - public function setup_course_query(){ |
|
46 | - |
|
47 | - if( empty( $this->id ) ){ |
|
48 | - return; |
|
49 | - } |
|
50 | - |
|
51 | - $args = array( |
|
52 | - 'post_type' => 'course', |
|
53 | - 'posts_per_page' => 1, |
|
54 | - 'post_status' => 'publish', |
|
55 | - 'post__in' => array( $this->id ), |
|
56 | - ); |
|
57 | - |
|
58 | - $this->course_page_query = new WP_Query( $args ); |
|
59 | - |
|
60 | - } |
|
61 | - |
|
62 | - /** |
|
63 | - * Rendering the shortcode this class is responsible for. |
|
64 | - * |
|
65 | - * @return string $content |
|
66 | - */ |
|
67 | - public function render(){ |
|
68 | - |
|
69 | - if( empty( $this->id ) ){ |
|
70 | - |
|
71 | - return sprintf( __( 'Please supply a course ID for the shortcode: %s', 'woothemes-sensei' ),'[sensei_course_page id=""]') ; |
|
72 | - |
|
73 | - } |
|
74 | - |
|
75 | - //set the wp_query to the current courses query |
|
76 | - global $wp_query, $post; |
|
77 | - |
|
78 | - // backups |
|
79 | - $global_post_ref = $post; |
|
80 | - $global_wp_query_ref = $wp_query; |
|
81 | - |
|
82 | - $post = get_post( $this->id ); |
|
83 | - $wp_query->post = get_post( $this->id ); // set this in case some the course hooks resets the query |
|
84 | - $wp_query = $this->course_page_query; |
|
85 | - |
|
86 | - ob_start(); |
|
87 | - self::the_single_course_content(); |
|
88 | - $shortcode_output = ob_get_clean(); |
|
89 | - |
|
90 | - // set back the global query and post |
|
91 | - // restore global backups |
|
92 | - $wp_query = $global_wp_query_ref; |
|
93 | - $post = $global_post_ref; |
|
94 | - $wp_query->post = $global_post_ref; |
|
95 | - wp_reset_query(); |
|
96 | - |
|
97 | - return $shortcode_output; |
|
98 | - |
|
99 | - }// end render |
|
100 | - |
|
101 | - /** |
|
102 | - * Print out the single course content markup |
|
103 | - * |
|
104 | - * @since 1.9.0 |
|
105 | - */ |
|
106 | - public static function the_single_course_content(){ |
|
107 | - ?> |
|
17 | + /** |
|
18 | + * @var array $course_page_query{ |
|
19 | + * @type WP_Post |
|
20 | + * } |
|
21 | + * The courses query |
|
22 | + */ |
|
23 | + protected $course_page_query; |
|
24 | + |
|
25 | + /** |
|
26 | + * Setup the shortcode object |
|
27 | + * |
|
28 | + * @since 1.9.0 |
|
29 | + * @param array $attributes |
|
30 | + * @param string $content |
|
31 | + * @param string $shortcode the shortcode that was called for this instance |
|
32 | + */ |
|
33 | + public function __construct( $attributes, $content, $shortcode ){ |
|
34 | + |
|
35 | + $this->id = isset( $attributes['id'] ) ? $attributes['id'] : ''; |
|
36 | + $this->setup_course_query(); |
|
37 | + |
|
38 | + } |
|
39 | + |
|
40 | + /** |
|
41 | + * create the courses query . |
|
42 | + * |
|
43 | + * @return mixed |
|
44 | + */ |
|
45 | + public function setup_course_query(){ |
|
46 | + |
|
47 | + if( empty( $this->id ) ){ |
|
48 | + return; |
|
49 | + } |
|
50 | + |
|
51 | + $args = array( |
|
52 | + 'post_type' => 'course', |
|
53 | + 'posts_per_page' => 1, |
|
54 | + 'post_status' => 'publish', |
|
55 | + 'post__in' => array( $this->id ), |
|
56 | + ); |
|
57 | + |
|
58 | + $this->course_page_query = new WP_Query( $args ); |
|
59 | + |
|
60 | + } |
|
61 | + |
|
62 | + /** |
|
63 | + * Rendering the shortcode this class is responsible for. |
|
64 | + * |
|
65 | + * @return string $content |
|
66 | + */ |
|
67 | + public function render(){ |
|
68 | + |
|
69 | + if( empty( $this->id ) ){ |
|
70 | + |
|
71 | + return sprintf( __( 'Please supply a course ID for the shortcode: %s', 'woothemes-sensei' ),'[sensei_course_page id=""]') ; |
|
72 | + |
|
73 | + } |
|
74 | + |
|
75 | + //set the wp_query to the current courses query |
|
76 | + global $wp_query, $post; |
|
77 | + |
|
78 | + // backups |
|
79 | + $global_post_ref = $post; |
|
80 | + $global_wp_query_ref = $wp_query; |
|
81 | + |
|
82 | + $post = get_post( $this->id ); |
|
83 | + $wp_query->post = get_post( $this->id ); // set this in case some the course hooks resets the query |
|
84 | + $wp_query = $this->course_page_query; |
|
85 | + |
|
86 | + ob_start(); |
|
87 | + self::the_single_course_content(); |
|
88 | + $shortcode_output = ob_get_clean(); |
|
89 | + |
|
90 | + // set back the global query and post |
|
91 | + // restore global backups |
|
92 | + $wp_query = $global_wp_query_ref; |
|
93 | + $post = $global_post_ref; |
|
94 | + $wp_query->post = $global_post_ref; |
|
95 | + wp_reset_query(); |
|
96 | + |
|
97 | + return $shortcode_output; |
|
98 | + |
|
99 | + }// end render |
|
100 | + |
|
101 | + /** |
|
102 | + * Print out the single course content markup |
|
103 | + * |
|
104 | + * @since 1.9.0 |
|
105 | + */ |
|
106 | + public static function the_single_course_content(){ |
|
107 | + ?> |
|
108 | 108 | |
109 | 109 | <article <?php post_class( array( 'course', 'post' ) ); ?> > |
110 | 110 | |
@@ -122,6 +122,6 @@ discard block |
||
122 | 122 | </article> |
123 | 123 | |
124 | 124 | <?php |
125 | - }// end the_single_course_content |
|
125 | + }// end the_single_course_content |
|
126 | 126 | |
127 | 127 | }// end class |
@@ -17,270 +17,270 @@ |
||
17 | 17 | */ |
18 | 18 | class Sensei_Shortcode_Teachers implements Sensei_Shortcode_Interface { |
19 | 19 | |
20 | - /** |
|
21 | - * @var WP_User_Query keeps a reference to the user query created |
|
22 | - */ |
|
23 | - protected $user_query; |
|
20 | + /** |
|
21 | + * @var WP_User_Query keeps a reference to the user query created |
|
22 | + */ |
|
23 | + protected $user_query; |
|
24 | 24 | |
25 | - /** |
|
26 | - * @var which user id's to include |
|
27 | - */ |
|
28 | - protected $include; |
|
25 | + /** |
|
26 | + * @var which user id's to include |
|
27 | + */ |
|
28 | + protected $include; |
|
29 | 29 | |
30 | - /** |
|
31 | - * @var which user id's to exclude |
|
32 | - */ |
|
33 | - protected $exclude; |
|
30 | + /** |
|
31 | + * @var which user id's to exclude |
|
32 | + */ |
|
33 | + protected $exclude; |
|
34 | 34 | |
35 | - /** |
|
36 | - * Setup the shortcode object |
|
37 | - * |
|
38 | - * @since 1.9.0 |
|
39 | - * @param array $attributes |
|
40 | - * @param string $content |
|
41 | - * @param string $shortcode the shortcode that was called for this instance |
|
42 | - */ |
|
43 | - public function __construct( $attributes, $content, $shortcode ){ |
|
35 | + /** |
|
36 | + * Setup the shortcode object |
|
37 | + * |
|
38 | + * @since 1.9.0 |
|
39 | + * @param array $attributes |
|
40 | + * @param string $content |
|
41 | + * @param string $shortcode the shortcode that was called for this instance |
|
42 | + */ |
|
43 | + public function __construct( $attributes, $content, $shortcode ){ |
|
44 | 44 | |
45 | - $include = isset( $attributes['include'] ) ? explode( ',', $attributes['include'] ) : ''; |
|
46 | - $exclude = isset( $attributes['exclude'] ) ? explode( ',', $attributes['exclude'] ) : ''; |
|
45 | + $include = isset( $attributes['include'] ) ? explode( ',', $attributes['include'] ) : ''; |
|
46 | + $exclude = isset( $attributes['exclude'] ) ? explode( ',', $attributes['exclude'] ) : ''; |
|
47 | 47 | |
48 | - // convert teacher usernames given to the id |
|
49 | - $this->include = $this->convert_usernames_to_ids( $include ); |
|
50 | - $this->exclude = $this->convert_usernames_to_ids( $exclude ); |
|
48 | + // convert teacher usernames given to the id |
|
49 | + $this->include = $this->convert_usernames_to_ids( $include ); |
|
50 | + $this->exclude = $this->convert_usernames_to_ids( $exclude ); |
|
51 | 51 | |
52 | - $this->setup_teacher_query(); |
|
52 | + $this->setup_teacher_query(); |
|
53 | 53 | |
54 | - } |
|
54 | + } |
|
55 | 55 | |
56 | - /** |
|
57 | - * |
|
58 | - * Setup the user query that will be used in the render method |
|
59 | - * |
|
60 | - * @since 1.9.0 |
|
61 | - */ |
|
62 | - protected function setup_teacher_query(){ |
|
56 | + /** |
|
57 | + * |
|
58 | + * Setup the user query that will be used in the render method |
|
59 | + * |
|
60 | + * @since 1.9.0 |
|
61 | + */ |
|
62 | + protected function setup_teacher_query(){ |
|
63 | 63 | |
64 | - $user_query_args = array( |
|
65 | - 'role' => 'teacher', |
|
66 | - ); |
|
64 | + $user_query_args = array( |
|
65 | + 'role' => 'teacher', |
|
66 | + ); |
|
67 | 67 | |
68 | - $this->user_query = new WP_User_Query( $user_query_args ); |
|
68 | + $this->user_query = new WP_User_Query( $user_query_args ); |
|
69 | 69 | |
70 | - }// end setup _course_query |
|
70 | + }// end setup _course_query |
|
71 | 71 | |
72 | - /** |
|
73 | - * Rendering the shortcode this class is responsible for. |
|
74 | - * |
|
75 | - * @return string $content |
|
76 | - */ |
|
77 | - public function render(){ |
|
72 | + /** |
|
73 | + * Rendering the shortcode this class is responsible for. |
|
74 | + * |
|
75 | + * @return string $content |
|
76 | + */ |
|
77 | + public function render(){ |
|
78 | 78 | |
79 | - $all_users = $this->user_query->get_results(); |
|
80 | - // if the user has specified more users add them as well. |
|
81 | - if( ! empty( $this->include ) ){ |
|
79 | + $all_users = $this->user_query->get_results(); |
|
80 | + // if the user has specified more users add them as well. |
|
81 | + if( ! empty( $this->include ) ){ |
|
82 | 82 | |
83 | - $included_users_query = new WP_User_Query( array( 'include' => $this->include ) ); |
|
84 | - $included_users = $included_users_query->get_results(); |
|
85 | - if( ! empty( $included_users ) ){ |
|
83 | + $included_users_query = new WP_User_Query( array( 'include' => $this->include ) ); |
|
84 | + $included_users = $included_users_query->get_results(); |
|
85 | + if( ! empty( $included_users ) ){ |
|
86 | 86 | |
87 | - $merged_users = array_merge( $all_users, $included_users ); |
|
88 | - $all_users = $this->users_unique( $merged_users ); |
|
89 | - $all_users = $this->users_sort( $all_users ); |
|
87 | + $merged_users = array_merge( $all_users, $included_users ); |
|
88 | + $all_users = $this->users_unique( $merged_users ); |
|
89 | + $all_users = $this->users_sort( $all_users ); |
|
90 | 90 | |
91 | - } |
|
91 | + } |
|
92 | 92 | |
93 | - } |
|
93 | + } |
|
94 | 94 | |
95 | - // exclude the users not wanted |
|
96 | - if( ! empty( $this->exclude ) ){ |
|
95 | + // exclude the users not wanted |
|
96 | + if( ! empty( $this->exclude ) ){ |
|
97 | 97 | |
98 | - $all_users = $this->exclude_users( $all_users, $this->exclude ); |
|
98 | + $all_users = $this->exclude_users( $all_users, $this->exclude ); |
|
99 | 99 | |
100 | - } |
|
100 | + } |
|
101 | 101 | |
102 | - if( ! count( $all_users )> 0 ){ |
|
103 | - return ''; |
|
104 | - } |
|
102 | + if( ! count( $all_users )> 0 ){ |
|
103 | + return ''; |
|
104 | + } |
|
105 | 105 | |
106 | 106 | |
107 | - $users_output = ''; |
|
107 | + $users_output = ''; |
|
108 | 108 | |
109 | - foreach ( $all_users as $user ) { |
|
109 | + foreach ( $all_users as $user ) { |
|
110 | 110 | |
111 | - $user_display_name = $this->get_user_public_name( $user ); |
|
111 | + $user_display_name = $this->get_user_public_name( $user ); |
|
112 | 112 | |
113 | - /** |
|
114 | - * Sensei teachers shortcode list item filter |
|
115 | - * |
|
116 | - * @since 1.9.0 |
|
117 | - * |
|
118 | - * @param string $teacher_li the html for the teacher li |
|
119 | - * @param WP_User $user |
|
120 | - */ |
|
121 | - $users_output .= apply_filters( 'sensei_teachers_shortcode_list_item', '<li class="teacher"><a href="'. get_author_posts_url( $user->ID ) . '">'. $user_display_name . '<a/></li>', $user ); |
|
113 | + /** |
|
114 | + * Sensei teachers shortcode list item filter |
|
115 | + * |
|
116 | + * @since 1.9.0 |
|
117 | + * |
|
118 | + * @param string $teacher_li the html for the teacher li |
|
119 | + * @param WP_User $user |
|
120 | + */ |
|
121 | + $users_output .= apply_filters( 'sensei_teachers_shortcode_list_item', '<li class="teacher"><a href="'. get_author_posts_url( $user->ID ) . '">'. $user_display_name . '<a/></li>', $user ); |
|
122 | 122 | |
123 | - } |
|
123 | + } |
|
124 | 124 | |
125 | - return '<ul class="sensei-teachers">' . $users_output . '</ul>'; |
|
125 | + return '<ul class="sensei-teachers">' . $users_output . '</ul>'; |
|
126 | 126 | |
127 | - }// end render |
|
127 | + }// end render |
|
128 | 128 | |
129 | - /** |
|
130 | - * remove duplicate user objects from and array of users |
|
131 | - * |
|
132 | - * @since 1.9.0 |
|
133 | - * |
|
134 | - * @param array $users{ |
|
135 | - * @type WP_User |
|
136 | - * } |
|
137 | - * |
|
138 | - * @return array $unique_users { |
|
139 | - * @type WP_User |
|
140 | - * } |
|
141 | - */ |
|
142 | - public function users_unique( $users ){ |
|
129 | + /** |
|
130 | + * remove duplicate user objects from and array of users |
|
131 | + * |
|
132 | + * @since 1.9.0 |
|
133 | + * |
|
134 | + * @param array $users{ |
|
135 | + * @type WP_User |
|
136 | + * } |
|
137 | + * |
|
138 | + * @return array $unique_users { |
|
139 | + * @type WP_User |
|
140 | + * } |
|
141 | + */ |
|
142 | + public function users_unique( $users ){ |
|
143 | 143 | |
144 | - $array_unique_users_ids = array(); |
|
145 | - foreach( $users as $index => $user ){ |
|
144 | + $array_unique_users_ids = array(); |
|
145 | + foreach( $users as $index => $user ){ |
|
146 | 146 | |
147 | - if( in_array( $user->ID, $array_unique_users_ids) ){ |
|
147 | + if( in_array( $user->ID, $array_unique_users_ids) ){ |
|
148 | 148 | |
149 | - // exclude this user as it is already in the list |
|
150 | - unset( $users[ $index ] ); |
|
149 | + // exclude this user as it is already in the list |
|
150 | + unset( $users[ $index ] ); |
|
151 | 151 | |
152 | - }else{ |
|
152 | + }else{ |
|
153 | 153 | |
154 | - // add teh user to the list of users |
|
155 | - $array_unique_users_ids[] = $user->ID; |
|
154 | + // add teh user to the list of users |
|
155 | + $array_unique_users_ids[] = $user->ID; |
|
156 | 156 | |
157 | - } |
|
157 | + } |
|
158 | 158 | |
159 | - } |
|
159 | + } |
|
160 | 160 | |
161 | - return $users; |
|
161 | + return $users; |
|
162 | 162 | |
163 | - }// end users_unique |
|
163 | + }// end users_unique |
|
164 | 164 | |
165 | - /** |
|
166 | - * Exclude users based ont he ids given. |
|
167 | - * |
|
168 | - * @since 1.9.0 |
|
169 | - * |
|
170 | - * @param array $users |
|
171 | - * @param array $exclude_ids |
|
172 | - * @return array |
|
173 | - */ |
|
174 | - public function exclude_users( $users, $exclude_ids ){ |
|
165 | + /** |
|
166 | + * Exclude users based ont he ids given. |
|
167 | + * |
|
168 | + * @since 1.9.0 |
|
169 | + * |
|
170 | + * @param array $users |
|
171 | + * @param array $exclude_ids |
|
172 | + * @return array |
|
173 | + */ |
|
174 | + public function exclude_users( $users, $exclude_ids ){ |
|
175 | 175 | |
176 | - foreach( $users as $index => $user ){ |
|
176 | + foreach( $users as $index => $user ){ |
|
177 | 177 | |
178 | - if( in_array( $user->ID, $exclude_ids ) ){ |
|
178 | + if( in_array( $user->ID, $exclude_ids ) ){ |
|
179 | 179 | |
180 | - // remove the user from the list |
|
181 | - unset( $users[ $index ] ); |
|
180 | + // remove the user from the list |
|
181 | + unset( $users[ $index ] ); |
|
182 | 182 | |
183 | - } |
|
183 | + } |
|
184 | 184 | |
185 | - } |
|
185 | + } |
|
186 | 186 | |
187 | - return $users; |
|
187 | + return $users; |
|
188 | 188 | |
189 | - }// end exclude_users |
|
189 | + }// end exclude_users |
|
190 | 190 | |
191 | - /** |
|
192 | - * Convert mixed array of user id and user names to only be an array of user_ids |
|
193 | - * |
|
194 | - * @param array $users |
|
195 | - * @return array $users_ids |
|
196 | - */ |
|
197 | - public function convert_usernames_to_ids( $users ){ |
|
191 | + /** |
|
192 | + * Convert mixed array of user id and user names to only be an array of user_ids |
|
193 | + * |
|
194 | + * @param array $users |
|
195 | + * @return array $users_ids |
|
196 | + */ |
|
197 | + public function convert_usernames_to_ids( $users ){ |
|
198 | 198 | |
199 | - // backup |
|
200 | - $users_ids = array(); |
|
199 | + // backup |
|
200 | + $users_ids = array(); |
|
201 | 201 | |
202 | - if ( is_array($users) ) { |
|
202 | + if ( is_array($users) ) { |
|
203 | 203 | |
204 | - foreach ($users as $user_id_or_username) { |
|
204 | + foreach ($users as $user_id_or_username) { |
|
205 | 205 | |
206 | - if (!is_numeric($user_id_or_username)) { |
|
206 | + if (!is_numeric($user_id_or_username)) { |
|
207 | 207 | |
208 | - $user_name = $user_id_or_username; |
|
209 | - $user = get_user_by('login', $user_name); |
|
208 | + $user_name = $user_id_or_username; |
|
209 | + $user = get_user_by('login', $user_name); |
|
210 | 210 | |
211 | - if (is_a($user, 'WP_User')) { |
|
212 | - $users_ids[] = $user->ID; |
|
213 | - } |
|
211 | + if (is_a($user, 'WP_User')) { |
|
212 | + $users_ids[] = $user->ID; |
|
213 | + } |
|
214 | 214 | |
215 | - } else { |
|
215 | + } else { |
|
216 | 216 | |
217 | - $user_id = $user_id_or_username; |
|
218 | - $users_ids[] = $user_id; |
|
217 | + $user_id = $user_id_or_username; |
|
218 | + $users_ids[] = $user_id; |
|
219 | 219 | |
220 | - } |
|
220 | + } |
|
221 | 221 | |
222 | - } |
|
223 | - } |
|
222 | + } |
|
223 | + } |
|
224 | 224 | |
225 | - return $users_ids; |
|
226 | - } |
|
225 | + return $users_ids; |
|
226 | + } |
|
227 | 227 | |
228 | - /** |
|
229 | - * Returns the first name and last name or the display name of a user. |
|
230 | - * |
|
231 | - * @since 1.9.0 |
|
232 | - * |
|
233 | - * @param $user |
|
234 | - * @return string $user_public_name |
|
235 | - */ |
|
236 | - public function get_user_public_name( $user ){ |
|
228 | + /** |
|
229 | + * Returns the first name and last name or the display name of a user. |
|
230 | + * |
|
231 | + * @since 1.9.0 |
|
232 | + * |
|
233 | + * @param $user |
|
234 | + * @return string $user_public_name |
|
235 | + */ |
|
236 | + public function get_user_public_name( $user ){ |
|
237 | 237 | |
238 | - if (!empty($user->first_name) && !empty($user->last_name)) { |
|
238 | + if (!empty($user->first_name) && !empty($user->last_name)) { |
|
239 | 239 | |
240 | - $user_public_name = $user->first_name . ' ' . $user->last_name; |
|
240 | + $user_public_name = $user->first_name . ' ' . $user->last_name; |
|
241 | 241 | |
242 | - } |
|
242 | + } |
|
243 | 243 | |
244 | - else { |
|
244 | + else { |
|
245 | 245 | |
246 | - $user_public_name = $user->display_name; |
|
246 | + $user_public_name = $user->display_name; |
|
247 | 247 | |
248 | - } |
|
248 | + } |
|
249 | 249 | |
250 | - return $user_public_name; |
|
251 | - } |
|
250 | + return $user_public_name; |
|
251 | + } |
|
252 | 252 | |
253 | - /** |
|
254 | - * |
|
255 | - * Sort user objects by user display |
|
256 | - * |
|
257 | - * @since 1.9.0 |
|
258 | - * |
|
259 | - * @param $users |
|
260 | - * @return array $sorted_users |
|
261 | - */ |
|
262 | - public function users_sort( $users ){ |
|
253 | + /** |
|
254 | + * |
|
255 | + * Sort user objects by user display |
|
256 | + * |
|
257 | + * @since 1.9.0 |
|
258 | + * |
|
259 | + * @param $users |
|
260 | + * @return array $sorted_users |
|
261 | + */ |
|
262 | + public function users_sort( $users ){ |
|
263 | 263 | |
264 | - $sorted_users = $users; |
|
264 | + $sorted_users = $users; |
|
265 | 265 | |
266 | - uasort( $sorted_users, array( $this, 'custom_user_sort' ) ); |
|
266 | + uasort( $sorted_users, array( $this, 'custom_user_sort' ) ); |
|
267 | 267 | |
268 | - return $sorted_users; |
|
269 | - } |
|
268 | + return $sorted_users; |
|
269 | + } |
|
270 | 270 | |
271 | - /** |
|
272 | - * Used in the uasort function to sort users by title |
|
273 | - * |
|
274 | - * @since 1.9.0 |
|
275 | - * |
|
276 | - * @param $user_1 |
|
277 | - * @param $user_2 |
|
278 | - * @return int |
|
279 | - */ |
|
280 | - public function custom_user_sort($user_1, $user_2){ |
|
271 | + /** |
|
272 | + * Used in the uasort function to sort users by title |
|
273 | + * |
|
274 | + * @since 1.9.0 |
|
275 | + * |
|
276 | + * @param $user_1 |
|
277 | + * @param $user_2 |
|
278 | + * @return int |
|
279 | + */ |
|
280 | + public function custom_user_sort($user_1, $user_2){ |
|
281 | 281 | |
282 | - return strcasecmp( $this->get_user_public_name( $user_1 ), $this->get_user_public_name( $user_2 ) ); |
|
282 | + return strcasecmp( $this->get_user_public_name( $user_1 ), $this->get_user_public_name( $user_2 ) ); |
|
283 | 283 | |
284 | - }// end custom_user_sort |
|
284 | + }// end custom_user_sort |
|
285 | 285 | |
286 | 286 | }// end class |
287 | 287 | \ No newline at end of file |
@@ -24,135 +24,135 @@ |
||
24 | 24 | */ |
25 | 25 | class Sensei_Shortcode_Course_Categories implements Sensei_Shortcode_Interface { |
26 | 26 | |
27 | - /** |
|
28 | - * @var array list of taxonomy terms. |
|
29 | - */ |
|
30 | - protected $sensei_course_taxonomy_terms; |
|
27 | + /** |
|
28 | + * @var array list of taxonomy terms. |
|
29 | + */ |
|
30 | + protected $sensei_course_taxonomy_terms; |
|
31 | 31 | |
32 | - /** |
|
33 | - * Setup the shortcode object |
|
34 | - * |
|
35 | - * @since 1.9.0 |
|
36 | - * @param array $attributes |
|
37 | - * @param string $content |
|
38 | - * @param string $shortcode the shortcode that was called for this instance |
|
39 | - */ |
|
40 | - public function __construct( $attributes, $content, $shortcode ){ |
|
32 | + /** |
|
33 | + * Setup the shortcode object |
|
34 | + * |
|
35 | + * @since 1.9.0 |
|
36 | + * @param array $attributes |
|
37 | + * @param string $content |
|
38 | + * @param string $shortcode the shortcode that was called for this instance |
|
39 | + */ |
|
40 | + public function __construct( $attributes, $content, $shortcode ){ |
|
41 | 41 | |
42 | - $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'name'; |
|
43 | - $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'ASC'; |
|
44 | - $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '100'; |
|
45 | - $this->parent = isset( $attributes['parent'] ) ? $attributes['parent'] : ''; |
|
42 | + $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'name'; |
|
43 | + $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'ASC'; |
|
44 | + $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '100'; |
|
45 | + $this->parent = isset( $attributes['parent'] ) ? $attributes['parent'] : ''; |
|
46 | 46 | |
47 | - $include = isset( $attributes['include'] ) ? explode( ',' , $attributes['include'] ) : ''; |
|
48 | - $this->include = $this->generate_term_ids( $include ); |
|
47 | + $include = isset( $attributes['include'] ) ? explode( ',' , $attributes['include'] ) : ''; |
|
48 | + $this->include = $this->generate_term_ids( $include ); |
|
49 | 49 | |
50 | - $exclude = isset( $attributes['exclude'] ) ? explode( ',' , $attributes['exclude'] ) : ''; |
|
51 | - $this->exclude = $this->generate_term_ids( $exclude ); |
|
50 | + $exclude = isset( $attributes['exclude'] ) ? explode( ',' , $attributes['exclude'] ) : ''; |
|
51 | + $this->exclude = $this->generate_term_ids( $exclude ); |
|
52 | 52 | |
53 | - // make sure we handle string true/false values correctly with respective defaults |
|
54 | - $hide_empty = isset( $attributes['hide_empty'] ) ? $attributes['hide_empty'] : 'false'; |
|
55 | - $this->hide_empty = 'true' == $hide_empty ? true: false; |
|
53 | + // make sure we handle string true/false values correctly with respective defaults |
|
54 | + $hide_empty = isset( $attributes['hide_empty'] ) ? $attributes['hide_empty'] : 'false'; |
|
55 | + $this->hide_empty = 'true' == $hide_empty ? true: false; |
|
56 | 56 | |
57 | - $this->setup_course_categories(); |
|
57 | + $this->setup_course_categories(); |
|
58 | 58 | |
59 | - } |
|
59 | + } |
|
60 | 60 | |
61 | - /** |
|
62 | - * create the messages query . |
|
63 | - * |
|
64 | - * @return mixed |
|
65 | - */ |
|
66 | - public function setup_course_categories(){ |
|
61 | + /** |
|
62 | + * create the messages query . |
|
63 | + * |
|
64 | + * @return mixed |
|
65 | + */ |
|
66 | + public function setup_course_categories(){ |
|
67 | 67 | |
68 | - $args = array( |
|
69 | - 'orderby' => $this->orderby, |
|
70 | - 'order' => $this->order, |
|
71 | - 'exclude' => $this->exclude, |
|
72 | - 'include' => $this->include, |
|
73 | - 'number' => $this->number, |
|
74 | - 'parent' => $this->parent, |
|
75 | - 'hide_empty' => $this->hide_empty, |
|
76 | - 'fields' => 'all', |
|
77 | - ); |
|
68 | + $args = array( |
|
69 | + 'orderby' => $this->orderby, |
|
70 | + 'order' => $this->order, |
|
71 | + 'exclude' => $this->exclude, |
|
72 | + 'include' => $this->include, |
|
73 | + 'number' => $this->number, |
|
74 | + 'parent' => $this->parent, |
|
75 | + 'hide_empty' => $this->hide_empty, |
|
76 | + 'fields' => 'all', |
|
77 | + ); |
|
78 | 78 | |
79 | - $this->sensei_course_taxonomy_terms = get_terms('course-category', $args); |
|
79 | + $this->sensei_course_taxonomy_terms = get_terms('course-category', $args); |
|
80 | 80 | |
81 | - } |
|
81 | + } |
|
82 | 82 | |
83 | - /** |
|
84 | - * Rendering the shortcode this class is responsible for. |
|
85 | - * |
|
86 | - * @return string $content |
|
87 | - */ |
|
88 | - public function render(){ |
|
83 | + /** |
|
84 | + * Rendering the shortcode this class is responsible for. |
|
85 | + * |
|
86 | + * @return string $content |
|
87 | + */ |
|
88 | + public function render(){ |
|
89 | 89 | |
90 | - if( empty( $this->sensei_course_taxonomy_terms ) ){ |
|
90 | + if( empty( $this->sensei_course_taxonomy_terms ) ){ |
|
91 | 91 | |
92 | - return __( 'No course categories found.', 'woothemes-sensei' ); |
|
92 | + return __( 'No course categories found.', 'woothemes-sensei' ); |
|
93 | 93 | |
94 | - } |
|
94 | + } |
|
95 | 95 | |
96 | - $terms_html = ''; |
|
96 | + $terms_html = ''; |
|
97 | 97 | |
98 | - //set the wp_query to the current messages query |
|
99 | - $terms_html .= '<ul class="sensei course-categories">'; |
|
100 | - foreach( $this->sensei_course_taxonomy_terms as $category ){ |
|
98 | + //set the wp_query to the current messages query |
|
99 | + $terms_html .= '<ul class="sensei course-categories">'; |
|
100 | + foreach( $this->sensei_course_taxonomy_terms as $category ){ |
|
101 | 101 | |
102 | - $category_link = '<a href="'. get_term_link( $category ) . '">' . $category->name . '</a>'; |
|
103 | - $terms_html .= '<li class="sensei course-category" >' . $category_link . '</li>'; |
|
102 | + $category_link = '<a href="'. get_term_link( $category ) . '">' . $category->name . '</a>'; |
|
103 | + $terms_html .= '<li class="sensei course-category" >' . $category_link . '</li>'; |
|
104 | 104 | |
105 | - } |
|
106 | - $terms_html .= '<ul>'; |
|
105 | + } |
|
106 | + $terms_html .= '<ul>'; |
|
107 | 107 | |
108 | - return $terms_html; |
|
108 | + return $terms_html; |
|
109 | 109 | |
110 | - }// end render |
|
110 | + }// end render |
|
111 | 111 | |
112 | - /** |
|
113 | - * Convert an array of mixed ids, slugs or names to only the id's of those terms |
|
114 | - * |
|
115 | - * @since 1.9.0 |
|
116 | - * |
|
117 | - * @param array $category_ids |
|
118 | - * @return array |
|
119 | - */ |
|
120 | - public function generate_term_ids( $categories = array() ){ |
|
112 | + /** |
|
113 | + * Convert an array of mixed ids, slugs or names to only the id's of those terms |
|
114 | + * |
|
115 | + * @since 1.9.0 |
|
116 | + * |
|
117 | + * @param array $category_ids |
|
118 | + * @return array |
|
119 | + */ |
|
120 | + public function generate_term_ids( $categories = array() ){ |
|
121 | 121 | |
122 | - $cat_ids = array(); |
|
122 | + $cat_ids = array(); |
|
123 | 123 | |
124 | - if ( is_array($categories) ) { |
|
125 | - foreach ($categories as $cat) { |
|
124 | + if ( is_array($categories) ) { |
|
125 | + foreach ($categories as $cat) { |
|
126 | 126 | |
127 | - if (!is_numeric($cat)) { |
|
127 | + if (!is_numeric($cat)) { |
|
128 | 128 | |
129 | - // try the slug |
|
130 | - $term = get_term_by('slug', $cat, 'course-category'); |
|
129 | + // try the slug |
|
130 | + $term = get_term_by('slug', $cat, 'course-category'); |
|
131 | 131 | |
132 | - // if the slug didn't work try the name |
|
133 | - if (!$term) { |
|
132 | + // if the slug didn't work try the name |
|
133 | + if (!$term) { |
|
134 | 134 | |
135 | - $term = get_term_by('name', $cat, 'course-category'); |
|
135 | + $term = get_term_by('name', $cat, 'course-category'); |
|
136 | 136 | |
137 | - } |
|
137 | + } |
|
138 | 138 | |
139 | - if ($term) { |
|
140 | - $cat_ids[] = $term->term_id; |
|
141 | - } |
|
139 | + if ($term) { |
|
140 | + $cat_ids[] = $term->term_id; |
|
141 | + } |
|
142 | 142 | |
143 | - } else { |
|
143 | + } else { |
|
144 | 144 | |
145 | - $cat_ids[] = $cat; |
|
145 | + $cat_ids[] = $cat; |
|
146 | 146 | |
147 | - } |
|
147 | + } |
|
148 | 148 | |
149 | - } |
|
149 | + } |
|
150 | 150 | |
151 | - } |
|
151 | + } |
|
152 | 152 | |
153 | - return $cat_ids; |
|
153 | + return $cat_ids; |
|
154 | 154 | |
155 | - }// end generate_term_ids |
|
155 | + }// end generate_term_ids |
|
156 | 156 | |
157 | 157 | }// end class |
158 | 158 |