2010-07-01 19:48:07 -04:00
< ? php
2010-09-08 23:14:17 -04:00
require_once ( 'include/Contact.php' );
2011-11-01 22:16:33 -04:00
require_once ( 'include/socgraph.php' );
2012-11-23 00:04:03 -05:00
require_once ( 'include/contact_selectors.php' );
2010-09-08 23:14:17 -04:00
2010-07-11 05:52:47 -04:00
function contacts_init ( & $a ) {
2011-07-17 19:08:47 -04:00
if ( ! local_user ())
return ;
2011-08-03 01:39:35 -04:00
$contact_id = 0 ;
2011-11-09 06:46:36 -05:00
2011-08-03 01:39:35 -04:00
if (( $a -> argc == 2 ) && intval ( $a -> argv [ 1 ])) {
$contact_id = intval ( $a -> argv [ 1 ]);
$r = q ( " SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1 " ,
intval ( local_user ()),
intval ( $contact_id )
);
if ( ! count ( $r )) {
$contact_id = 0 ;
}
}
2010-07-11 05:52:47 -04:00
require_once ( 'include/group.php' );
2011-10-11 22:27:58 -04:00
require_once ( 'include/contact_widgets.php' );
2010-10-31 19:38:22 -04:00
if ( ! x ( $a -> page , 'aside' ))
$a -> page [ 'aside' ] = '' ;
2011-10-11 21:24:37 -04:00
2011-11-09 06:46:36 -05:00
if ( $contact_id ) {
$a -> data [ 'contact' ] = $r [ 0 ];
2012-09-07 14:17:03 -04:00
$vcard_widget = replace_macros ( get_markup_template ( " vcard-widget.tpl " ), array (
'$name' => $a -> data [ 'contact' ][ 'name' ],
'$photo' => $a -> data [ 'contact' ][ 'photo' ]
));
$follow_widget = '' ;
2011-11-09 06:46:36 -05:00
}
2012-09-07 14:17:03 -04:00
else {
$vcard_widget = '' ;
$follow_widget = follow_widget ();
}
2010-07-27 22:27:14 -04:00
2012-09-07 14:17:03 -04:00
$groups_widget .= group_side ( 'contacts' , 'group' , false , 0 , $contact_id );
$findpeople_widget .= findpeople_widget ();
$networks_widget .= networks_widget ( 'contacts' , $_GET [ 'nets' ]);
$a -> page [ 'aside' ] .= replace_macros ( get_markup_template ( " contacts-widget-sidebar.tpl " ), array (
'$vcard_widget' => $vcard_widget ,
'$follow_widget' => $follow_widget ,
'$groups_widget' => $groups_widget ,
'$findpeople_widget' => $findpeople_widget ,
'$networks_widget' => $networks_widget
));
2011-03-22 00:43:22 -04:00
2012-06-05 23:33:11 -04:00
$base = $a -> get_baseurl ();
2012-07-28 11:57:16 -04:00
$tpl = get_markup_template ( " contacts-head.tpl " );
$a -> page [ 'htmlhead' ] .= replace_macros ( $tpl , array (
'$baseurl' => $a -> get_baseurl ( true ),
'$base' => $base
));
2012-09-07 14:17:03 -04:00
2012-07-28 11:57:16 -04:00
$tpl = get_markup_template ( " contacts-end.tpl " );
$a -> page [ 'end' ] .= replace_macros ( $tpl , array (
'$baseurl' => $a -> get_baseurl ( true ),
'$base' => $base
));
2012-06-05 23:33:11 -04:00
2010-07-01 19:48:07 -04:00
}
function contacts_post ( & $a ) {
2010-07-11 02:03:54 -04:00
if ( ! local_user ())
2010-07-01 19:48:07 -04:00
return ;
$contact_id = intval ( $a -> argv [ 1 ]);
if ( ! $contact_id )
return ;
2010-07-11 05:52:47 -04:00
2010-07-11 02:03:54 -04:00
$orig_record = q ( " SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
2010-07-01 19:48:07 -04:00
intval ( $contact_id ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-07-01 19:48:07 -04:00
);
2010-07-11 02:03:54 -04:00
if ( ! count ( $orig_record )) {
2010-09-08 23:14:17 -04:00
notice ( t ( 'Could not access contact record.' ) . EOL );
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/contacts' );
2010-07-11 02:03:54 -04:00
return ; // NOTREACHED
}
2010-07-01 19:48:07 -04:00
2011-01-07 06:15:52 -05:00
call_hooks ( 'contact_edit_post' , $_POST );
2010-07-11 02:03:54 -04:00
$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 ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-07-11 02:03:54 -04:00
);
if ( ! count ( $r )) {
2010-07-28 01:32:21 -04:00
notice ( t ( 'Could not locate selected profile.' ) . EOL );
2010-07-01 19:48:07 -04:00
return ;
2010-07-11 02:03:54 -04:00
}
2010-07-01 19:48:07 -04:00
}
2011-05-31 01:17:04 -04:00
2011-12-05 21:36:26 -05:00
$hidden = intval ( $_POST [ 'hidden' ]);
2010-10-01 05:28:06 -04:00
2011-01-26 23:29:32 -05:00
$priority = intval ( $_POST [ 'poll' ]);
2010-08-01 08:46:51 -04:00
if ( $priority > 5 || $priority < 0 )
$priority = 0 ;
2012-04-10 19:32:38 -04:00
$info = fix_mce_lf ( escape_tags ( trim ( $_POST [ 'info' ])));
2010-12-28 04:06:34 -05:00
2011-12-05 21:36:26 -05:00
$r = q ( " UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `info` = '%s',
`hidden` = % d WHERE `id` = % d AND `uid` = % d LIMIT 1 " ,
2010-07-11 02:03:54 -04:00
intval ( $profile_id ),
2010-08-01 08:46:51 -04:00
intval ( $priority ),
2010-12-28 04:06:34 -05:00
dbesc ( $info ),
2011-12-05 21:36:26 -05:00
intval ( $hidden ),
2010-07-11 02:03:54 -04:00
intval ( $contact_id ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-07-11 02:03:54 -04:00
);
if ( $r )
2011-05-23 05:39:57 -04:00
info ( t ( 'Contact updated.' ) . EOL );
2010-07-11 02:03:54 -04:00
else
2010-07-28 01:32:21 -04:00
notice ( t ( 'Failed to update contact record.' ) . EOL );
2012-02-12 02:17:55 -05:00
$r = q ( " select * from contact where id = %d and uid = %d limit 1 " ,
intval ( $contact_id ),
intval ( local_user ())
);
if ( $r && count ( $r ))
$a -> data [ 'contact' ] = $r [ 0 ];
2010-07-11 02:03:54 -04:00
return ;
2010-07-01 19:48:07 -04:00
}
function contacts_content ( & $a ) {
2010-07-11 02:03:54 -04:00
2010-10-31 19:38:22 -04:00
$sort_type = 0 ;
$o = '' ;
2011-08-17 12:36:24 -04:00
nav_set_selected ( 'contacts' );
2010-10-31 19:38:22 -04:00
2010-07-01 19:48:07 -04:00
if ( ! local_user ()) {
2010-07-28 01:32:21 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
2010-07-01 19:48:07 -04:00
return ;
}
2010-07-11 02:03:54 -04:00
if ( $a -> argc == 3 ) {
$contact_id = intval ( $a -> argv [ 1 ]);
if ( ! $contact_id )
return ;
$cmd = $a -> argv [ 2 ];
2011-08-19 08:20:30 -04:00
$orig_record = q ( " SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d AND `self` = 0 LIMIT 1 " ,
2010-07-11 02:03:54 -04:00
intval ( $contact_id ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-07-11 02:03:54 -04:00
);
if ( ! count ( $orig_record )) {
2010-07-28 01:32:21 -04:00
notice ( t ( 'Could not access contact record.' ) . EOL );
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/contacts' );
2010-07-11 02:03:54 -04:00
return ; // NOTREACHED
}
2012-04-23 22:42:57 -04:00
2011-01-30 22:38:03 -05:00
if ( $cmd === 'update' ) {
// pull feed and consume it, which should subscribe to the hub.
2011-02-23 18:16:12 -05:00
proc_run ( 'php' , " include/poller.php " , " $contact_id " );
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/contacts/' . $contact_id );
2011-01-30 22:38:03 -05:00
// NOTREACHED
}
2010-07-11 02:03:54 -04:00
2010-09-26 20:24:20 -04:00
if ( $cmd === 'block' ) {
2010-07-11 02:03:54 -04:00
$blocked = (( $orig_record [ 0 ][ 'blocked' ]) ? 0 : 1 );
$r = q ( " UPDATE `contact` SET `blocked` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
2011-08-22 23:35:34 -04:00
intval ( $blocked ),
intval ( $contact_id ),
intval ( local_user ())
2010-07-11 02:03:54 -04:00
);
if ( $r ) {
2011-03-10 18:22:21 -05:00
//notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
2011-05-23 05:39:57 -04:00
info ( (( $blocked ) ? t ( 'Contact has been blocked' ) : t ( 'Contact has been unblocked' )) . EOL );
2010-07-28 01:32:21 -04:00
}
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/contacts/' . $contact_id );
2010-07-28 01:32:21 -04:00
return ; // NOTREACHED
}
2010-09-26 20:24:20 -04:00
if ( $cmd === 'ignore' ) {
2010-07-28 01:32:21 -04:00
$readonly = (( $orig_record [ 0 ][ 'readonly' ]) ? 0 : 1 );
$r = q ( " UPDATE `contact` SET `readonly` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
2011-08-22 23:35:34 -04:00
intval ( $readonly ),
intval ( $contact_id ),
intval ( local_user ())
2010-07-28 01:32:21 -04:00
);
if ( $r ) {
2011-05-23 05:39:57 -04:00
info ( (( $readonly ) ? t ( 'Contact has been ignored' ) : t ( 'Contact has been unignored' )) . EOL );
2010-07-11 02:03:54 -04:00
}
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/contacts/' . $contact_id );
2010-07-11 02:03:54 -04:00
return ; // NOTREACHED
}
2012-04-27 20:17:58 -04:00
if ( $cmd === 'archive' ) {
$archived = (( $orig_record [ 0 ][ 'archive' ]) ? 0 : 1 );
$r = q ( " UPDATE `contact` SET `archive` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
intval ( $archived ),
intval ( $contact_id ),
intval ( local_user ())
);
2012-11-02 18:54:03 -04:00
if ( $archived ) {
q ( " UPDATE `item` SET `private` = 2 WHERE `contact-id` = %d AND `uid` = %d " , intval ( $contact_id ), intval ( local_user ()));
}
2012-04-27 20:17:58 -04:00
if ( $r ) {
//notice( t('Contact has been ') . (($archived) ? t('archived') : t('unarchived')) . EOL );
info ( (( $archived ) ? t ( 'Contact has been archived' ) : t ( 'Contact has been unarchived' )) . EOL );
}
goaway ( $a -> get_baseurl ( true ) . '/contacts/' . $contact_id );
return ; // NOTREACHED
}
2010-09-26 20:24:20 -04:00
if ( $cmd === 'drop' ) {
2010-11-23 22:29:38 -05:00
2012-04-23 22:42:57 -04:00
require_once ( 'include/Contact.php' );
terminate_friendship ( $a -> user , $a -> contact , $orig_record [ 0 ]);
2011-01-26 05:32:00 -05:00
2011-08-19 08:20:30 -04:00
contact_remove ( $orig_record [ 0 ][ 'id' ]);
2011-05-23 05:39:57 -04:00
info ( t ( 'Contact has been removed.' ) . EOL );
2012-02-09 00:15:26 -05:00
if ( x ( $_SESSION , 'return_url' ))
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/' . $_SESSION [ 'return_url' ]);
2012-02-09 00:15:26 -05:00
else
2012-03-15 00:20:20 -04:00
goaway ( $a -> get_baseurl ( true ) . '/contacts' );
2010-07-11 02:03:54 -04:00
return ; // NOTREACHED
}
}
2010-07-06 08:07:28 -04:00
2011-11-09 22:30:14 -05:00
if (( x ( $a -> data , 'contact' )) && ( is_array ( $a -> data [ 'contact' ]))) {
2010-07-06 08:07:28 -04:00
2011-11-09 22:30:14 -05:00
$contact_id = $a -> data [ 'contact' ][ 'id' ];
$contact = $a -> data [ 'contact' ];
2010-07-06 08:07:28 -04:00
2012-04-10 21:08:06 -04:00
$editselect = 'exact' ;
if ( intval ( get_pconfig ( local_user (), 'system' , 'plaintext' )))
$editselect = 'none' ;
$a -> page [ 'htmlhead' ] .= replace_macros ( get_markup_template ( 'contact_head.tpl' ), array (
'$baseurl' => $a -> get_baseurl ( true ),
'$editselect' => $editselect ,
));
2012-07-28 11:57:16 -04:00
$a -> page [ 'end' ] .= replace_macros ( get_markup_template ( 'contact_end.tpl' ), array (
'$baseurl' => $a -> get_baseurl ( true ),
'$editselect' => $editselect ,
));
2010-10-26 00:52:30 -04:00
2010-11-16 00:06:44 -05:00
require_once ( 'include/contact_selectors.php' );
2010-07-06 08:07:28 -04:00
2011-05-11 07:37:13 -04:00
$tpl = get_markup_template ( " contact_edit.tpl " );
2010-07-06 08:07:28 -04:00
2011-11-09 22:30:14 -05:00
switch ( $contact [ 'rel' ]) {
2011-08-07 19:15:54 -04:00
case CONTACT_IS_FRIEND :
2010-07-11 02:03:54 -04:00
$dir_icon = 'images/lrarrow.gif' ;
2011-11-09 00:22:45 -05:00
$relation_text = t ( 'You are mutual friends with %s' );
2010-09-08 23:14:17 -04:00
break ;
2011-08-07 19:15:54 -04:00
case CONTACT_IS_FOLLOWER ;
2010-07-11 02:03:54 -04:00
$dir_icon = 'images/larrow.gif' ;
2011-11-09 00:22:45 -05:00
$relation_text = t ( 'You are sharing with %s' );
2010-09-08 23:14:17 -04:00
break ;
2011-08-07 19:15:54 -04:00
case CONTACT_IS_SHARING ;
2010-09-08 23:14:17 -04:00
$dir_icon = 'images/rarrow.gif' ;
2011-11-09 00:22:45 -05:00
$relation_text = t ( '%s is sharing with you' );
2010-09-08 23:14:17 -04:00
break ;
default :
break ;
2010-07-11 02:03:54 -04:00
}
2011-11-09 22:30:14 -05:00
$relation_text = sprintf ( $relation_text , $contact [ 'name' ]);
2011-11-09 00:22:45 -05:00
2011-11-09 22:30:14 -05:00
if (( $contact [ 'network' ] === NETWORK_DFRN ) && ( $contact [ 'rel' ])) {
$url = " redir/ { $contact [ 'id' ] } " ;
2010-09-27 22:48:45 -04:00
$sparkle = ' class="sparkle" ' ;
}
else {
2011-11-09 22:30:14 -05:00
$url = $contact [ 'url' ];
2010-09-27 22:48:45 -04:00
$sparkle = '' ;
}
2010-10-01 05:28:06 -04:00
2011-11-09 00:22:45 -05:00
$insecure = t ( 'Private communications are not available for this contact.' );
2011-03-20 22:29:01 -04:00
2011-11-09 22:30:14 -05:00
$last_update = (( $contact [ 'last-update' ] == '0000-00-00 00:00:00' )
2011-02-06 18:50:50 -05:00
? t ( 'Never' )
2011-11-09 22:30:14 -05:00
: datetime_convert ( 'UTC' , date_default_timezone_get (), $contact [ 'last-update' ], 'D, j M Y, g:i A' ));
2011-02-06 18:50:50 -05:00
2011-11-09 22:30:14 -05:00
if ( $contact [ 'last-update' ] !== '0000-00-00 00:00:00' )
$last_update .= ' ' . (( $contact [ 'last-update' ] == $contact [ 'success_update' ]) ? t ( " \x28 Update was successful \x29 " ) : t ( " \x28 Update was not successful \x29 " ));
2011-02-06 18:50:50 -05:00
2011-11-09 22:30:14 -05:00
$lblsuggest = (( $contact [ 'network' ] === NETWORK_DFRN ) ? t ( 'Suggest friends' ) : '' );
2011-06-27 01:57:08 -04:00
2011-11-09 22:30:14 -05:00
$poll_enabled = (( $contact [ 'network' ] !== NETWORK_DIASPORA ) ? true : false );
2011-08-25 21:12:42 -04:00
2011-11-09 22:30:14 -05:00
$nettype = sprintf ( t ( 'Network type: %s' ), network_to_name ( $contact [ 'network' ]));
2011-06-27 01:57:08 -04:00
2011-11-09 22:30:14 -05:00
$common = count_common_friends ( local_user (), $contact [ 'id' ]);
2011-11-09 00:22:45 -05:00
$common_text = (( $common ) ? sprintf ( tt ( '%d contact in common' , '%d contacts in common' , $common ), $common ) : '' );
2011-11-09 22:30:14 -05:00
$polling = (( $contact [ 'network' ] === NETWORK_MAIL | $contact [ 'network' ] === NETWORK_FEED ) ? 'polling' : '' );
2011-11-09 00:22:45 -05:00
2011-11-09 22:30:14 -05:00
$x = count_all_friends ( local_user (), $contact [ 'id' ]);
2011-11-09 00:22:45 -05:00
$all_friends = (( $x ) ? t ( 'View all contacts' ) : '' );
2011-11-09 22:30:14 -05:00
// tabs
$tabs = array (
array (
'label' => (( $contact [ 'blocked' ]) ? t ( 'Unblock' ) : t ( 'Block' ) ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts/' . $contact_id . '/block' ,
2011-11-09 22:30:14 -05:00
'sel' => '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Toggle Blocked status' ),
2011-11-09 22:30:14 -05:00
),
array (
'label' => (( $contact [ 'readonly' ]) ? t ( 'Unignore' ) : t ( 'Ignore' ) ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts/' . $contact_id . '/ignore' ,
2011-11-09 22:30:14 -05:00
'sel' => '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Toggle Ignored status' ),
2011-11-09 22:30:14 -05:00
),
2012-04-27 20:17:58 -04:00
array (
'label' => (( $contact [ 'archive' ]) ? t ( 'Unarchive' ) : t ( 'Archive' ) ),
'url' => $a -> get_baseurl ( true ) . '/contacts/' . $contact_id . '/archive' ,
'sel' => '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Toggle Archive status' ),
2012-04-27 20:17:58 -04:00
),
2011-11-09 22:30:14 -05:00
array (
'label' => t ( 'Repair' ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/crepair/' . $contact_id ,
2011-11-09 22:30:14 -05:00
'sel' => '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Advanced Contact Settings' ),
2011-11-09 22:30:14 -05:00
)
);
$tab_tpl = get_markup_template ( 'common_tabs.tpl' );
$tab_str = replace_macros ( $tab_tpl , array ( '$tabs' => $tabs ));
2012-06-14 19:56:46 -04:00
$lost_contact = (( $contact [ 'archive' ] && $contact [ 'term-date' ] != '0000-00-00 00:00:00' && $contact [ 'term-date' ] < datetime_convert ( '' , '' , 'now' )) ? t ( 'Communications lost with this contact!' ) : '' );
2011-11-09 22:30:14 -05:00
2012-12-22 14:57:29 -05:00
$includes = array (
'$field_checkbox' => 'field_checkbox.tpl' ,
);
$includes = set_template_includes ( $a -> theme [ 'template_engine' ], $includes );
$o .= replace_macros ( $tpl , $includes + array (
2010-11-17 02:26:14 -05:00
'$header' => t ( 'Contact Editor' ),
2011-11-09 22:30:14 -05:00
'$tab_str' => $tab_str ,
2011-04-08 02:10:43 -04:00
'$submit' => t ( 'Submit' ),
'$lbl_vis1' => t ( 'Profile Visibility' ),
2011-11-09 22:30:14 -05:00
'$lbl_vis2' => sprintf ( t ( 'Please choose the profile you would like to display to %s when viewing your profile securely.' ), $contact [ 'name' ]),
2011-04-08 02:10:43 -04:00
'$lbl_info1' => t ( 'Contact Information / Notes' ),
2011-11-09 00:22:45 -05:00
'$infedit' => t ( 'Edit contact notes' ),
2011-11-01 22:16:33 -04:00
'$common_text' => $common_text ,
2012-05-04 04:46:36 -04:00
'$common_link' => $a -> get_baseurl ( true ) . '/common/loc/' . local_user () . '/' . $contact [ 'id' ],
2011-11-08 21:30:20 -05:00
'$all_friends' => $all_friends ,
2011-11-09 00:22:45 -05:00
'$relation_text' => $relation_text ,
2011-11-09 22:30:14 -05:00
'$visit' => sprintf ( t ( 'Visit %s\'s profile [%s]' ), $contact [ 'name' ], $contact [ 'url' ]),
2010-11-17 02:26:14 -05:00
'$blockunblock' => t ( 'Block/Unblock contact' ),
'$ignorecont' => t ( 'Ignore contact' ),
2011-11-09 06:46:36 -05:00
'$lblcrepair' => t ( " Repair URL settings " ),
2011-04-20 00:09:25 -04:00
'$lblrecent' => t ( 'View conversations' ),
2011-06-27 01:57:08 -04:00
'$lblsuggest' => $lblsuggest ,
2010-11-17 02:26:14 -05:00
'$delete' => t ( 'Delete contact' ),
2011-08-25 21:12:42 -04:00
'$nettype' => $nettype ,
2011-11-09 22:30:14 -05:00
'$poll_interval' => contact_poll_interval ( $contact [ 'priority' ],( ! $poll_enabled )),
2011-08-25 21:12:42 -04:00
'$poll_enabled' => $poll_enabled ,
2011-11-09 06:46:36 -05:00
'$lastupdtext' => t ( 'Last update:' ),
2012-06-14 19:56:46 -04:00
'$lost_contact' => $lost_contact ,
2011-11-09 06:46:36 -05:00
'$updpub' => t ( 'Update public posts' ),
2011-02-06 18:50:50 -05:00
'$last_update' => $last_update ,
2011-01-30 22:38:03 -05:00
'$udnow' => t ( 'Update now' ),
2011-11-09 22:30:14 -05:00
'$profile_select' => contact_profile_assign ( $contact [ 'profile-id' ],(( $contact [ 'network' ] !== NETWORK_DFRN ) ? true : false )),
'$contact_id' => $contact [ 'id' ],
'$block_text' => (( $contact [ 'blocked' ]) ? t ( 'Unblock' ) : t ( 'Block' ) ),
'$ignore_text' => (( $contact [ 'readonly' ]) ? t ( 'Unignore' ) : t ( 'Ignore' ) ),
'$insecure' => (( $contact [ 'network' ] !== NETWORK_DFRN && $contact [ 'network' ] !== NETWORK_MAIL && $contact [ 'network' ] !== NETWORK_FACEBOOK && $contact [ 'network' ] !== NETWORK_DIASPORA ) ? $insecure : '' ),
'$info' => $contact [ 'info' ],
'$blocked' => (( $contact [ 'blocked' ]) ? t ( 'Currently blocked' ) : '' ),
'$ignored' => (( $contact [ 'readonly' ]) ? t ( 'Currently ignored' ) : '' ),
2012-04-27 20:17:58 -04:00
'$archived' => (( $contact [ 'archive' ]) ? t ( 'Currently archived' ) : '' ),
2011-12-05 21:36:26 -05:00
'$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' )),
2011-11-09 22:30:14 -05:00
'$photo' => $contact [ 'photo' ],
'$name' => $contact [ 'name' ],
2010-07-06 08:07:28 -04:00
'$dir_icon' => $dir_icon ,
2010-07-11 06:35:33 -04:00
'$alt_text' => $alt_text ,
2010-09-27 22:48:45 -04:00
'$sparkle' => $sparkle ,
2012-12-22 14:57:29 -05:00
'$url' => $url ,
2010-07-06 08:07:28 -04:00
));
2011-11-09 22:30:14 -05:00
$arr = array ( 'contact' => $contact , 'output' => $o );
2011-01-07 06:15:52 -05:00
call_hooks ( 'contact_edit' , $arr );
return $arr [ 'output' ];
2010-07-06 08:07:28 -04:00
}
2010-07-19 09:58:03 -04:00
2012-02-11 06:07:15 -05:00
$blocked = false ;
2012-02-13 23:38:00 -05:00
$hidden = false ;
2012-02-14 01:48:35 -05:00
$ignored = false ;
2012-02-13 23:38:00 -05:00
$all = false ;
2012-02-11 06:07:15 -05:00
2012-02-09 00:15:26 -05:00
$_SESSION [ 'return_url' ] = $a -> query_string ;
2010-08-17 21:44:13 -04:00
2012-02-13 23:38:00 -05:00
if (( $a -> argc == 2 ) && ( $a -> argv [ 1 ] === 'all' )) {
2010-07-01 19:48:07 -04:00
$sql_extra = '' ;
2012-02-13 23:38:00 -05:00
$all = true ;
}
elseif (( $a -> argc == 2 ) && ( $a -> argv [ 1 ] === 'blocked' )) {
$sql_extra = " AND `blocked` = 1 " ;
$blocked = true ;
2012-02-11 06:07:15 -05:00
}
2012-02-13 23:38:00 -05:00
elseif (( $a -> argc == 2 ) && ( $a -> argv [ 1 ] === 'hidden' )) {
$sql_extra = " AND `hidden` = 1 " ;
$hidden = true ;
}
2012-02-14 01:48:35 -05:00
elseif (( $a -> argc == 2 ) && ( $a -> argv [ 1 ] === 'ignored' )) {
$sql_extra = " AND `readonly` = 1 " ;
$ignored = true ;
}
2012-04-27 20:17:58 -04:00
elseif (( $a -> argc == 2 ) && ( $a -> argv [ 1 ] === 'archived' )) {
$sql_extra = " AND `archive` = 1 " ;
$archived = true ;
}
2012-02-13 23:38:00 -05:00
else
$sql_extra = " AND `blocked` = 0 " ;
2010-08-17 21:44:13 -04:00
$search = (( x ( $_GET , 'search' )) ? notags ( trim ( $_GET [ 'search' ])) : '' );
2012-02-12 00:39:51 -05:00
$nets = (( x ( $_GET , 'nets' )) ? notags ( trim ( $_GET [ 'nets' ])) : '' );
2010-08-17 21:44:13 -04:00
2012-02-13 23:38:00 -05:00
$tabs = array (
2012-03-20 19:05:32 -04:00
array (
'label' => t ( 'Suggestions' ),
'url' => $a -> get_baseurl ( true ) . '/suggest' ,
'sel' => '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Suggest potential friends' ),
2012-03-20 19:05:32 -04:00
),
2012-02-13 23:38:00 -05:00
array (
'label' => t ( 'All Contacts' ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts/all' ,
2012-02-13 23:38:00 -05:00
'sel' => ( $all ) ? 'active' : '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Show all contacts' ),
2012-02-13 23:38:00 -05:00
),
array (
2012-04-27 20:17:58 -04:00
'label' => t ( 'Unblocked' ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts' ,
2012-04-27 20:17:58 -04:00
'sel' => (( ! $all ) && ( ! $blocked ) && ( ! $hidden ) && ( ! $search ) && ( ! $nets ) && ( ! $ignored ) && ( ! $archived )) ? 'active' : '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Only show unblocked contacts' ),
2012-02-13 23:38:00 -05:00
),
array (
2012-04-27 20:17:58 -04:00
'label' => t ( 'Blocked' ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts/blocked' ,
2012-02-13 23:38:00 -05:00
'sel' => ( $blocked ) ? 'active' : '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Only show blocked contacts' ),
2012-02-13 23:38:00 -05:00
),
2012-02-14 01:48:35 -05:00
array (
2012-04-27 20:17:58 -04:00
'label' => t ( 'Ignored' ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts/ignored' ,
2012-02-14 01:48:35 -05:00
'sel' => ( $ignored ) ? 'active' : '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Only show ignored contacts' ),
2012-02-14 01:48:35 -05:00
),
2012-02-13 23:38:00 -05:00
array (
2012-04-27 20:17:58 -04:00
'label' => t ( 'Archived' ),
'url' => $a -> get_baseurl ( true ) . '/contacts/archived' ,
'sel' => ( $archived ) ? 'active' : '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Only show archived contacts' ),
2012-04-27 20:17:58 -04:00
),
array (
'label' => t ( 'Hidden' ),
2012-03-15 00:20:20 -04:00
'url' => $a -> get_baseurl ( true ) . '/contacts/hidden' ,
2012-02-13 23:38:00 -05:00
'sel' => ( $hidden ) ? 'active' : '' ,
2012-04-30 08:15:29 -04:00
'title' => t ( 'Only show hidden contacts' ),
2012-02-13 23:38:00 -05:00
),
2012-02-14 01:48:35 -05:00
2012-02-13 23:38:00 -05:00
);
$tab_tpl = get_markup_template ( 'common_tabs.tpl' );
$t = replace_macros ( $tab_tpl , array ( '$tabs' => $tabs ));
2010-08-17 21:44:13 -04:00
2012-06-20 19:05:46 -04:00
$searching = false ;
2012-02-14 01:48:35 -05:00
if ( $search ) {
$search_hdr = $search ;
2012-06-20 19:20:55 -04:00
$search_txt = dbesc ( protect_sprintf ( preg_quote ( $search )));
2012-06-20 19:05:46 -04:00
$searching = true ;
2012-02-14 01:48:35 -05:00
}
2012-06-20 19:20:55 -04:00
$sql_extra .= (( $searching ) ? " AND `name` REGEXP ' $search_txt ' " : " " );
2010-08-17 21:44:13 -04:00
2012-02-12 00:39:51 -05:00
if ( $nets )
$sql_extra .= sprintf ( " AND network = '%s' " , dbesc ( $nets ));
2011-08-07 19:15:54 -04:00
$sql_extra2 = ((( $sort_type > 0 ) && ( $sort_type <= CONTACT_IS_FRIEND )) ? sprintf ( " AND `rel` = %d " , intval ( $sort_type )) : '' );
2010-08-17 21:44:13 -04:00
2010-09-21 23:52:13 -04:00
2010-07-30 09:09:20 -04:00
$r = q ( " SELECT COUNT(*) AS `total` FROM `contact`
2012-03-13 19:02:20 -04:00
WHERE `uid` = % d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 " ,
2010-07-30 09:09:20 -04:00
intval ( $_SESSION [ 'uid' ]));
2012-03-09 05:50:57 -05:00
if ( count ( $r )) {
2010-07-30 09:09:20 -04:00
$a -> set_pager_total ( $r [ 0 ][ 'total' ]);
2012-03-09 05:50:57 -05:00
$total = $r [ 0 ][ 'total' ];
}
2012-02-13 23:38:00 -05:00
2012-03-13 19:02:20 -04:00
$r = q ( " SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ORDER BY `name` ASC LIMIT %d , %d " ,
2010-08-17 21:44:13 -04:00
intval ( $_SESSION [ 'uid' ]),
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
2010-07-01 19:48:07 -04:00
2012-02-23 05:22:32 -05:00
$contacts = array ();
2010-07-01 19:48:07 -04:00
2012-02-23 05:22:32 -05:00
if ( count ( $r )) {
2010-07-01 19:48:07 -04:00
foreach ( $r as $rr ) {
2010-09-08 23:14:17 -04:00
switch ( $rr [ 'rel' ]) {
2011-08-07 19:15:54 -04:00
case CONTACT_IS_FRIEND :
2010-07-02 21:37:43 -04:00
$dir_icon = 'images/lrarrow.gif' ;
2010-07-28 01:32:21 -04:00
$alt_text = t ( 'Mutual Friendship' );
2010-09-08 23:14:17 -04:00
break ;
2011-08-07 19:15:54 -04:00
case CONTACT_IS_FOLLOWER ;
2010-07-06 00:39:55 -04:00
$dir_icon = 'images/larrow.gif' ;
2010-07-28 01:32:21 -04:00
$alt_text = t ( 'is a fan of yours' );
2010-09-08 23:14:17 -04:00
break ;
2011-08-07 19:15:54 -04:00
case CONTACT_IS_SHARING ;
2010-09-08 23:14:17 -04:00
$dir_icon = 'images/rarrow.gif' ;
$alt_text = t ( 'you are a fan of' );
break ;
default :
break ;
2010-07-02 21:37:43 -04:00
}
2010-10-18 03:43:49 -04:00
if (( $rr [ 'network' ] === 'dfrn' ) && ( $rr [ 'rel' ])) {
2010-09-27 22:48:45 -04:00
$url = " redir/ { $rr [ 'id' ] } " ;
$sparkle = ' class="sparkle" ' ;
}
else {
$url = $rr [ 'url' ];
$sparkle = '' ;
}
2012-02-23 05:22:32 -05:00
$contacts [] = array (
'img_hover' => sprintf ( t ( 'Visit %s\'s profile [%s]' ), $rr [ 'name' ], $rr [ 'url' ]),
'edit_hover' => t ( 'Edit contact' ),
'photo_menu' => contact_photo_menu ( $rr ),
'id' => $rr [ 'id' ],
'alt_text' => $alt_text ,
'dir_icon' => $dir_icon ,
'thumb' => $rr [ 'thumb' ],
'name' => $rr [ 'name' ],
'username' => $rr [ 'name' ],
'sparkle' => $sparkle ,
2012-02-27 12:48:59 -05:00
'itemurl' => $rr [ 'url' ],
2012-02-27 21:46:11 -05:00
'url' => $url ,
2012-02-27 12:48:59 -05:00
'network' => network_to_name ( $rr [ 'network' ]),
2012-02-23 05:22:32 -05:00
);
2010-07-01 19:48:07 -04:00
}
2011-01-07 06:15:52 -05:00
2012-02-23 05:22:32 -05:00
2010-07-30 09:09:20 -04:00
2010-07-01 19:48:07 -04:00
}
2012-02-23 05:22:32 -05:00
$tpl = get_markup_template ( " contacts-template.tpl " );
2012-12-22 14:57:29 -05:00
$includes = array (
'$contact_template' => 'contact_template.tpl' ,
);
$includes = set_template_includes ( $a -> theme [ 'template_engine' ], $includes );
$o .= replace_macros ( $tpl , $includes + array (
2012-02-23 05:22:32 -05:00
'$header' => t ( 'Contacts' ) . (( $nets ) ? ' - ' . network_to_name ( $nets ) : '' ),
'$tabs' => $t ,
2012-03-09 05:50:57 -05:00
'$total' => $total ,
2012-02-23 05:22:32 -05:00
'$search' => $search_hdr ,
'$desc' => t ( 'Search your contacts' ),
2012-06-20 19:20:55 -04:00
'$finding' => (( $searching ) ? t ( 'Finding: ' ) . " ' " . $search . " ' " : " " ),
2012-02-23 05:22:32 -05:00
'$submit' => t ( 'Find' ),
'$cmd' => $a -> cmd ,
'$contacts' => $contacts ,
'$paginate' => paginate ( $a ),
));
2010-07-01 19:48:07 -04:00
return $o ;
2011-05-23 05:39:57 -04:00
}