diff options
author | friendica <info@friendica.com> | 2012-04-30 19:01:41 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-04-30 19:01:41 -0700 |
commit | 3c0cf727161d824dd166d3c9cd8bc42248780590 (patch) | |
tree | bfd2a1c9b3272a9da1200e76d0cefd61d0c7df3c /mod | |
parent | 88c77083e679ad06c58721df6d5766b1492f4c43 (diff) | |
download | volse-hubzilla-3c0cf727161d824dd166d3c9cd8bc42248780590.tar.gz volse-hubzilla-3c0cf727161d824dd166d3c9cd8bc42248780590.tar.bz2 volse-hubzilla-3c0cf727161d824dd166d3c9cd8bc42248780590.zip |
make 'aaa joined group bbb' work from the initiating end, new privacy pref to control it
also hidewall wasn't properly checked before sending 'xxx is friends with yyy' messages
Diffstat (limited to 'mod')
-rw-r--r-- | mod/dfrn_confirm.php | 103 | ||||
-rw-r--r-- | mod/settings.php | 6 |
2 files changed, 80 insertions, 29 deletions
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index f27c29daf..2b25095fd 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -435,13 +435,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $contact = null; - $forum_type = false; - if($user[0]['page-flags'] == PAGE_SOAPBOX || $user[0]['page-flags'] == PAGE_COMMUNITY) - $forum_type = true; + if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) { - if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND) || ($forum_type)) { - - if(($contact) && ($contact['network'] === NETWORK_DIASPORA) && (! $forum_type)) { + if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) { require_once('include/diaspora.php'); $ret = diaspora_share($user[0],$r[0]); logger('mod_follow: diaspora_share returns: ' . $ret); @@ -453,8 +449,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { intval($uid) ); - - if((count($r)) && ($activity) && (! $hidden)) { + if((count($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) { require_once('include/items.php'); @@ -482,28 +477,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $B = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'; $BPhoto = '[url=' . $contact['url'] . ']' . '[img]' . $contact['thumb'] . '[/img][/url]'; - if($forum_type) { - $arr['verb'] = ACTIVITY_JOIN; - $arr['object-type'] = ACTIVITY_OBJ_GROUP; - $arr['body'] = sprintf( t('%1$s welcomes new member %2$s'), $A, $B)."\n\n\n" .$BPhoto; - $arr['object'] = '<object><type>' . ACTIVITY_OBJ_GROUP . '</type><title>' . $self[0]['name'] . '</title>' - . '<id>' . $self[0]['url'] . '/' . $self[0]['name'] . '</id>'; - $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $self[0]['url'] . '" />' . "\n"); - $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $self[0]['thumb'] . '" />' . "\n"); - $arr['object'] .= '</link></object>' . "\n"; - } - else { - $arr['verb'] = ACTIVITY_FRIEND; - $arr['object-type'] = ACTIVITY_OBJ_PERSON; - $arr['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto; - - $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $contact['name'] . '</title>' - . '<id>' . $contact['url'] . '/' . $contact['name'] . '</id>'; - $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />' . "\n"); - $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $contact['thumb'] . '" />' . "\n"); - $arr['object'] .= '</link></object>' . "\n"; - } + $arr['verb'] = ACTIVITY_FRIEND; + $arr['object-type'] = ACTIVITY_OBJ_PERSON; + $arr['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto; + $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $contact['name'] . '</title>' + . '<id>' . $contact['url'] . '/' . $contact['name'] . '</id>'; + $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />' . "\n"); + $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $contact['thumb'] . '" />' . "\n"); + $arr['object'] .= '</link></object>' . "\n"; $arr['last-child'] = 1; @@ -734,6 +716,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) { WHERE `contact`.`id` = %d LIMIT 1", intval($dfrn_record) ); + + if(count($r)) + $combined = $r[0]; + if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) { push_lang($r[0]['language']); @@ -762,6 +748,65 @@ function dfrn_confirm_post(&$a,$handsfree = null) { } pop_lang(); } + + // Send a new friend post if we are allowed to... + + if($page && intval(get_pconfig($local_uid,'system','post_joingroup'))) { + $r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1", + intval($local_uid) + ); + + if((count($r)) && ($r[0]['hide-friends'] == 0)) { + + require_once('include/items.php'); + + $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", + intval($local_uid) + ); + + if(count($self)) { + + $arr = array(); + $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $local_uid); + $arr['uid'] = $local_uid; + $arr['contact-id'] = $self[0]['id']; + $arr['wall'] = 1; + $arr['type'] = 'wall'; + $arr['gravity'] = 0; + $arr['origin'] = 1; + $arr['author-name'] = $arr['owner-name'] = $self[0]['name']; + $arr['author-link'] = $arr['owner-link'] = $self[0]['url']; + $arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb']; + + $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]'; + $APhoto = '[url=' . $self[0]['url'] . ']' . '[img]' . $self[0]['thumb'] . '[/img][/url]'; + + $B = '[url=' . $combined['url'] . ']' . $combined['name'] . '[/url]'; + $BPhoto = '[url=' . $combined['url'] . ']' . '[img]' . $combined['thumb'] . '[/img][/url]'; + + $arr['verb'] = ACTIVITY_JOIN; + $arr['object-type'] = ACTIVITY_OBJ_GROUP; + $arr['body'] = sprintf( t('%1$s has joined %2$s'), $A, $B)."\n\n\n" .$BPhoto; + $arr['object'] = '<object><type>' . ACTIVITY_OBJ_GROUP . '</type><title>' . $combined['name'] . '</title>' + . '<id>' . $combined['url'] . '/' . $combined['name'] . '</id>'; + $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $combined['url'] . '" />' . "\n"); + $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $combined['thumb'] . '" />' . "\n"); + $arr['object'] .= '</link></object>' . "\n"; + + $arr['last-child'] = 1; + + $arr['allow_cid'] = $user[0]['allow_cid']; + $arr['allow_gid'] = $user[0]['allow_gid']; + $arr['deny_cid'] = $user[0]['deny_cid']; + $arr['deny_gid'] = $user[0]['deny_gid']; + + $i = item_store($arr); + if($i) + proc_run('php',"include/notifier.php","activity","$i"); + + } + } + } xml_status(0); // Success return; // NOTREACHED diff --git a/mod/settings.php b/mod/settings.php index 3072d3d65..5f5b2ab2e 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -352,6 +352,7 @@ function settings_post(&$a) { $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); $hidewall = (($_POST['hidewall'] == 1) ? 1: 0); $post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0); + $post_joingroup = (($_POST['post_joingroup'] == 1) ? 1: 0); $post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0); @@ -436,6 +437,7 @@ function settings_post(&$a) { set_pconfig(local_user(),'system','suggestme', $suggestme); set_pconfig(local_user(),'system','post_newfriend', $post_newfriend); + set_pconfig(local_user(),'system','post_joingroup', $post_joingroup); set_pconfig(local_user(),'system','post_profilechange', $post_profilechange); @@ -802,6 +804,9 @@ function settings_content(&$a) { $post_newfriend = get_pconfig(local_user(), 'system','post_newfriend'); $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0 + $post_joingroup = get_pconfig(local_user(), 'system','post_joingroup'); + $post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0 + $post_profilechange = get_pconfig(local_user(), 'system','post_profilechange'); $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0 @@ -976,6 +981,7 @@ function settings_content(&$a) { '$h_not' => t('Notification Settings'), '$activity_options' => t('By default post a status message when:'), '$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, ''), + '$post_joingroup' => array('post_joingroup', t('joining a forum/community'), $post_joingroup, ''), '$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, ''), '$lbl_not' => t('Send a notification email when:'), '$notify1' => array('notify1', t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''), |