1 | <?php |
---|
2 | |
---|
3 | if ( !defined( 'ABSPATH' ) ) exit; |
---|
4 | |
---|
5 | add_action( 'bp_setup_nav', 'vibe_bp_hide_tabs', 15 ); |
---|
6 | function vibe_bp_hide_tabs(){ |
---|
7 | |
---|
8 | $flag=1; |
---|
9 | $hide=vibe_get_option('activity_tab'); |
---|
10 | if(isset($hide)){ |
---|
11 | $flag=0; |
---|
12 | switch($hide){ |
---|
13 | case 1: |
---|
14 | if(is_user_logged_in()) $flag=1; |
---|
15 | break; |
---|
16 | case 2: |
---|
17 | if(current_user_can('edit_posts')) $flag=1; |
---|
18 | break; |
---|
19 | case 3: |
---|
20 | if(current_user_can('manage_options')) $flag=1; |
---|
21 | break; |
---|
22 | case 0: $flag=1; |
---|
23 | break; |
---|
24 | } |
---|
25 | } |
---|
26 | if(!$flag && bp_is_active( 'activity' ) && !bp_is_my_profile()){ |
---|
27 | bp_core_remove_nav_item('activity'); |
---|
28 | } |
---|
29 | |
---|
30 | $flag=1; |
---|
31 | $hide=vibe_get_option('groups_tab'); |
---|
32 | if(isset($hide)){ |
---|
33 | $flag=0; |
---|
34 | switch($hide){ |
---|
35 | case 1: |
---|
36 | if(is_user_logged_in()) $flag=1; |
---|
37 | break; |
---|
38 | case 2: |
---|
39 | if(current_user_can('edit_posts')) $flag=1; |
---|
40 | break; |
---|
41 | case 3: |
---|
42 | if(current_user_can('manage_options')) $flag=1; |
---|
43 | break; |
---|
44 | case 0: $flag=1; |
---|
45 | break; |
---|
46 | } |
---|
47 | } |
---|
48 | if(!$flag && bp_is_active( 'groups' ) && !bp_is_my_profile()){ |
---|
49 | bp_core_remove_nav_item('groups'); |
---|
50 | } |
---|
51 | |
---|
52 | $flag=1; |
---|
53 | $hide=vibe_get_option('forums_tab'); |
---|
54 | if(isset($hide)){ |
---|
55 | $flag=0; |
---|
56 | switch($hide){ |
---|
57 | case 1: |
---|
58 | if(is_user_logged_in()) $flag=1; |
---|
59 | break; |
---|
60 | case 2: |
---|
61 | if(current_user_can('edit_posts')) $flag=1; |
---|
62 | break; |
---|
63 | case 3: |
---|
64 | if(current_user_can('manage_options')) $flag=1; |
---|
65 | break; |
---|
66 | case 0: $flag=1; |
---|
67 | break; |
---|
68 | } |
---|
69 | } |
---|
70 | if(!$flag && !bp_is_my_profile()){ |
---|
71 | bp_core_remove_nav_item('forums'); |
---|
72 | } |
---|
73 | } |
---|
74 | |
---|
75 | add_action('bp_before_profile_content','wplms_show_instructor_courses',11); |
---|
76 | function wplms_show_instructor_courses(){ |
---|
77 | global $bp; |
---|
78 | $user_id=bp_displayed_user_id(); |
---|
79 | if(function_exists('bp_current_action') && bp_current_action() !== 'public') |
---|
80 | return; |
---|
81 | |
---|
82 | if(!user_can($user_id,'edit_posts')){ |
---|
83 | return; |
---|
84 | } |
---|
85 | |
---|
86 | $block_style = vibe_get_option('default_course_block_style'); |
---|
87 | $n = vibe_get_option('loop_number'); |
---|
88 | if($n<4){$n=4;} |
---|
89 | if ( function_exists('get_coauthors')) { |
---|
90 | $user = get_user_by('ID',$user_id); |
---|
91 | $args = array( |
---|
92 | 'post_type' => 'course', |
---|
93 | 'posts_per_page' => $n, |
---|
94 | 'post_status' => 'publish', |
---|
95 | 'author_name' => $user->user_nicename, |
---|
96 | ); |
---|
97 | }else{ |
---|
98 | $args = array( |
---|
99 | 'post_type'=>'course', |
---|
100 | 'post_status'=>'publish', |
---|
101 | 'posts_per_page' => $n, |
---|
102 | 'author'=> $user_id, |
---|
103 | ); |
---|
104 | } |
---|
105 | |
---|
106 | $args = apply_filters('wplms_show_instructor_courses',$args); |
---|
107 | |
---|
108 | $query = new WP_Query($args); |
---|
109 | if($query->have_posts()){ |
---|
110 | |
---|
111 | $instructing_courses=apply_filters('wplms_instructing_courses_endpoint','instructing-courses'); |
---|
112 | |
---|
113 | echo '<div class="instructor_courses"> |
---|
114 | <h3 class="heading"><span>'._x('Courses by Instructor','courses by instructor title in profile','vibe').'</span><a href="'.get_author_posts_url($user_id).$instructing_courses.'/" class="tip" title="'.sprintf(_x('Check all Courses created by %s','link help text in instructor profile','vibe'),bp_core_get_user_displayname($user_id)).'"><i class="icon-plus-1"></i></a></h3> |
---|
115 | </div>'; |
---|
116 | |
---|
117 | |
---|
118 | echo '<div class="vibe_carousel flexslider" data-controlnav="1" data-block-width="240" data-block-max="4" data-block-min="1"><ul class="slides">'; |
---|
119 | $block_style = vibe_get_option('default_course_block_style'); |
---|
120 | if(empty($block_style)){$block_style = 'course';} |
---|
121 | while($query->have_posts()){ |
---|
122 | $query->the_post(); |
---|
123 | global $post; |
---|
124 | echo '<li>'; |
---|
125 | echo thumbnail_generator($post,$block_style,4,0); |
---|
126 | echo '</li>'; |
---|
127 | } |
---|
128 | wp_reset_postdata(); |
---|
129 | echo '</ul></div><br><hr>'; |
---|
130 | } |
---|
131 | |
---|
132 | } |
---|
133 | add_action('bp_before_profile_content','wplms_show_profile_snapshot'); |
---|
134 | |
---|
135 | function wplms_show_profile_snapshot(){ |
---|
136 | global $bp; |
---|
137 | |
---|
138 | $user_id=bp_displayed_user_id(); |
---|
139 | |
---|
140 | if(function_exists('bp_current_action') && bp_current_action() !== 'public') |
---|
141 | return; |
---|
142 | |
---|
143 | if(function_exists('bp_course_get_user_badges')){ |
---|
144 | $bids=bp_course_get_user_badges($user_id); |
---|
145 | }else{ |
---|
146 | $bids=vibe_sanitize(get_user_meta($user_id,'badges',false)); |
---|
147 | } |
---|
148 | |
---|
149 | if(isset($bids) && is_Array($bids) && count($bids)){ |
---|
150 | $badges_html = array(); |
---|
151 | |
---|
152 | foreach($bids as $bid){ |
---|
153 | $b=''; |
---|
154 | if(function_exists('bp_get_course_badge')){ |
---|
155 | $b=bp_get_course_badge($bid); |
---|
156 | if(!empty($b)){ |
---|
157 | if(is_numeric($b)){ |
---|
158 | if(function_exists('bp_course_get_badge')){ |
---|
159 | $badges_html[]= bp_course_get_badge($b,$bid); |
---|
160 | }else{ |
---|
161 | $badge=wp_get_attachment_info($b); |
---|
162 | $badge_url=wp_get_attachment_image_src($b,'full'); |
---|
163 | $badges_html[]='<a class="tip ajax-badge" data-course="'.get_the_title($bid).'" title="'.get_post_meta($bid,'vibe_course_badge_title',true).'"><img src="'.$badge_url[0].'" title="'.$badge['title'].'"/></a>'; |
---|
164 | } |
---|
165 | } |
---|
166 | } |
---|
167 | } |
---|
168 | } |
---|
169 | |
---|
170 | if(!empty($badges_html)){ |
---|
171 | echo '<div class="badges"><h6>'.__('Badges','vibe').'</h6>'; |
---|
172 | echo '<ul>'; |
---|
173 | foreach($badges_html as $b_html){ |
---|
174 | echo '<li>'; |
---|
175 | echo vibe_sanitizer($b_html); |
---|
176 | echo '</li>'; |
---|
177 | } |
---|
178 | echo '</ul>'; |
---|
179 | echo '</div>'; |
---|
180 | } |
---|
181 | } |
---|
182 | |
---|
183 | |
---|
184 | $certis=vibe_sanitize(get_user_meta($user_id,'certificates',false)); |
---|
185 | |
---|
186 | if(isset($certis) && is_Array($certis) && count($certis)){ |
---|
187 | echo '<div class="certifications"><h6>'.__('Certifications','vibe').'</h6><ul class="slides">'; |
---|
188 | if(isset($certis) && is_Array($certis)) |
---|
189 | foreach($certis as $certi){ |
---|
190 | if(function_exists('bp_get_course_certificate')){ |
---|
191 | |
---|
192 | if(!empty($certi) && get_post_type($certi) == 'course'){ |
---|
193 | |
---|
194 | $url = bp_get_course_certificate('user_id='.$user_id.'&course_id='.$certi); |
---|
195 | $class = ''; |
---|
196 | $class = apply_filters('bp_course_certificate_class','',array('course_id'=>$certi,'user_id'=>$user_id)); |
---|
197 | if(isset($_GET['regenerate_certificate']) || (strpos($url, 'jpeg') === false) ) { |
---|
198 | $class .=' regenerate_certificate'; |
---|
199 | } |
---|
200 | |
---|
201 | echo '<li><a href="'.$url.'" class="ajax-certificate '.$class.'" data-user="'.$user_id.'" data-course="'.$certi.'" data-security="'.wp_create_nonce($user_id).'"><i class="icon-certificate-file"></i><span>'.get_the_title($certi).'</span></a></li>'; |
---|
202 | } |
---|
203 | } |
---|
204 | } |
---|
205 | echo '</ul></div>'; |
---|
206 | } |
---|
207 | |
---|
208 | } |
---|
209 | |
---|
210 | add_action('bp_group_options_nav','vibe_course_group_link',1,1); |
---|
211 | |
---|
212 | function vibe_course_group_link(){ |
---|
213 | global $bp,$wpdb; |
---|
214 | $course_query= $wpdb->get_results( $wpdb->prepare("SELECT post_id from {$wpdb->postmeta} WHERE meta_key='vibe_group' AND meta_value='%d'",$bp->groups->current_group->id)); |
---|
215 | if(is_array($course_query) && isset($course_query[0]->post_id)) |
---|
216 | echo '<li id="course-li"><a id="admin" href="'.get_permalink($course_query[0]->post_id).'" title="'.get_the_title($course_query[0]->post_id).'">'.__('Course ','vibe').'</a></li>'; |
---|
217 | } |
---|
218 | |
---|
219 | function bp_dtheme_setup() { |
---|
220 | if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { |
---|
221 | // Group buttons |
---|
222 | if ( bp_is_active( 'groups' ) ) { |
---|
223 | $groups_check = vibe_get_option('enable_groups_join_button'); |
---|
224 | |
---|
225 | if(isset($groups_check) && $groups_check) |
---|
226 | add_action( 'bp_directory_groups_actions', 'bp_group_join_button' ); |
---|
227 | } |
---|
228 | |
---|
229 | } |
---|
230 | } |
---|
231 | |
---|
232 | add_action( 'after_setup_theme', 'bp_dtheme_setup' ); |
---|
233 | |
---|
234 | |
---|
235 | /* === Course Specific ===== */ |
---|
236 | |
---|
237 | class WPLMS_BP_Cover_Image{ |
---|
238 | |
---|
239 | function __construct(){ |
---|
240 | add_action( 'bp_after_setup_theme',array($this,'cover_image')); |
---|
241 | add_action('wp_enqueue_scripts',array($this,'display_cover_image')); |
---|
242 | } |
---|
243 | |
---|
244 | function cover_image() { |
---|
245 | if(function_exists('bp_set_theme_compat_feature')){ |
---|
246 | bp_set_theme_compat_feature( 'legacy', array( |
---|
247 | 'name' => 'cover_image', |
---|
248 | 'settings' => array( |
---|
249 | 'components' => array( 'xprofile','groups' ), |
---|
250 | 'width' => 1300, |
---|
251 | 'height' => 500, |
---|
252 | 'callback' => array($this,'record_cover_image'), // See line 845 |
---|
253 | 'theme_handle' => 'bp-default-main', |
---|
254 | ), |
---|
255 | ) ); |
---|
256 | } |
---|
257 | } |
---|
258 | function record_cover_image( $params = array() ) { |
---|
259 | if ( empty( $params ) ) { |
---|
260 | return; |
---|
261 | } |
---|
262 | |
---|
263 | // avatar height - padding - 1/2 avatar height |
---|
264 | $avatar_offset = $params['height'] - 5 - round( (int) bp_core_avatar_full_height() / 2 ); |
---|
265 | |
---|
266 | // header content offset + spacing |
---|
267 | $top_offset = bp_core_avatar_full_height() - 10; |
---|
268 | $left_offset = bp_core_avatar_full_width() + 20; |
---|
269 | |
---|
270 | $this->cover_image = $params['cover_image']; |
---|
271 | } |
---|
272 | |
---|
273 | function display_cover_image(){ |
---|
274 | global $bp; |
---|
275 | |
---|
276 | if(bp_is_user() || bp_is_group()){ |
---|
277 | if(!empty($this->cover_image)){ |
---|
278 | echo '<style> |
---|
279 | #item-header{background:url("'.$this->cover_image.'") !important;} |
---|
280 | #buddypress div#item-header.light div#item-header-content, |
---|
281 | #buddypress div#item-header.light #latest-update h6, |
---|
282 | #buddypress div#item-header.light div#item-header-content a, |
---|
283 | #buddypress div#item-header.light div#item-header-content h3 a |
---|
284 | { |
---|
285 | color:#FFF !important; |
---|
286 | } |
---|
287 | #buddypress div#item-header.dark div#item-header-content, |
---|
288 | #buddypress div#item-header.dark #latest-update h6, |
---|
289 | #buddypress div#item-header.dark div#item-header-content a, |
---|
290 | #buddypress div#item-header.dark div#item-header-content h3 a |
---|
291 | { |
---|
292 | color:#222 !important; |
---|
293 | } |
---|
294 | </style>'; |
---|
295 | } |
---|
296 | } |
---|
297 | } |
---|
298 | } |
---|
299 | |
---|
300 | new WPLMS_BP_Cover_Image; |
---|