miércoles, 29 de diciembre de 2010

Funcion de Mutual Friends para BuddyPress

Esta es una función para obtener los amigos en común. Esta es una función para developers de BP lo puedes agregar a un pluggin, o widget.



<?php
function get_mutual_firends($wp_logged_user_id, $wp_profile_user_id)
{
global $wpdb, $bp; //$wpdb para realizar las consultas,
//$bp para obtener el nombre de la tabla de friends

if($wp_logged_user_id==$wp_profile_user_id) return array(); //se salta cuando es tu propio profile
$qry = sprintf('SELECT DISTINCT u1.*
FROM '.$wpdb->users.' u1,
(SELECT f1.initiator_user_id,f1.friend_user_id
FROM '.$bp->friends->table_name.' f1
WHERE (f1.initiator_user_id = %1$d
OR f1.friend_user_id = %1$d)
AND f1.is_confirmed = 1) f1
WHERE (u1.id = f1.initiator_user_id
OR u1.id = f1.friend_user_id)
AND u1.id <> %1$d
AND EXISTS(SELECT 1
FROM '.$wpdb->users.' u2,
(SELECT f2.initiator_user_id,f2.friend_user_id
FROM '.$bp->friends->table_name.' f2
WHERE (f2.initiator_user_id = %2$d
OR f2.friend_user_id = %2$d)
AND f2.is_confirmed = 1) f2
WHERE (u2.id = f2.initiator_user_id
OR u2.id = f2.friend_user_id)
AND u2.id <> %2$d
AND u1.id = u2.id)
'
,$wp_profile_user_id,$wp_logged_user_id);

return $wpdb->get_results($qry);
}
?>