Skip to:
Content

BuddyPress.org

Changes between Initial Version and Version 1 of Ticket #8332, comment 4


Ignore:
Timestamp:
07/16/2020 03:46:36 PM (4 years ago)
Author:
imath
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #8332, comment 4

    initial v1  
    2323The theme creators added extra code to the {{{ bp-custom.php }}} file, though none of it seems related to the functions. I'll paste it in anyways:
    2424
    25 {{{#!php
    26 <?php
    27 
    28 if ( !defined( 'ABSPATH' ) ) exit;
    29 
    30 add_action( 'bp_setup_nav', 'vibe_bp_hide_tabs', 15 );
    31 function vibe_bp_hide_tabs(){
    32 
    33    $flag=1;
    34    $hide=vibe_get_option('activity_tab');
    35    if(isset($hide)){
    36       $flag=0;
    37       switch($hide){
    38          case 1:
    39             if(is_user_logged_in()) $flag=1;
    40          break;
    41          case 2:
    42             if(current_user_can('edit_posts')) $flag=1;
    43          break;
    44          case 3:
    45             if(current_user_can('manage_options')) $flag=1;
    46          break;
    47          case 0: $flag=1;
    48          break;
    49       }
    50    }
    51    if(!$flag && bp_is_active( 'activity' ) && !bp_is_my_profile()){
    52       bp_core_remove_nav_item('activity');   
    53    }
    54 
    55    $flag=1;
    56    $hide=vibe_get_option('groups_tab');
    57    if(isset($hide)){
    58       $flag=0;
    59       switch($hide){
    60          case 1:
    61             if(is_user_logged_in()) $flag=1;
    62          break;
    63          case 2:
    64             if(current_user_can('edit_posts')) $flag=1;
    65          break;
    66          case 3:
    67             if(current_user_can('manage_options')) $flag=1;
    68          break;
    69          case 0: $flag=1;
    70          break;
    71       }
    72    }
    73    if(!$flag && bp_is_active( 'groups' ) && !bp_is_my_profile()){
    74       bp_core_remove_nav_item('groups');   
    75    }
    76    
    77    $flag=1;
    78    $hide=vibe_get_option('forums_tab');
    79    if(isset($hide)){
    80       $flag=0;
    81       switch($hide){
    82          case 1:
    83             if(is_user_logged_in()) $flag=1;
    84          break;
    85          case 2:
    86             if(current_user_can('edit_posts')) $flag=1;
    87          break;
    88          case 3:
    89             if(current_user_can('manage_options')) $flag=1;
    90          break;
    91          case 0: $flag=1;
    92          break;
    93       }
    94    }
    95    if(!$flag && !bp_is_my_profile()){
    96       bp_core_remove_nav_item('forums');   
    97    }
    98 }
    99 
    100 add_action('bp_before_profile_content','wplms_show_instructor_courses',11);
    101 function wplms_show_instructor_courses(){
    102   global $bp;
    103   $user_id=bp_displayed_user_id();
    104   if(function_exists('bp_current_action') && bp_current_action() !== 'public')
    105     return;
    106 
    107   if(!user_can($user_id,'edit_posts')){
    108     return;
    109   }
    110 
    111   $block_style = vibe_get_option('default_course_block_style');
    112   $n = vibe_get_option('loop_number');
    113   if($n<4){$n=4;}
    114   if ( function_exists('get_coauthors')) {
    115     $user = get_user_by('ID',$user_id);
    116     $args = array(
    117       'post_type' => 'course',
    118       'posts_per_page' => $n,
    119       'post_status' => 'publish',
    120       'author_name' => $user->user_nicename,
    121     );
    122   }else{
    123     $args = array(
    124     'post_type'=>'course',
    125     'post_status'=>'publish',
    126     'posts_per_page' => $n,
    127     'author'=> $user_id,
    128     ); 
    129   }
    130  
    131   $args = apply_filters('wplms_show_instructor_courses',$args);
    132  
    133   $query = new WP_Query($args);
    134   if($query->have_posts()){
    135    
    136       $instructing_courses=apply_filters('wplms_instructing_courses_endpoint','instructing-courses');
    137      
    138       echo '<div class="instructor_courses">
    139       <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>
    140       </div>';
    141    
    142 
    143     echo '<div class="vibe_carousel flexslider" data-controlnav="1" data-block-width="240" data-block-max="4" data-block-min="1"><ul class="slides">';
    144     $block_style = vibe_get_option('default_course_block_style');
    145     if(empty($block_style)){$block_style = 'course';}
    146     while($query->have_posts()){
    147         $query->the_post();
    148         global $post;
    149         echo '<li>';
    150         echo thumbnail_generator($post,$block_style,4,0);
    151         echo '</li>';
    152     }
    153     wp_reset_postdata();
    154     echo '</ul></div><br><hr>';
    155   }
    156  
    157 }
    158 add_action('bp_before_profile_content','wplms_show_profile_snapshot');
    159 
    160 function wplms_show_profile_snapshot(){
    161    global $bp;
    162 
    163   $user_id=bp_displayed_user_id();
    164  
    165   if(function_exists('bp_current_action') && bp_current_action() !== 'public')
    166     return;
    167  
    168     if(function_exists('bp_course_get_user_badges')){
    169         $bids=bp_course_get_user_badges($user_id);
    170     }else{
    171         $bids=vibe_sanitize(get_user_meta($user_id,'badges',false)); 
    172     }
    173  
    174   if(isset($bids) && is_Array($bids) && count($bids)){
    175       $badges_html = array();
    176      
    177         foreach($bids as $bid){
    178             $b='';
    179             if(function_exists('bp_get_course_badge')){
    180                 $b=bp_get_course_badge($bid);
    181                 if(!empty($b)){
    182                     if(is_numeric($b)){
    183                         if(function_exists('bp_course_get_badge')){
    184                             $badges_html[]= bp_course_get_badge($b,$bid);
    185                         }else{
    186                             $badge=wp_get_attachment_info($b);
    187                             $badge_url=wp_get_attachment_image_src($b,'full');
    188                             $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>';
    189                         }
    190                     }
    191                 }
    192             }
    193         }
    194        
    195         if(!empty($badges_html)){
    196             echo '<div class="badges"><h6>'.__('Badges','vibe').'</h6>';
    197             echo '<ul>';
    198             foreach($badges_html as $b_html){
    199                 echo '<li>';
    200                 echo vibe_sanitizer($b_html);
    201                 echo '</li>';
    202             }
    203             echo '</ul>';
    204             echo '</div>';
    205         }
    206    }   
    207 
    208  
    209    $certis=vibe_sanitize(get_user_meta($user_id,'certificates',false));
    210 
    211      if(isset($certis) && is_Array($certis) && count($certis)){
    212           echo '<div class="certifications"><h6>'.__('Certifications','vibe').'</h6><ul class="slides">';
    213           if(isset($certis) && is_Array($certis))
    214            foreach($certis as $certi){
    215               if(function_exists('bp_get_course_certificate')){
    216 
    217                 if(!empty($certi) && get_post_type($certi) == 'course'){
    218 
    219                   $url = bp_get_course_certificate('user_id='.$user_id.'&course_id='.$certi);
    220                   $class = '';
    221                   $class = apply_filters('bp_course_certificate_class','',array('course_id'=>$certi,'user_id'=>$user_id));
    222                   if(isset($_GET['regenerate_certificate']) || (strpos($url, 'jpeg') === false) ) {
    223                     $class .=' regenerate_certificate';
    224                   }
    225    
    226                   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>';
    227                 }
    228               }
    229            }
    230          echo '</ul></div>'; 
    231       }
    232    
    233 }
    234 
    235 add_action('bp_group_options_nav','vibe_course_group_link',1,1);
    236 
    237 function vibe_course_group_link(){
    238    global $bp,$wpdb;
    239    $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));
    240    if(is_array($course_query) && isset($course_query[0]->post_id))
    241       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>';
    242 }
    243 
    244 function bp_dtheme_setup() {
    245    if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
    246       // Group buttons
    247       if ( bp_is_active( 'groups' ) ) {
    248          $groups_check = vibe_get_option('enable_groups_join_button');
    249 
    250          if(isset($groups_check) && $groups_check)
    251           add_action( 'bp_directory_groups_actions', 'bp_group_join_button' );
    252       }
    253 
    254    }
    255 }
    256 
    257 add_action( 'after_setup_theme', 'bp_dtheme_setup' );
    258 
    259 
    260 /* === Course Specific ===== */
    261 
    262 class WPLMS_BP_Cover_Image{
    263 
    264    function __construct(){
    265       add_action( 'bp_after_setup_theme',array($this,'cover_image'));
    266       add_action('wp_enqueue_scripts',array($this,'display_cover_image'));
    267    }
    268 
    269    function cover_image() {
    270       if(function_exists('bp_set_theme_compat_feature')){
    271        bp_set_theme_compat_feature( 'legacy', array(
    272           'name'     => 'cover_image',
    273           'settings' => array(
    274              'components'   => array( 'xprofile','groups' ),
    275              'width'        => 1300,
    276              'height'       => 500,
    277              'callback'     => array($this,'record_cover_image'), // See line 845
    278              'theme_handle' => 'bp-default-main',
    279           ),
    280        ) );
    281      }
    282    }
    283    function record_cover_image( $params = array() ) {
    284      if ( empty( $params ) ) {
    285         return;
    286      }
    287 
    288      // avatar height - padding - 1/2 avatar height
    289      $avatar_offset = $params['height'] - 5 - round( (int) bp_core_avatar_full_height() / 2 );
    290 
    291      // header content offset + spacing
    292      $top_offset  = bp_core_avatar_full_height() - 10;
    293      $left_offset = bp_core_avatar_full_width() + 20;
    294 
    295      $this->cover_image = $params['cover_image'];
    296    }
    297 
    298    function display_cover_image(){
    299       global $bp;
    300 
    301       if(bp_is_user() || bp_is_group()){
    302          if(!empty($this->cover_image)){
    303             echo '<style>
    304               #item-header{background:url("'.$this->cover_image.'") !important;}
    305               #buddypress div#item-header.light div#item-header-content,
    306               #buddypress div#item-header.light #latest-update h6,
    307               #buddypress div#item-header.light div#item-header-content a,
    308               #buddypress div#item-header.light div#item-header-content h3 a
    309               {
    310                  color:#FFF !important;
    311               }
    312               #buddypress div#item-header.dark div#item-header-content,
    313               #buddypress div#item-header.dark #latest-update h6,
    314               #buddypress div#item-header.dark div#item-header-content a,
    315               #buddypress div#item-header.dark div#item-header-content h3 a
    316               {
    317                  color:#222 !important;
    318               }
    319             </style>';
    320          }
    321       }
    322    }
    323 }
    324 
    325 new WPLMS_BP_Cover_Image;
    326 }}}
     25see attached bp-custom.php
    32726
    32827For now that is all the info I have. Once the client get's back to me with the info on those other plugins, I will post that as well.