2012-08-17 04:41:07 +00:00
< ? php
require_once ( 'include/Contact.php' );
require_once ( 'include/socgraph.php' );
require_once ( 'include/contact_selectors.php' );
2012-10-31 04:37:58 +00:00
require_once ( 'include/group.php' );
require_once ( 'include/contact_widgets.php' );
2013-01-04 00:18:52 +00:00
require_once ( 'include/zot.php' );
2012-08-17 04:41:07 +00:00
2012-11-03 09:00:48 +00:00
function connections_init ( & $a ) {
2012-10-31 04:37:58 +00:00
2012-08-17 04:41:07 +00:00
if ( ! local_user ())
return ;
2012-10-31 04:37:58 +00:00
if (( argc () == 2 ) && intval ( argv ( 1 ))) {
$r = q ( " SELECT abook.*, xchan.*
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = % d and abook_id = % d LIMIT 1 " ,
2012-08-17 04:41:07 +00:00
intval ( local_user ()),
2012-10-31 04:37:58 +00:00
intval ( argv ( 1 ))
2012-08-17 04:41:07 +00:00
);
2012-10-31 04:37:58 +00:00
if ( $r ) {
$a -> data [ 'abook' ] = $r [ 0 ];
2012-08-17 04:41:07 +00:00
}
2012-10-31 04:37:58 +00:00
}
2012-11-10 10:54:29 +00:00
}
2012-08-17 04:41:07 +00:00
2012-11-10 10:54:29 +00:00
function connections_aside ( & $a ) {
2012-08-17 04:41:07 +00:00
2012-12-08 22:18:02 +00:00
if ( x ( $a -> data , 'abook' )) {
2012-11-10 10:54:29 +00:00
$a -> set_widget ( 'vcard' , vcard_from_xchan ( $a -> data [ 'abook' ]));
2012-12-08 22:18:02 +00:00
}
else {
2012-11-10 10:54:29 +00:00
$a -> set_widget ( 'follow' , follow_widget ());
2012-12-08 22:18:02 +00:00
}
2012-08-17 04:41:07 +00:00
2013-01-23 04:13:20 +00:00
$a -> set_widget ( 'collections' , group_side ( 'connnections' , 'group' , false , 0 ,(( array_key_exists ( 'abook' , $a -> data )) ? $a -> data [ 'abook' ][ 'abook_xchan' ] : '' )));
2012-11-15 05:27:05 +00:00
$a -> set_widget ( 'findpeople' , findpeople_widget ());
2012-08-17 04:41:07 +00:00
2012-11-10 10:54:29 +00:00
}
2012-08-17 04:41:07 +00:00
2012-11-03 09:00:48 +00:00
function connections_post ( & $a ) {
2012-08-17 04:41:07 +00:00
if ( ! local_user ())
return ;
2012-11-09 01:33:38 +00:00
$contact_id = intval ( argv ( 1 ));
2012-08-17 04:41:07 +00:00
if ( ! $contact_id )
return ;
2012-11-09 01:33:38 +00:00
$orig_record = q ( " SELECT * FROM abook WHERE abook_id = %d AND abook_channel = %d LIMIT 1 " ,
2012-08-17 04:41:07 +00:00
intval ( $contact_id ),
intval ( local_user ())
);
2012-11-09 01:33:38 +00:00
if ( ! $orig_record ) {
2012-08-17 04:41:07 +00:00
notice ( t ( 'Could not access contact record.' ) . EOL );
2012-11-09 01:33:38 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connnections' );
2012-08-17 04:41:07 +00:00
return ; // NOTREACHED
}
call_hooks ( 'contact_edit_post' , $_POST );
$profile_id = intval ( $_POST [ 'profile-assign' ]);
if ( $profile_id ) {
$r = q ( " SELECT `id` FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
intval ( $profile_id ),
intval ( local_user ())
);
if ( ! count ( $r )) {
notice ( t ( 'Could not locate selected profile.' ) . EOL );
return ;
}
}
$hidden = intval ( $_POST [ 'hidden' ]);
$priority = intval ( $_POST [ 'poll' ]);
if ( $priority > 5 || $priority < 0 )
$priority = 0 ;
$closeness = intval ( $_POST [ 'closeness' ]);
if ( $closeness < 0 )
$closeness = 99 ;
2012-11-09 01:33:38 +00:00
$abook_my_perms = 0 ;
2012-08-17 04:41:07 +00:00
2012-11-09 01:33:38 +00:00
foreach ( $_POST as $k => $v ) {
if ( strpos ( $k , 'perms_' ) === 0 ) {
$abook_my_perms += $v ;
}
}
$r = q ( " UPDATE abook SET abook_profile = %d, abook_my_perms = %d , abook_closeness = %d
where abook_id = % d AND abook_channel = % d LIMIT 1 " ,
2012-08-17 04:41:07 +00:00
intval ( $profile_id ),
2012-11-09 01:33:38 +00:00
intval ( $abook_my_perms ),
2012-08-17 04:41:07 +00:00
intval ( $closeness ),
intval ( $contact_id ),
intval ( local_user ())
);
if ( $r )
2012-11-09 01:33:38 +00:00
info ( t ( 'Connection updated.' ) . EOL );
2012-08-17 04:41:07 +00:00
else
2012-11-09 01:33:38 +00:00
notice ( t ( 'Failed to update connnection record.' ) . EOL );
2012-08-17 04:41:07 +00:00
2012-11-09 01:33:38 +00:00
2012-11-10 11:01:07 +00:00
if (( x ( $a -> data , 'abook' )) && $a -> data [ 'abook' ][ 'abook_my_perms' ] != $abook_my_perms ) {
// FIXME - this message type is not yet handled in the notifier
proc_run ( 'php' , 'include/notifier.php' , 'permission_update' , $contact_id );
}
2012-11-09 01:33:38 +00:00
// Refresh the structure in memory with the new data
$r = q ( " SELECT abook.*, xchan.*
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = % d and abook_id = % d LIMIT 1 " ,
intval ( local_user ()),
intval ( $contact_id )
2012-08-17 04:41:07 +00:00
);
2012-11-09 01:33:38 +00:00
if ( $r )
$a -> data [ 'abook' ] = $r [ 0 ];
2012-08-17 04:41:07 +00:00
return ;
}
2012-11-03 09:00:48 +00:00
function connections_content ( & $a ) {
2012-08-17 04:41:07 +00:00
$sort_type = 0 ;
$o = '' ;
2012-11-03 09:00:48 +00:00
nav_set_selected ( 'connections' );
2012-08-17 04:41:07 +00:00
if ( ! local_user ()) {
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
if ( argc () == 3 ) {
$contact_id = intval ( argv ( 1 ));
if ( ! $contact_id )
return ;
$cmd = argv ( 2 );
2012-10-31 04:37:58 +00:00
$orig_record = q ( " SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash
2013-01-04 00:24:30 +00:00
WHERE abook_id = % d AND abook_channel = % d AND NOT ( abook_flags & % d ) and not ( abook_flags & % d ) LIMIT 1 " ,
2012-08-17 04:41:07 +00:00
intval ( $contact_id ),
2012-10-31 04:37:58 +00:00
intval ( local_user ()),
2012-11-30 07:06:03 +00:00
intval ( ABOOK_FLAG_SELF ),
intval ( ABOOK_FLAG_PENDING )
2012-08-17 04:41:07 +00:00
);
if ( ! count ( $orig_record )) {
2012-10-31 04:37:58 +00:00
notice ( t ( 'Could not access address book record.' ) . EOL );
2012-11-03 09:00:48 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections' );
2012-08-17 04:41:07 +00:00
}
if ( $cmd === 'update' ) {
// pull feed and consume it, which should subscribe to the hub.
proc_run ( 'php' , " include/poller.php " , " $contact_id " );
2012-11-03 09:00:48 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections/' . $contact_id );
2012-10-31 04:37:58 +00:00
2012-08-17 04:41:07 +00:00
}
2013-01-04 00:17:22 +00:00
if ( $cmd === 'refresh' ) {
2013-01-04 00:48:18 +00:00
if ( ! zot_refresh ( $orig_record [ 0 ], get_app () -> get_channel ()))
notice ( t ( 'Refresh failed - channel is currently unavailable.' ) );
2013-01-04 00:17:22 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections/' . $contact_id );
}
2012-08-17 04:41:07 +00:00
if ( $cmd === 'block' ) {
2012-10-31 04:37:58 +00:00
if ( abook_toggle_flag ( $orig_record [ 0 ], ABOOK_FLAG_BLOCKED ))
info ((( $orig_record [ 0 ][ 'abook_flags' ] & ABOOK_FLAG_BLOCKED )
? t ( 'Channel has been unblocked' )
: t ( 'Channel has been blocked' )) . EOL );
else
notice ( t ( 'Unable to set address book parameters.' ) . EOL );
2012-11-03 09:00:48 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections/' . $contact_id );
2012-08-17 04:41:07 +00:00
}
if ( $cmd === 'ignore' ) {
2012-10-31 04:37:58 +00:00
if ( abook_toggle_flag ( $orig_record [ 0 ], ABOOK_FLAG_IGNORED ))
info ((( $orig_record [ 0 ][ 'abook_flags' ] & ABOOK_FLAG_IGNORED )
? t ( 'Channel has been unignored' )
: t ( 'Channel has been ignored' )) . EOL );
else
notice ( t ( 'Unable to set address book parameters.' ) . EOL );
2012-11-03 09:00:48 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections/' . $contact_id );
2012-08-17 04:41:07 +00:00
}
if ( $cmd === 'archive' ) {
2012-10-31 04:37:58 +00:00
if ( abook_toggle_flag ( $orig_record [ 0 ], ABOOK_FLAG_ARCHIVED ))
info ((( $orig_record [ 0 ][ 'abook_flags' ] & ABOOK_FLAG_ARCHIVED )
? t ( 'Channel has been unarchived' )
: t ( 'Channel has been archived' )) . EOL );
else
notice ( t ( 'Unable to set address book parameters.' ) . EOL );
2012-11-03 09:00:48 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections/' . $contact_id );
2012-08-17 04:41:07 +00:00
}
2012-10-31 04:37:58 +00:00
if ( $cmd === 'hide' ) {
if ( abook_toggle_flag ( $orig_record [ 0 ], ABOOK_FLAG_HIDDEN ))
info ((( $orig_record [ 0 ][ 'abook_flags' ] & ABOOK_FLAG_HIDDEN )
? t ( 'Channel has been unhidden' )
: t ( 'Channel has been hidden' )) . EOL );
else
notice ( t ( 'Unable to set address book parameters.' ) . EOL );
2012-11-03 09:00:48 +00:00
goaway ( $a -> get_baseurl ( true ) . '/connections/' . $contact_id );
2012-10-31 04:37:58 +00:00
}
2012-08-17 04:41:07 +00:00
2012-11-10 10:54:29 +00:00
if ( $cmd === 'drop' ) {
2012-08-17 04:41:07 +00:00
2012-11-10 10:54:29 +00:00
require_once ( 'include/Contact.php' );
// FIXME
// terminate_friendship($a->get_channel(),$orig_record[0]);
2012-10-31 04:37:58 +00:00
2012-11-10 10:54:29 +00:00
contact_remove ( $orig_record [ 0 ][ 'abook_id' ]);
info ( t ( 'Contact has been removed.' ) . EOL );
if ( x ( $_SESSION , 'return_url' ))
goaway ( $a -> get_baseurl ( true ) . '/' . $_SESSION [ 'return_url' ]);
goaway ( $a -> get_baseurl ( true ) . '/contacts' );
2012-10-31 04:37:58 +00:00
2012-11-10 10:54:29 +00:00
}
2012-08-17 04:41:07 +00:00
}
2012-10-31 04:37:58 +00:00
if (( x ( $a -> data , 'abook' )) && ( is_array ( $a -> data [ 'abook' ]))) {
2012-08-17 04:41:07 +00:00
2012-10-31 04:37:58 +00:00
$contact_id = $a -> data [ 'abook' ][ 'abook_id' ];
$contact = $a -> data [ 'abook' ];
2012-08-17 04:41:07 +00:00
2012-11-08 02:48:31 +00:00
$tabs = array (
array (
'label' => t ( 'View Profile' ),
2012-12-04 00:14:34 +00:00
'url' => $a -> get_baseurl ( true ) . '/chanview/?f=&cid=' . $contact [ 'abook_id' ],
2012-11-08 02:48:31 +00:00
'sel' => '' ,
'title' => sprintf ( t ( 'View %s\'s profile' ), $contact [ 'xchan_name' ]),
),
2013-01-04 00:48:18 +00:00
array (
'label' => t ( 'Refresh Permissions' ),
'url' => $a -> get_baseurl ( true ) . '/connections/' . $contact [ 'abook_id' ] . '/refresh' ,
'sel' => '' ,
'title' => t ( 'Fetch updated permissions' ),
),
2012-11-08 02:48:31 +00:00
array (
'label' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_BLOCKED ) ? t ( 'Unblock' ) : t ( 'Block' )),
'url' => $a -> get_baseurl ( true ) . '/connections/' . $contact [ 'abook_id' ] . '/block' ,
'sel' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_BLOCKED ) ? 'active' : '' ),
'title' => t ( 'Block or Unblock this connection' ),
),
array (
'label' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_IGNORED ) ? t ( 'Unignore' ) : t ( 'Ignore' )),
'url' => $a -> get_baseurl ( true ) . '/connections/' . $contact [ 'abook_id' ] . '/ignore' ,
'sel' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_IGNORED ) ? 'active' : '' ),
'title' => t ( 'Ignore or Unignore this connection' ),
),
array (
'label' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_ARCHIVED ) ? t ( 'Unarchive' ) : t ( 'Archive' )),
'url' => $a -> get_baseurl ( true ) . '/connections/' . $contact [ 'abook_id' ] . '/archive' ,
'sel' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_ARCHIVED ) ? 'active' : '' ),
'title' => t ( 'Archive or Unarchive this connection' ),
),
array (
'label' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_HIDDEN ) ? t ( 'Unhide' ) : t ( 'Hide' )),
'url' => $a -> get_baseurl ( true ) . '/connections/' . $contact [ 'abook_id' ] . '/hide' ,
'sel' => (( $contact [ 'abook_flags' ] & ABOOK_FLAG_HIDDEN ) ? 'active' : '' ),
'title' => t ( 'Hide or Unhide this connection' ),
),
array (
'label' => t ( 'Delete' ),
'url' => $a -> get_baseurl ( true ) . '/connections/' . $contact [ 'abook_id' ] . '/drop' ,
'sel' => '' ,
'title' => t ( 'Delete this connection' ),
),
);
$tab_tpl = get_markup_template ( 'common_tabs.tpl' );
$t = replace_macros ( $tab_tpl , array ( '$tabs' => $tabs ));
2012-08-17 04:41:07 +00:00
$a -> page [ 'htmlhead' ] .= replace_macros ( get_markup_template ( 'contact_head.tpl' ), array (
'$baseurl' => $a -> get_baseurl ( true ),
'$editselect' => $editselect ,
));
require_once ( 'include/contact_selectors.php' );
$tpl = get_markup_template ( " abook_edit.tpl " );
2012-11-29 03:23:39 +00:00
if ( feature_enabled ( local_user (), 'affinity' )) {
$slider_tpl = get_markup_template ( 'contact_slider.tpl' );
$slide = replace_macros ( $slider_tpl , array (
'$me' => t ( 'Me' ),
'$val' => $contact [ 'abook_closeness' ],
'$intimate' => t ( 'Best Friends' ),
'$friends' => t ( 'Friends' ),
'$oldfriends' => t ( 'Former Friends' ),
'$acquaintances' => t ( 'Acquaintances' ),
'$world' => t ( 'Unknown' )
));
}
2012-08-17 04:41:07 +00:00
2012-11-09 01:33:38 +00:00
$perms = array ();
$channel = $a -> get_channel ();
$global_perms = get_perms ();
2012-12-31 09:17:52 +00:00
$existing = get_all_perms ( local_user (), $contact );
2012-11-09 01:33:38 +00:00
foreach ( $global_perms as $k => $v ) {
2012-12-31 09:17:52 +00:00
$perms [] = array ( 'perms_' . $k , $v [ 3 ], (( $contact [ 'abook_their_perms' ] & $v [ 1 ]) ? " 1 " : " " ),((( $contact [ 'abook_my_perms' ] & $v [ 1 ]) || $existing [ $k ]) ? " 1 " : " " ), $v [ 1 ], (( $channel [ $v [ 0 ]] == PERMS_SPECIFIC ) ? '' : '1' ), $v [ 4 ]);
2012-11-09 01:33:38 +00:00
}
2012-08-17 04:41:07 +00:00
$o .= replace_macros ( $tpl , array (
2012-12-31 05:44:59 +00:00
'$header' => sprintf ( t ( 'Connections: settings for %s' ), $contact [ 'xchan_name' ]),
'$addr' => $contact [ 'xchan_addr' ],
2012-11-07 02:13:47 +00:00
'$viewprof' => t ( 'View Profile' ),
2012-11-30 02:15:13 +00:00
'$lbl_slider' => t ( 'Slide to adjust your degree of friendship' ),
2012-08-17 04:41:07 +00:00
'$slide' => $slide ,
2012-11-08 02:48:31 +00:00
'$tabs' => $t ,
2012-08-17 04:41:07 +00:00
'$tab_str' => $tab_str ,
'$submit' => t ( 'Submit' ),
'$lbl_vis1' => t ( 'Profile Visibility' ),
'$lbl_vis2' => sprintf ( t ( 'Please choose the profile you would like to display to %s when viewing your profile securely.' ), $contact [ 'name' ]),
'$lbl_info1' => t ( 'Contact Information / Notes' ),
'$infedit' => t ( 'Edit contact notes' ),
2012-11-07 02:13:47 +00:00
'$close' => $contact [ 'abook_closeness' ],
2012-08-17 04:41:07 +00:00
'$them' => t ( 'Their Settings' ),
'$me' => t ( 'My Settings' ),
2012-11-09 01:33:38 +00:00
'$perms' => $perms ,
2012-12-08 23:14:32 +00:00
'$full' => t ( 'Full Sharing' ),
'$cautious' => t ( 'Cautious Sharing' ),
'$follow' => t ( 'Follow Only' ),
'$advanced' => t ( 'Advanced Permissions' ),
'$quick' => t ( 'Quick Links' ),
2012-08-17 04:41:07 +00:00
'$common_link' => $a -> get_baseurl ( true ) . '/common/loc/' . local_user () . '/' . $contact [ 'id' ],
'$all_friends' => $all_friends ,
'$relation_text' => $relation_text ,
2012-11-07 02:13:47 +00:00
'$visit' => sprintf ( t ( 'Visit %s\'s profile [%s]' ), $contact [ 'xchan_name' ], $contact [ 'xchan_url' ]),
2012-08-17 04:41:07 +00:00
'$blockunblock' => t ( 'Block/Unblock contact' ),
'$ignorecont' => t ( 'Ignore contact' ),
'$lblcrepair' => t ( " Repair URL settings " ),
'$lblrecent' => t ( 'View conversations' ),
'$lblsuggest' => $lblsuggest ,
'$delete' => t ( 'Delete contact' ),
'$poll_interval' => contact_poll_interval ( $contact [ 'priority' ],( ! $poll_enabled )),
'$poll_enabled' => $poll_enabled ,
'$lastupdtext' => t ( 'Last update:' ),
'$lost_contact' => $lost_contact ,
'$updpub' => t ( 'Update public posts' ),
'$last_update' => $last_update ,
'$udnow' => t ( 'Update now' ),
2012-12-08 22:18:02 +00:00
// '$profile_select' => contact_profile_assign($contact['profile_id'],(($contact['network'] !== NETWORK_DFRN) ? true : false)),
2012-11-07 02:13:47 +00:00
'$contact_id' => $contact [ 'abook_id' ],
2012-08-17 04:41:07 +00:00
'$block_text' => (( $contact [ 'blocked' ]) ? t ( 'Unblock' ) : t ( 'Block' ) ),
'$ignore_text' => (( $contact [ 'readonly' ]) ? t ( 'Unignore' ) : t ( 'Ignore' ) ),
'$blocked' => (( $contact [ 'blocked' ]) ? t ( 'Currently blocked' ) : '' ),
'$ignored' => (( $contact [ 'readonly' ]) ? t ( 'Currently ignored' ) : '' ),
'$archived' => (( $contact [ 'archive' ]) ? t ( 'Currently archived' ) : '' ),
'$hidden' => array ( 'hidden' , t ( 'Hide this contact from others' ), ( $contact [ 'hidden' ] == 1 ), t ( 'Replies/likes to your public posts <strong>may</strong> still be visible' )),
'$photo' => $contact [ 'photo' ],
'$name' => $contact [ 'name' ],
'$dir_icon' => $dir_icon ,
'$alt_text' => $alt_text ,
'$sparkle' => $sparkle ,
'$url' => $url
));
$arr = array ( 'contact' => $contact , 'output' => $o );
call_hooks ( 'contact_edit' , $arr );
return $arr [ 'output' ];
}
$blocked = false ;
$hidden = false ;
$ignored = false ;
2012-10-31 04:37:58 +00:00
$archived = false ;
2012-11-30 02:15:13 +00:00
$unblocked = false ;
2012-08-17 04:41:07 +00:00
$all = false ;
$_SESSION [ 'return_url' ] = $a -> query_string ;
2012-10-31 04:37:58 +00:00
$search_flags = 0 ;
if ( argc () == 2 ) {
switch ( argv ( 1 )) {
case 'blocked' :
$search_flags = ABOOK_FLAG_BLOCKED ;
$blocked = true ;
break ;
case 'ignored' :
$search_flags = ABOOK_FLAG_IGNORED ;
$ignored = true ;
break ;
case 'hidden' :
$search_flags = ABOOK_FLAG_HIDDEN ;
$hidden = true ;
break ;
case 'archived' :
$search_flags = ABOOK_FLAG_ARCHIVED ;
$archived = true ;
break ;
case 'all' :
default :
$search_flags = 0 ;
$all = true ;
break ;
2012-11-30 02:15:13 +00:00
2012-10-31 04:37:58 +00:00
}
2012-11-30 02:15:13 +00:00
$sql_extra = (( $search_flags ) ? " and ( abook_flags & " . $search_flags . " ) " : " " );
}
else {
$sql_extra = " and not ( abook_flags & " . ABOOK_FLAG_BLOCKED . " ) " ;
$unblocked = true ;
2012-08-17 04:41:07 +00:00
}
2012-10-31 04:37:58 +00:00
$search = (( x ( $_REQUEST , 'search' )) ? notags ( trim ( $_REQUEST [ 'search' ])) : '' );
2012-08-17 04:41:07 +00:00
$tabs = array (
array (
'label' => t ( 'Suggestions' ),
'url' => $a -> get_baseurl ( true ) . '/suggest' ,
'sel' => '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Suggest new connections' ),
2012-08-17 04:41:07 +00:00
),
array (
2012-11-03 09:00:48 +00:00
'label' => t ( 'All Connections' ),
'url' => $a -> get_baseurl ( true ) . '/connections/all' ,
2012-08-17 04:41:07 +00:00
'sel' => ( $all ) ? 'active' : '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Show all connections' ),
2012-08-17 04:41:07 +00:00
),
array (
'label' => t ( 'Unblocked' ),
2012-11-03 09:00:48 +00:00
'url' => $a -> get_baseurl ( true ) . '/connections' ,
2012-11-30 02:15:13 +00:00
'sel' => (( $unblocked ) && ( ! $search ) && ( ! $nets )) ? 'active' : '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Only show unblocked connections' ),
2012-08-17 04:41:07 +00:00
),
array (
'label' => t ( 'Blocked' ),
2012-11-03 09:00:48 +00:00
'url' => $a -> get_baseurl ( true ) . '/connections/blocked' ,
2012-08-17 04:41:07 +00:00
'sel' => ( $blocked ) ? 'active' : '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Only show blocked connections' ),
2012-08-17 04:41:07 +00:00
),
array (
'label' => t ( 'Ignored' ),
2012-11-03 09:00:48 +00:00
'url' => $a -> get_baseurl ( true ) . '/connections/ignored' ,
2012-08-17 04:41:07 +00:00
'sel' => ( $ignored ) ? 'active' : '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Only show ignored connections' ),
2012-08-17 04:41:07 +00:00
),
array (
'label' => t ( 'Archived' ),
2012-11-03 09:00:48 +00:00
'url' => $a -> get_baseurl ( true ) . '/connections/archived' ,
2012-08-17 04:41:07 +00:00
'sel' => ( $archived ) ? 'active' : '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Only show archived connections' ),
2012-08-17 04:41:07 +00:00
),
array (
'label' => t ( 'Hidden' ),
2012-11-03 09:00:48 +00:00
'url' => $a -> get_baseurl ( true ) . '/connections/hidden' ,
2012-08-17 04:41:07 +00:00
'sel' => ( $hidden ) ? 'active' : '' ,
2012-11-03 09:00:48 +00:00
'title' => t ( 'Only show hidden connections' ),
2012-08-17 04:41:07 +00:00
),
);
$tab_tpl = get_markup_template ( 'common_tabs.tpl' );
$t = replace_macros ( $tab_tpl , array ( '$tabs' => $tabs ));
$searching = false ;
if ( $search ) {
$search_hdr = $search ;
$search_txt = dbesc ( protect_sprintf ( preg_quote ( $search )));
$searching = true ;
}
2012-11-13 10:57:15 +00:00
$sql_extra .= (( $searching ) ? protect_sprintf ( " AND xchan_name like '% $search_txt %' " ) : " " );
2012-08-17 04:41:07 +00:00
2012-11-10 10:54:29 +00:00
2012-10-31 23:55:19 +00:00
$r = q ( " SELECT COUNT(abook.abook_id) AS total FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
2012-11-30 07:06:03 +00:00
where abook_channel = % d and not ( abook_flags & % d ) and not ( abook_flags & % d ) $sql_extra $sql_extra2 " ,
2012-10-31 23:55:19 +00:00
intval ( local_user ()),
2012-11-30 07:06:03 +00:00
intval ( ABOOK_FLAG_SELF ),
intval ( ABOOK_FLAG_PENDING )
2012-10-31 23:55:19 +00:00
);
2012-08-17 04:41:07 +00:00
if ( count ( $r )) {
$a -> set_pager_total ( $r [ 0 ][ 'total' ]);
$total = $r [ 0 ][ 'total' ];
}
2012-12-08 22:18:02 +00:00
2012-11-02 05:23:13 +00:00
$r = q ( " SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
2012-11-30 07:06:03 +00:00
WHERE abook_channel = % d and not ( abook_flags & % d ) and not ( abook_flags & % d ) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT % d , % d " ,
2012-10-31 23:55:19 +00:00
intval ( local_user ()),
intval ( ABOOK_FLAG_SELF ),
2012-11-30 07:06:03 +00:00
intval ( ABOOK_FLAG_PENDING ),
2012-08-17 04:41:07 +00:00
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
2012-12-08 22:18:02 +00:00
2012-08-17 04:41:07 +00:00
$contacts = array ();
if ( count ( $r )) {
foreach ( $r as $rr ) {
$contacts [] = array (
2012-11-13 10:57:15 +00:00
'img_hover' => sprintf ( t ( '%1$s [%2$s]' ), $rr [ 'xchan_name' ], $rr [ 'xchan_url' ]),
2012-08-17 04:41:07 +00:00
'edit_hover' => t ( 'Edit contact' ),
'photo_menu' => contact_photo_menu ( $rr ),
2012-11-07 02:13:47 +00:00
'id' => $rr [ 'abook_id' ],
2012-08-17 04:41:07 +00:00
'alt_text' => $alt_text ,
'dir_icon' => $dir_icon ,
2012-11-07 02:13:47 +00:00
'thumb' => $rr [ 'xchan_photo_m' ],
'name' => $rr [ 'xchan_name' ],
'username' => $rr [ 'xchan_name' ],
2012-08-17 04:41:07 +00:00
'sparkle' => $sparkle ,
2012-11-13 10:57:15 +00:00
'edit' => z_root () . '/connections/' . $rr [ 'abook_id' ],
'url' => $rr [ 'xchan_url' ],
2012-08-17 04:41:07 +00:00
'network' => network_to_name ( $rr [ 'network' ]),
);
}
}
$tpl = get_markup_template ( " contacts-template.tpl " );
$o .= replace_macros ( $tpl , array (
2012-11-03 09:00:48 +00:00
'$header' => t ( 'Connnections' ) . (( $nets ) ? ' - ' . network_to_name ( $nets ) : '' ),
2012-08-17 04:41:07 +00:00
'$tabs' => $t ,
'$total' => $total ,
'$search' => $search_hdr ,
2012-11-03 09:00:48 +00:00
'$desc' => t ( 'Search your connnections' ),
2012-08-17 04:41:07 +00:00
'$finding' => (( $searching ) ? t ( 'Finding: ' ) . " ' " . $search . " ' " : " " ),
'$submit' => t ( 'Find' ),
'$cmd' => $a -> cmd ,
'$contacts' => $contacts ,
'$paginate' => paginate ( $a ),
));
return $o ;
}