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; } } require_once('include/group.php'); require_once('include/contact_widgets.php'); if(! x($a->page,'aside')) $a->page['aside'] = ''; if($contact_id) { $a->data['contact'] = $r[0]; $vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array( '$name' => $a->data['contact']['name'], '$photo' => $a->data['contact']['photo'] )); $follow_widget = ''; } else { $vcard_widget = ''; $follow_widget = follow_widget(); } $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 )); $base = $a->get_baseurl(); $tpl = get_markup_template("contacts-head.tpl"); $a->page['htmlhead'] .= replace_macros($tpl,array( '$baseurl' => $a->get_baseurl(true), '$base' => $base )); $tpl = get_markup_template("contacts-end.tpl"); $a->page['end'] .= replace_macros($tpl,array( '$baseurl' => $a->get_baseurl(true), '$base' => $base )); } function contacts_post(&$a) { if(! local_user()) return; $contact_id = intval($a->argv[1]); if(! $contact_id) return; $orig_record = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($contact_id), intval(local_user()) ); if(! count($orig_record)) { notice( t('Could not access contact record.') . EOL); goaway($a->get_baseurl(true) . '/contacts'); 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; $info = fix_mce_lf(escape_tags(trim($_POST['info']))); $r = q("UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `info` = '%s', `hidden` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($profile_id), intval($priority), dbesc($info), intval($hidden), intval($contact_id), intval(local_user()) ); if($r) info( t('Contact updated.') . EOL); else notice( t('Failed to update contact record.') . EOL); $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]; return; } function contacts_content(&$a) { $sort_type = 0; $o = ''; nav_set_selected('contacts'); if(! local_user()) { notice( t('Permission denied.') . EOL); return; } if($a->argc == 3) { $contact_id = intval($a->argv[1]); if(! $contact_id) return; $cmd = $a->argv[2]; $orig_record = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d AND `self` = 0 LIMIT 1", intval($contact_id), intval(local_user()) ); if(! count($orig_record)) { notice( t('Could not access contact record.') . EOL); goaway($a->get_baseurl(true) . '/contacts'); return; // NOTREACHED } if($cmd === 'update') { // pull feed and consume it, which should subscribe to the hub. proc_run('php',"include/poller.php","$contact_id"); goaway($a->get_baseurl(true) . '/contacts/' . $contact_id); // NOTREACHED } if($cmd === 'block') { $blocked = (($orig_record[0]['blocked']) ? 0 : 1); $r = q("UPDATE `contact` SET `blocked` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($blocked), intval($contact_id), intval(local_user()) ); if($r) { //notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL ); info( (($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')) . EOL ); } goaway($a->get_baseurl(true) . '/contacts/' . $contact_id); return; // NOTREACHED } if($cmd === 'ignore') { $readonly = (($orig_record[0]['readonly']) ? 0 : 1); $r = q("UPDATE `contact` SET `readonly` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($readonly), intval($contact_id), intval(local_user()) ); if($r) { info( (($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')) . EOL ); } goaway($a->get_baseurl(true) . '/contacts/' . $contact_id); return; // NOTREACHED } 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()) ); if ($archived) { q("UPDATE `item` SET `private` = 2 WHERE `contact-id` = %d AND `uid` = %d", intval($contact_id), intval(local_user())); } 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 } if($cmd === 'drop') { // Check if we should do HTML-based delete confirmation if($_REQUEST['confirm']) { //