From fa154248dcd62677544aa9ac7d82ddcd3df92f6e Mon Sep 17 00:00:00 2001 From: Mike Macgirvin Date: Tue, 27 Jul 2010 22:32:21 -0700 Subject: [PATCH] working on readonly contact attribute --- database.sql | 1 + images/no.gif | Bin 0 -> 631 bytes include/notifier.php | 8 ++++--- include/poller.php | 2 +- mod/contacts.php | 48 ++++++++++++++++++++++++++++-------------- mod/dfrn_notify.php | 15 ++++++++++--- mod/item.php | 8 +++++-- view/contact_edit.tpl | 1 + 8 files changed, 58 insertions(+), 25 deletions(-) create mode 100644 images/no.gif diff --git a/database.sql b/database.sql index 9115c33150..55dcaeb131 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 0000000000000000000000000000000000000000..eb0f2b0e9296cf8e0a661b6ee4b4513f07507478 GIT binary patch literal 631 zcmV--0*L)bNk%w1VGsZi0LFg+#V04jDJjb-Dc372&@L|2EiKwDEyFZ4yE;1NG&He8 zL%Tsi&OJTFKtS9*J?J_*#Y#%%LPE<;P3lEOzfn=(OG~v^SJP2ZseXQVPULnZ0uZI0x2*U|_{-Yrk%8(rIb%Vq)28X`p#|>SkuIc6Q8fZ?kuI#&dJ;XlUeX zYw>7kv3h#qZEd!BdB1mebhLqi#D9OOh=|gCeZ_-= zu!)J_etxcvji--~w~mgnl9J|xgshg9xRjK&mzTqol-QAxy_uP_pP#&*p0}c+y``nX zs;a`SuEDXf!o0liu(0O5yv@YK(8$R0zrWhY$MM6%(a+D-&d%4;(%;?P;@{upT^ZNAk_V)Jq`T6_%`~Uy{A^8LW004ggEC2ui z01yBW000NnfPaF2c41FRPFrSqgN+8683`GK zd?ybeae`7mP8|~@f_^6h5O9N4HAgBRB7c540t;=8KwdDpVgiGjB?bset_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 c7108d13c0..d1fc898d58 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 c2a1d53380..6f7f978aae 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 ecab9ea72a..4d73460005 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 71d8afd244..49067d940b 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 bfeb107170..e1cffc460a 100644 --- a/view/contact_edit.tpl +++ b/view/contact_edit.tpl @@ -17,6 +17,7 @@