diff --git a/database.sql b/database.sql index 9115c33..55dcaeb 100644 --- a/database.sql +++ b/database.sql @@ -62,6 +62,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `last-update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `priority` tinyint(3) NOT NULL, `blocked` tinyint(1) NOT NULL DEFAULT '1', + `readonly` tinyint(1) NOT NULL DEFAULT '0', `pending` tinyint(1) NOT NULL DEFAULT '1', `rating` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-5 reputation, 0 unknown, 1 call police, 5 inscrutable', `reason` text NOT NULL COMMENT 'why a rating was given - will help friends decide to make friends or not', diff --git a/images/no.gif b/images/no.gif new file mode 100644 index 0000000..eb0f2b0 Binary files /dev/null and b/images/no.gif differ diff --git a/include/notifier.php b/include/notifier.php index 6986deb..25a082a 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -15,7 +15,7 @@ require_once("datetime.php"); if($argc < 3) exit; -//dbg(3); +dbg(3); $baseurl = $argv[1]; $a->set_baseurl($argv[1]); @@ -215,12 +215,14 @@ if($argc < 3) // delivery loop foreach($r as $rr) { - if($rr['self']) continue; if(! strlen($rr['dfrn-id'])) continue; + + + $url = $rr['notify'] . '?dfrn_id=' . $rr['dfrn-id']; $xml = fetch_url($url); @@ -240,7 +242,7 @@ echo $xml; openssl_public_decrypt($challenge,$postvars['challenge'],$rr['pubkey']); - if(strlen($rr['dfrn-id']) && (! $rr['blocked'])) + if(strlen($rr['dfrn-id']) && (! ($rr['blocked']) || ($rr['readonly']))) $postvars['data'] = $atom; else $postvars['data'] = $atom_nowrite; diff --git a/include/poller.php b/include/poller.php index c7108d1..d1fc898 100644 --- a/include/poller.php +++ b/include/poller.php @@ -95,7 +95,7 @@ echo "Length:" . strlen($xml) . "\r\n"; if(count($r)) { if($r[0]['uri'] == $r[0]['parent-uri']) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s' - WHERE `parent-uri` = '%s'" + WHERE `parent-uri` = '%s'", dbesc($when), dbesc($r[0]['uri']) ); diff --git a/mod/contacts.php b/mod/contacts.php index c2a1d53..6f7f978 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -36,7 +36,7 @@ function contacts_post(&$a) { intval($_SESSION['uid']) ); if(! count($r)) { - notice("Cannot locate selected profile." . EOL); + notice( t('Could not locate selected profile.') . EOL); return; } } @@ -55,9 +55,9 @@ function contacts_post(&$a) { intval($_SESSION['uid']) ); if($r) - notice("Contact updated." . EOL); + notice( t('Contact updated.') . EOL); else - notice("Failed to update contact record." . EOL); + notice( t('Failed to update contact record.') . EOL); return; } @@ -67,7 +67,7 @@ function contacts_post(&$a) { function contacts_content(&$a) { if(! local_user()) { - $_SESSION['sysmsg'] .= "Permission denied." . EOL; + notice( t('Permission denied.') . EOL); return; } @@ -85,7 +85,7 @@ function contacts_content(&$a) { ); if(! count($orig_record)) { - notice("Could not access contact record." . EOL); + notice( t('Could not access contact record.') . EOL); goaway($a->get_baseurl() . '/contacts'); return; // NOTREACHED } @@ -105,7 +105,22 @@ function contacts_content(&$a) { intval($_SESSION['uid']) ); if($r) { - $msg = "Contact has been " . (($blocked) ? '' : 'un') . "blocked." . EOL ; + $msg = t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL ; + notice($msg); + } + goaway($a->get_baseurl() ."/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($_SESSION['uid']) + ); + if($r) { + $msg = t('Contact has been ') . (($readonly) ? t('ignored') : t('unignored')) . EOL ; notice($msg); } goaway($a->get_baseurl() ."/contacts/$contact_id"); @@ -143,7 +158,7 @@ function contacts_content(&$a) { intval($contact_id) ); if(! count($r)) { - notice("Contact not found."); + notice( t('Contact not found.') . EOL); return; } @@ -156,25 +171,26 @@ function contacts_content(&$a) { if(strlen($r[0]['dfrn-id'])) { $direction = DIRECTION_BOTH; $dir_icon = 'images/lrarrow.gif'; - $alt_text = 'Mutual Friendship'; + $alt_text = t('Mutual Friendship'); } else { $direction = DIRECTION_IN; $dir_icon = 'images/larrow.gif'; - $alt_text = 'is a fan of yours'; + $alt_text = t('is a fan of yours'); } } else { $direction = DIRECTION_OUT; $dir_icon = 'images/rarrow.gif'; - $alt_text = 'you are a fan of'; + $alt_text = t('you are a fan of'); } $o .= replace_macros($tpl,array( '$profile_select' => contact_profile_assign($r[0]['profile-id']), '$contact_id' => $r[0]['id'], - '$block_text' => (($r[0]['blocked']) ? 'Unblock this contact' : 'Block this contact' ), - '$blocked' => (($r[0]['blocked']) ? '
Currently blocked
' : ''), + '$block_text' => (($r[0]['blocked']) ? t('Unblock this contact') : t('Block this contact') ), + '$ignore_text' => (($r[0]['readonly']) ? t('Unignore this contact') : t('Ignore this contact') ), + '$blocked' => (($r[0]['blocked']) ? '
' . t('Currently blocked') . '
' : ''), '$rating' => contact_reputation($r[0]['rating']), '$reason' => $r[0]['reason'], '$groups' => '', // group_selector(), @@ -198,7 +214,7 @@ function contacts_content(&$a) { $tpl = file_get_contents("view/contacts-top.tpl"); $o .= replace_macros($tpl,array( '$hide_url' => ((strlen($sql_extra)) ? 'contacts/all' : 'contacts' ), - '$hide_text' => ((strlen($sql_extra)) ? 'Show Blocked Connections' : 'Hide Blocked Connections') + '$hide_text' => ((strlen($sql_extra)) ? t('Show Blocked Connections') : t('Hide Blocked Connections')) )); switch($sort_type) { @@ -232,18 +248,18 @@ function contacts_content(&$a) { if(strlen($rr['dfrn-id'])) { $direction = DIRECTION_BOTH; $dir_icon = 'images/lrarrow.gif'; - $alt_text = 'Mutual Friendship'; + $alt_text = t('Mutual Friendship'); } else { $direction = DIRECTION_IN; $dir_icon = 'images/larrow.gif'; - $alt_text = 'is a fan of yours'; + $alt_text = t('is a fan of yours'); } } else { $direction = DIRECTION_OUT; $dir_icon = 'images/rarrow.gif'; - $alt_text = 'you are a fan of'; + $alt_text = t('you are a fan of'); } $o .= replace_macros($tpl, array( diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index ecab9ea..4d73460 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -5,7 +5,7 @@ require_once('include/items.php'); function dfrn_notify_post(&$a) { - +dbg(3); $dfrn_id = notags(trim($_POST['dfrn_id'])); $challenge = notags(trim($_POST['challenge'])); $data = $_POST['data']; @@ -26,10 +26,19 @@ function dfrn_notify_post(&$a) { $r = q("SELECT `id`, `uid` FROM `contact` WHERE `issued-id` = '%s' LIMIT 1", dbesc($dfrn_id) ); - if(! count($r)) + if(! count($r)) { xml_status(3); + return; //NOTREACHED + } + // We aren't really interested in anything this person has to say. But be polite and make them + // think we're listening intently by acknowledging receipt of their communications - which we quietly ignore. + if($r[0]['readonly']) { + xml_status(0); + return; //NOTREACHED + } + $importer = $r[0]; $feed = new SimplePie(); @@ -60,7 +69,7 @@ function dfrn_notify_post(&$a) { if(count($r)) { if($r[0]['uri'] == $r[0]['parent-uri']) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s' - WHERE `parent-uri` = '%s'" + WHERE `parent-uri` = '%s'", dbesc($when), dbesc($r[0]['uri']) ); diff --git a/mod/item.php b/mod/item.php index 71d8afd..49067d9 100644 --- a/mod/item.php +++ b/mod/item.php @@ -96,8 +96,12 @@ function item_post(&$a) { $post_type == notags(trim($_POST['type'])); if($post_type == 'net-comment') { - if($parent_item !== null && $parent_item['type'] != 'remote') - $post_type = 'wall-comment'; + if($parent_item !== null) { + if($parent_item['type'] == 'remote') + $post_type = 'remote-comment'; + else + $post_type = 'wall-comment'; + } } $notify_type = (($parent) ? 'comment-new' : 'wall-new' ); diff --git a/view/contact_edit.tpl b/view/contact_edit.tpl index bfeb107..e1cffc4 100644 --- a/view/contact_edit.tpl +++ b/view/contact_edit.tpl @@ -17,6 +17,7 @@