BuddyDev

Search

Replies

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #1816

    Dear Brajesh,

    Sorry, I am not a developer so some terms i have to look up.
    Initializing a variable means giving it a value, right? Like $collection_term = ‘foo’;

    I am looking to get taxonomyterm values by user, and for each value create a subnav tab.
    In any case the first step to achieve that is to be able to use a variable from outside the function.

    I have placed below code in bp-custom.php, but without any result. I have also tried to use $GLOBALS[‘collection_term’], but also no result there.

     
    $collection_term = 'test';
    
    function my_custom_subnav() {
    	global $bp;
            global $collection_term;
    	
    	$collection_term_slug = strtolower($collection_term);//lowercase
            $collection_term_slug = preg_replace('/\s+/', '-', $collection_term); // replace spaces with hyphens.
    	$collection_term_slug = preg_replace('/[^A-Za-z0-9\-]/', '', $collection_term); // Removes special chars.
    	$screen_function_name = 'subnav_function_to_show_' . $collection_term_slug;
    	
    	bp_core_new_subnav_item( array( 
    		'name' => $collection_term,  
    		'slug' => $collection_term_slug,  
    		'screen_function' => 'screen_function_name', 
                    'parent_url'		=> trailingslashit(  bp_displayed_user_domain()  . 'collections' ),
    		'parent_slug'		=> 'collections',
    		'position'			=> 100,
    	
    	) );
    			 }
    

    I have hired some developers look at the code, and try to implement what i am looking to achieve, but they have been unsuccesful in their task. By the way, i read somewhere that global variables will be depreciated in php6.

    Your help is highly appreciated! Would it be possible to hire you to implement the code?

    • This reply was modified 6 years ago by eGuard.
  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #1394

    I tried to edit the post to fix the typo at the end which should be ` instead of 1.
    When i click edit, i get notification “You cannot create new topics.”

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #1331

    I have used another way to include a custom template, topic can be marked as resolved.

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #776

    Hi Brajesh,

    I can’t seem it to get to work.

    I managed to get the id’s ofthe members i want to display, and I managed to pass the id’s to the query.

    I tried elow to show the avatar (for testing to make sure id’s are passed correctly) it works fine

    
    if ( bp_has_members( ‘include=’ . $ids_implode) ) : ?>
      <?php while ( bp_members() ) : bp_the_member(); ?>
        <?php bp_member_avatar(‘type=full&width=125&height=125′) ?>
      <?php endwhile; ?>
    <?php endif; ?><?
    

    However when i want to call the template it doesn’t seem to work

    
    
    if ( bp_has_members( ‘include=’ . $ids_implode) ) : ?>
    
      <?php while ( bp_members() ) : bp_the_member(); ?>
        <?php bp_get_template_part( ‘members/members-loop’ ); ?>
      <?php endwhile; ?>
    <?php endif; ?><?
    
    

    What am i missing here?

    • This reply was modified 6 years, 2 months ago by eGuard.
  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #674

    Thanks for your reply.

    What is seems to do is get the terms and a link, right?

    That is not what i was actually asking your help for. what i was looking to achieve is to create a subnav tab for each term in the buddypress member profile view.

    so by looping functions my_custom_subnav(), function subnav_function_to_show_screen_title() and
    function subnav_function_to_show_screen_content() for each term the user has used within the custom taxonomy.

    nav tab: collection (default fixed profile tab)
    sub nav tab: term1, term3, term 4, term7 (depending on the terms the user has used in the submitted posts)

    I hope that clarifies what i am looking to achieve.

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #671

    Hi Brajesh,

    1) Yes, a term can be used by more than 1 user
    2) Also correct, ONLY the terms used by the displayed user

    The code above (GET COLLECTIONS TAXONOMY TERMS) gets only the terms used by the displayed user.

    
        return array_unique($author_terms);
    

    And i am looking to loop this array and create a subnav tab for each term in this array.

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #611

    Sorry,

    one last question in regards to this subject.

    Based on your example, i have created a function where i can specify the member type

     
    function get_user_id_by_member_types( $ids = array(), $type ){
    
    	
    	$ids = wp_parse_id_list( $ids );
    	
    	if( ! $ids ) {
    		return ;
    	}
    	
    	$args = array(
    		'user_ids'			=> $ids,
    		'populate_extras'	=> true, //it will fetch names etc and cache member types
    	);
    	
    	$user_query = new BP_User_Query( $args );
    	
    	$users = $user_query->results;
    	$user_by_types = array();//multidimensional array
    	//an Arr of WP_User objects with some added details like last_activity, latest_update etc
    	foreach ( $users as $user ) {
    		
    		$member_type = bp_get_member_type( $user->ID );
    		if( ! $member_type ) {
    			continue;
    		}
    		
    		$user_by_types[$member_type][] = $user->ID;
    		
    	}
    	
    	// print_r( $user_by_types );
    
    	$type_result = $user_by_types[$type];
    	//print_r ($type_result); 
    $csv = implode( ',' , $type_result );
    
    echo $csv;
    }
    

    It echo’s a comma seperated list of ID’s for the type.

    Your member type generator plugin can also have a member directory for each member type.
    What i would like to do is to have a member directory (just like yours) in a navigation tab in the displayed user profile.

    So i have created a nav tab called “students”, and as content of the nav tab i would like to have the directory of all users in the array $csv of the type students as defined in $type.

    I know where to put the content code for this tab, but i don’t know how to query the memberloop for both the $type (in this case students) and the ID’s in $csv.

    Could you give me a pointer in the right direction?

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #609

    Hi Brajesh,

    Thanks for your guidance.

    Based on your code I managed to do what i looked to accomplish.
    Thanks for the great support!

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #572

    Hi Brajesh,

    I have tested the (counting) code and it seems to be working. However, it returns a total count of all members.

    What was after is to get the results for a specific array of user ID’s, and breakdown this array:

    E.g.

    $res2 = array(1,2,3,4,5,6,7,8,9,10,11)

    4 teachers, ID’s 1,2,3,4
    5 students, ID’s 5,6,7,8,9
    2 parents, ID’s 10,11

    so i need a way to tell your function to only check the ID’s as in $res2

  • Participant
    Level: Initiated
    Posts: 16
    eGuard on #571

    Hi Brajesh,

    Thanks, i will give it a try. It will surely be a help!

    As per my openings post, I am also after getting the user ID’s as i want to use them in a memberloop in a nav tab.

    Thanks so far for the great help! It is really appreciated!