hmm, this works for me
function bp_em_record_activity_event_save( $result, $EM_Event ){
if( $result && $EM_Event->event_status == 1 && $EM_Event->get_previous_status() != 1 ){
$user = get_userdata($EM_Event->event_owner);
$member_link = bp_core_get_user_domain($user->ID);
if( empty($EM_Event->group_id) ){
bp_em_record_activity( array(
'user_id' => $user->ID,
'action' => sprintf(__('%s %s added the event %s','dbem'), $EM_Event->output('#_EVENTIMAGE{72,72}'), "<a href='".$member_link."'>".$user->display_name."</a>", $EM_Event->output('#_EVENTLINK') ),
'primary_link' => $EM_Event->output('#_EVENTURL'),
'type' => 'new_event',
'item_id' => $EM_Event->event_id,
'hide_sitewide' => $EM_Event->event_private
));
}else{
//tis a group event
$group = new BP_Groups_Group($EM_Event->group_id);
bp_em_record_activity( array(
'user_id' => $user->ID,
'action' => sprintf(__('%s %s added the event %s to %s.','dbem'), "<a href='".$member_link."'>".$user->display_name."</a>", $EM_Event->output('#_EVENIMAGE{72,72}'), $EM_Event->output('#_EVENTLINK'), '<a href="'.bp_get_group_permalink($group).'">'.bp_get_group_name($group).'</a>' ),
'component' => 'groups',
'type' => 'new_event',
'item_id' => $EM_Event->group_id,
'hide_sitewide' => $EM_Event->event_private
));
}
}
return $result;
}
add_filter('em_event_save','bp_em_record_activity_event_save', 10, 2);
take note that this will take effect to the new events you created after using this code and will not work on existing events