Duplicate associate item
- 
		
 1. ON CREATING A DOCUMENT FROM THE BACKOFFICEConcerning table on creating a document 
 wp_posts
 (id = 1511)
 wp_postmeta
 (post_id = 1511)wp_term_relationships 
 (object_id = post_id = 1511)wp_term_taxonomy 
 (term_taxonomy_id =wp_terms On opening the document from the FrontPage the category name is missing 2. ON CREATING A DOCUMENT FROM THE FRONT OFFICE Concerning table on creating a document 
 wp_posts
 (id = 1514)
 wp_postmeta
 (post_id = 1514)
 wp_term_relationships
 (object_id = post_id = 1514) 2 rows of the same post_idwp_term_taxonomy 
 2 term taxonomy id
 Id = 32 and id = 204wp_terms = 26 On opening the document from the FrontPage the category name is present But on opening the document from the back office the category name is duplicated. CODE MODIFICATION 
 File modified:wp-content/plugins/buddypress-docs/includes/functions.php
 Line number: 126
 function bp_docs_get_item_term_id($item_id, $item_type, $item_name = ” ) {
 global $bp;$groups_dir = ABSPATH.’wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-group.php’; //ss add this to get the class Bp_Groups_Group 
 require_once($groups_dir);//if ( empty( $item_id ) ) { 
 //return ;
 //}// Sanitization 
 // @todo Maybe this should be more generous
 $slug_group = BP_Groups_Group ::get_slug($item_id); // ss add this to test the group from tbl wp_term$item_type = ‘group’ == $item_type ? ‘group’ : ‘user’; //$item_term_slug = ‘bp_docs_associated_’ . $item_type . ‘_’ . $item_id; 
 $item_term_slug = ‘group’ == $item_type ? $slug_group : ‘bp_docs_associated_’ . $item_type . ‘_’ . $item_id;$item_term = get_term_by( ‘slug’, $item_term_slug, bp_docs_get_associated_item_tax_name() ); 
 //var_dump($item_term);
 //die(‘xxx’);
 // If the item term doesn’t exist, then create it
 if ( empty( $item_term ) ) {
 // Set up the arguments for creating the term. Filter this to set your own
 switch ( $item_type ) {
 case ‘group’ :
 $item = groups_get_group( ‘group_id=’ . $item_id );
 $item_name = $item->name;
 break;case ‘user’ : 
 default :
 $item_name = bp_core_get_user_displayname( $item_id );
 break;
 }$item_term_args = apply_filters( ‘bp_docs_item_term_values’, array( 
 ‘description’ => sprintf( _x( ‘Docs associated with the %1$s %2$s’, ‘Description for the associated-item taxonomy term. Of the form “Docs associated with the [item-type] [item-name]” – item-type is group, user, etc’, ‘bp-docs’ ), $item_type, $item_name ),
 ‘slug’ => $item_term_slug,
 ) );// Create the item term 
 $item_term = wp_insert_term( $item_name, bp_docs_get_associated_item_tax_name(), $item_term_args );
 $term_id = isset( $item_term[‘term_id’] ) ? $item_term[‘term_id’] : false;
 } else {$term_id = $item_term->term_id; 
 }
 //echo $item_id;
 //die(‘xxx’);
 return apply_filters( ‘bp_docs_get_item_term_id’, $term_id, $item_id, $item_type, $item_name );
 }
 Description
 The function is called when you create a document from the front office.
 I have modified the function where it going to check the corresponding slug is present in the table wp_terms.
 First I get all the category slug from BP_group , then I use them to verify if they are present in the table wp_term, if present therefore no need to add a second (prevent duplication).Result: No duplication but the category is null from the front office. 
- You must be logged in to reply to this topic.