Browse Source

working on readonly contact attribute

tags/2.1
Mike Macgirvin 10 years ago
parent
commit
fa154248dc
8 changed files with 58 additions and 25 deletions
  1. +1
    -0
      database.sql
  2. BIN
      images/no.gif
  3. +5
    -3
      include/notifier.php
  4. +1
    -1
      include/poller.php
  5. +32
    -16
      mod/contacts.php
  6. +12
    -3
      mod/dfrn_notify.php
  7. +6
    -2
      mod/item.php
  8. +1
    -0
      view/contact_edit.tpl

+ 1
- 0
database.sql View File

@@ -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',


BIN
images/no.gif View File

Before After
Width: 16  |  Height: 16  |  Size: 631 B

+ 5
- 3
include/notifier.php View File

@@ -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;


+ 1
- 1
include/poller.php View File

@@ -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'])
);


+ 32
- 16
mod/contacts.php View File

@@ -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']) ? '<div id="block-message">Currently blocked</div>' : ''),
'$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']) ? '<div id="block-message">' . t('Currently blocked') . '</div>' : ''),
'$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(


+ 12
- 3
mod/dfrn_notify.php View File

@@ -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'])
);


+ 6
- 2
mod/item.php View File

@@ -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' );


+ 1
- 0
view/contact_edit.tpl View File

@@ -17,6 +17,7 @@

<div id="contact-edit-links" >
<a href="contacts/$contact_id/block" id="contact-edit-block-link" ><img src="images/b_block.gif" alt="Block/Unblock contact" title="$block_text"/></a>
<a href="contacts/$contact_id/ignore" id="contact-edit-ignore-link" ><img src="images/no.gif" alt="Ignore contact" title="$ignore_text"/></a>
<a href="contacts/$contact_id/drop" id="contact-edit-drop-link" onclick="return confirmDelete();" ><img src="images/b_drophide.gif" alt="Delete contact" title="Delete contact" onmouseover="imgbright(this);" onmouseout="imgdull(this);" /></a>
</div>
<div id="contact-edit-nav-end"></div>


Loading…
Cancel
Save