diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/diaspora.php | 8 | ||||
-rw-r--r-- | include/group.php | 28 | ||||
-rw-r--r-- | include/items.php | 55 | ||||
-rw-r--r-- | include/notifier.php | 8 |
4 files changed, 69 insertions, 30 deletions
diff --git a/include/diaspora.php b/include/diaspora.php index 2051de5fc..3f2cdf8e4 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -569,6 +569,14 @@ function diaspora_request($importer,$xml) { return; } + $g = q("select def_gid from user where uid = %d limit 1", + intval($importer['uid']) + ); + if($g && intval($g[0]['def_gid'])) { + require_once('include/group.php'); + group_add_member($importer['uid'],'',$contact_record['id'],$g[0]['def_gid']); + } + if($importer['page-flags'] == PAGE_NORMAL) { $hash = random_string() . (string) time(); // Generate a confirm_key diff --git a/include/group.php b/include/group.php index edb547de6..cc6540b31 100644 --- a/include/group.php +++ b/include/group.php @@ -97,8 +97,9 @@ function group_rmv_member($uid,$name,$member) { } -function group_add_member($uid,$name,$member) { - $gid = group_byname($uid,$name); +function group_add_member($uid,$name,$member,$gid = 0) { + if(! $gid) + $gid = group_byname($uid,$name); if((! $gid) || (! $uid) || (! $member)) return false; @@ -154,6 +155,29 @@ function group_public_members($gid) { } +function mini_group_select($uid,$gid = 0) { + + $grps = array(); + $o = ''; + + $r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC", + intval($uid) + ); + $grps[] = array('name' => '', 'id' => '0', 'selected' => ''); + if(count($r)) { + foreach($r as $rr) { + $grps[] = array('name' => $rr['name'], 'id' => $rr['id'], 'selected' => (($gid == $rr['id']) ? 'true' : '')); + } + + } + logger('groups: ' . print_r($grps,true)); + + $o = replace_macros(get_markup_template('group_selection.tpl'), array('$groups' => $grps )); + return $o; +} + + + function group_side($every="contacts",$each="group",$edit = false, $group_id = 0, $cid = 0) { diff --git a/include/items.php b/include/items.php index ac7580cc1..91c9056fe 100644 --- a/include/items.php +++ b/include/items.php @@ -988,33 +988,31 @@ function tag_deliver($uid,$item_id) { } } - if((! $mention) && (! $prvgroup)) + if(! $mention) return; - if($mention) { + // send a notification + + require_once('include/enotify.php'); + notification(array( + 'type' => NOTIFY_TAGSELF, + 'notify_flags' => $u[0]['notify-flags'], + 'language' => $u[0]['language'], + 'to_name' => $u[0]['username'], + 'to_email' => $u[0]['email'], + 'uid' => $u[0]['uid'], + 'item' => $item, + 'link' => $a->get_baseurl() . '/display/' . $u[0]['nickname'] . '/' . $item['id'], + 'source_name' => $item['author-name'], + 'source_link' => $item['author-link'], + 'source_photo' => $item['author-avatar'], + 'verb' => ACTIVITY_TAG, + 'otype' => 'item' + )); - // send a notification + if((! $community_page) && (! prvgroup)) + return; - require_once('include/enotify.php'); - notification(array( - 'type' => NOTIFY_TAGSELF, - 'notify_flags' => $u[0]['notify-flags'], - 'language' => $u[0]['language'], - 'to_name' => $u[0]['username'], - 'to_email' => $u[0]['email'], - 'uid' => $u[0]['uid'], - 'item' => $item, - 'link' => $a->get_baseurl() . '/display/' . $u[0]['nickname'] . '/' . $item['id'], - 'source_name' => $item['author-name'], - 'source_link' => $item['author-link'], - 'source_photo' => $item['author-avatar'], - 'verb' => ACTIVITY_TAG, - 'otype' => 'item' - )); - - if(! $community_page) - return; - } // tgroup delivery - setup a second delivery chain // prevent delivery looping - only proceed @@ -1036,8 +1034,11 @@ function tag_deliver($uid,$item_id) { $private = ($u[0]['allow_cid'] || $u[0]['allow_gid'] || $u[0]['deny_cid'] || $u[0]['deny_gid']) ? 1 : 0; - q("update item set wall = 1, origin = 1, forum_mode = 1, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s', + $forum_mode = (($prvgroup) ? 2 : 1); + + q("update item set wall = 1, origin = 1, forum_mode = %d, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s', `private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' where id = %d limit 1", + intval($forum_mode), dbesc($c[0]['name']), dbesc($c[0]['url']), dbesc($c[0]['thumb']), @@ -2716,6 +2717,12 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { ); $a = get_app(); if(count($r)) { + + if(intval($r[0]['def_gid'])) { + require_once('include/group.php'); + group_add_member($r[0]['uid'],'',$contact_record['id'],$r[0]['def_gid']); + } + if(($r[0]['notify-flags'] & NOTIFY_INTRO) && ($r[0]['page-flags'] == PAGE_NORMAL)) { $email_tpl = get_intltext_template('follow_notify_eml.tpl'); $email = replace_macros($email_tpl, array( diff --git a/include/notifier.php b/include/notifier.php index 6ce281372..ea4a1bea8 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -220,7 +220,7 @@ function notifier_run($argv, $argc){ } - if(($cmd === 'uplink') && (intval($parent['forum_mode'])) && (! $top_level)) { + if(($cmd === 'uplink') && (intval($parent['forum_mode']) == 1) && (! $top_level)) { $relay_to_owner = true; } @@ -265,10 +265,10 @@ function notifier_run($argv, $argc){ $deny_people = expand_acl($parent['deny_cid']); $deny_groups = expand_groups(expand_acl($parent['deny_gid'])); - // if our parent is a forum, uplink to the origional author causing - // a delivery fork + // if our parent is a public forum (forum_mode == 1), uplink to the origional author causing + // a delivery fork. private groups (forum_mode == 2) do not uplink - if(intval($parent['forum_mode']) && (! $top_level) && ($cmd !== 'uplink')) { + if((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) { proc_run('php','include/notifier','uplink',$item_id); } |