2013-02-19 11:01:58 +00:00
< ? php
require_once ( 'include/contact_selectors.php' );
require_once ( 'include/Contact.php' );
function viewconnections_init ( & $a ) {
if (( get_config ( 'system' , 'block_public' )) && ( ! local_user ()) && ( ! remote_user ())) {
return ;
}
if ( argc () > 1 )
profile_load ( $a , argv ( 1 ));
}
function viewconnections_content ( & $a ) {
if (( get_config ( 'system' , 'block_public' )) && ( ! local_user ()) && ( ! remote_user ())) {
notice ( t ( 'Public access denied.' ) . EOL );
return ;
}
if ((( ! count ( $a -> profile )) || ( $a -> profile [ 'hide_friends' ]))) {
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
if ( ! perm_is_allowed ( $a -> profile [ 'uid' ], get_observer_hash (), 'view_contacts' )) {
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
2014-05-09 00:08:34 +00:00
$is_owner = (( local_user () && local_user () == $a -> profile [ 'uid' ]) ? true : false );
$abook_flags = ABOOK_FLAG_PENDING | ABOOK_FLAG_SELF ;
$xchan_flags = XCHAN_FLAGS_ORPHAN | XCHAN_FLAGS_DELETED ;
if ( ! $is_owner ) {
2014-07-17 05:32:18 +00:00
$abook_flags = $abook_flags | ABOOK_FLAG_HIDDEN ;
2014-05-09 00:08:34 +00:00
$xchan_flags = $xchan_flags | XCHAN_FLAGS_HIDDEN ;
}
2013-02-19 11:01:58 +00:00
2014-04-15 00:29:19 +00:00
$r = q ( " SELECT count(*) as total FROM abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d ) and not ( xchan_flags & %d ) " ,
2014-04-07 01:57:04 +00:00
intval ( $a -> profile [ 'uid' ]),
2014-05-09 00:08:34 +00:00
intval ( $abook_flags ),
intval ( $xchan_flags )
2014-04-07 01:57:04 +00:00
);
if ( $r ) {
$a -> set_pager_total ( $r [ 0 ][ 'total' ]);
}
2013-02-19 11:01:58 +00:00
2014-04-15 00:29:19 +00:00
$r = q ( " SELECT * FROM abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not ( abook_flags & %d ) and not ( xchan_flags & %d ) order by xchan_name LIMIT %d , %d " ,
2013-02-19 11:01:58 +00:00
intval ( $a -> profile [ 'uid' ]),
2014-05-09 00:08:34 +00:00
intval ( $abook_flags ),
intval ( $xchan_flags ),
2013-02-19 11:01:58 +00:00
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
if ( ! $r ) {
info ( t ( 'No connections.' ) . EOL );
return $o ;
}
$contacts = array ();
foreach ( $r as $rr ) {
2014-04-07 01:40:37 +00:00
$url = chanlink_url ( $rr [ 'xchan_url' ]);
2013-08-04 12:12:11 +00:00
if ( $url ) {
$contacts [] = array (
'id' => $rr [ 'abook_id' ],
2014-07-17 05:32:18 +00:00
'archived' => (( $rr [ 'abook_flags' ] & ABOOK_FLAG_ARCHIVED ) ? true : false ),
2013-08-04 12:12:11 +00:00
'img_hover' => sprintf ( t ( 'Visit %s\'s profile [%s]' ), $rr [ 'xchan_name' ], $rr [ 'xchan_url' ]),
'thumb' => $rr [ 'xchan_photo_m' ],
'name' => substr ( $rr [ 'xchan_name' ], 0 , 20 ),
'username' => $rr [ 'xchan_addr' ],
'link' => $url ,
'sparkle' => '' ,
'itemurl' => $rr [ 'url' ],
'network' => '' ,
);
}
2013-02-19 11:01:58 +00:00
}
$tpl = get_markup_template ( " viewcontact_template.tpl " );
$o .= replace_macros ( $tpl , array (
'$title' => t ( 'View Connnections' ),
'$contacts' => $contacts ,
'$paginate' => paginate ( $a ),
));
return $o ;
}