| 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;
|
|---|