diff options
author | Fabio Comuni <fabrix.xm@gmail.com> | 2012-04-13 11:59:25 +0200 |
---|---|---|
committer | Fabio Comuni <fabrix.xm@gmail.com> | 2012-04-13 11:59:25 +0200 |
commit | f6e1ddf7fbcc122f5122336650e1cfaa71aed8e3 (patch) | |
tree | feddc7956054f7966e2f4ebd4231df20e9e31fee /mod | |
parent | 469710893da118d9fd174d69cc47069541bafe7b (diff) | |
parent | df1904b204a969780609cac64bbb1a03a8dd3fcb (diff) | |
download | volse-hubzilla-f6e1ddf7fbcc122f5122336650e1cfaa71aed8e3.tar.gz volse-hubzilla-f6e1ddf7fbcc122f5122336650e1cfaa71aed8e3.tar.bz2 volse-hubzilla-f6e1ddf7fbcc122f5122336650e1cfaa71aed8e3.zip |
Merge remote-tracking branch 'friendica/master'
Diffstat (limited to 'mod')
-rw-r--r-- | mod/nogroup.php | 65 | ||||
-rw-r--r-- | mod/notifications.php | 2 | ||||
-rw-r--r-- | mod/profiles.php | 102 | ||||
-rw-r--r-- | mod/settings.php | 14 |
4 files changed, 179 insertions, 4 deletions
diff --git a/mod/nogroup.php b/mod/nogroup.php new file mode 100644 index 000000000..bd1ec82ed --- /dev/null +++ b/mod/nogroup.php @@ -0,0 +1,65 @@ +<?php + +require_once('include/Contact.php'); +require_once('include/socgraph.php'); +require_once('include/contact_selectors.php'); + +function nogroup_init(&$a) { + + if(! local_user()) + return; + + require_once('include/group.php'); + require_once('include/contact_widgets.php'); + + if(! x($a->page,'aside')) + $a->page['aside'] = ''; + + $a->page['aside'] .= group_side('contacts','group',false,0,$contact_id); +} + + +function nogroup_content(&$a) { + + if(! local_user()) { + notice( t('Permission denied.') . EOL); + return ''; + } + + require_once('include/Contact.php'); + $r = contacts_not_grouped(local_user()); + if(count($r)) { + $a->set_pager_total($r[0]['total']); + } + $r = contacts_not_grouped(local_user(),$a->pager['start'],$a->pager['itemspage']); + if(count($r)) { + foreach($r as $rr) { + + + $contacts[] = array( + 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']), + 'edit_hover' => t('Edit contact'), + 'photo_menu' => contact_photo_menu($rr), + 'id' => $rr['id'], + 'alt_text' => $alt_text, + 'dir_icon' => $dir_icon, + 'thumb' => $rr['thumb'], + 'name' => $rr['name'], + 'username' => $rr['name'], + 'sparkle' => $sparkle, + 'itemurl' => $rr['url'], + 'url' => $url, + 'network' => network_to_name($rr['network']), + ); + } + } + $tpl = get_markup_template("nogroup-template.tpl"); + $o .= replace_macros($tpl,array( + '$header' => t('Contacts who are not members of a group'), + '$contacts' => $contacts, + '$paginate' => paginate($a), + )); + + return $o; + +} diff --git a/mod/notifications.php b/mod/notifications.php index 690a99562..8e3eebba1 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -198,7 +198,7 @@ function notifications_content(&$a) { '$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/person-175.jpg"), '$fullname' => $rr['name'], '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), - '$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')), + '$activity' => array('activity', t('Post a new friend activity'), get_config('system','post_newfriend'), t('if applicable')), '$url' => zrl($rr['url']), '$knowyou' => $knowyou, '$approve' => t('Approve'), diff --git a/mod/profiles.php b/mod/profiles.php index eef58bb06..7a33a03e4 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -51,6 +51,7 @@ function profiles_post(&$a) { if($orig[0]['name'] != $name) $namechanged = true; + $pdesc = notags(trim($_POST['pdesc'])); $gender = notags(trim($_POST['gender'])); $address = notags(trim($_POST['address'])); @@ -61,15 +62,16 @@ function profiles_post(&$a) { $pub_keywords = notags(trim($_POST['pub_keywords'])); $prv_keywords = notags(trim($_POST['prv_keywords'])); $marital = notags(trim($_POST['marital'])); - if($marital != $orig[0]['marital']) - $maritalchanged = true; $with = ((x($_POST,'with')) ? notags(trim($_POST['with'])) : ''); // linkify the relationship target if applicable + $withchanged = false; + if(strlen($with)) { if($with != strip_tags($orig[0]['with'])) { + $withchanged = true; $prf = ''; $lookup = $with; if(strpos($lookup,'@') === 0) @@ -134,6 +136,27 @@ function profiles_post(&$a) { $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); + + + $changes = array(); + if($is_default) { + if($marital != $orig[0]['marital']) $changes[] = '♥ ' . t('Marital Status'); + if($withchanged) $changes[] = '♥ ' . t('Romantic Partner'); + if($work != $orig[0]['work']) $changes[] = t('Work/Employment'); + if($religion != $orig[0]['religion']) $changes[] = t('Religion'); + if($politic != $orig[0]['politic']) $changes[] = t('Political Views'); + if($gender != $orig[0]['gender']) $changes[] = t('Gender'); + if($sexual != $orig[0]['sexual']) $changes[] = t('Sexual Preference'); + if($homepage != $orig[0]['homepage']) $changes[] = t('Homepage'); + if($interest != $orig[0]['interest']) $changes[] = t('Interests'); + if($address != $orig[0]['address'] || $locality != $orig[0]['locality'] || $region != $orig[0]['region'] + || $country_name != $orig[0]['country_name']) + $changes[] = t('Location'); + + profile_activity($changes); + + } + $r = q("UPDATE `profile` SET `profile-name` = '%s', `name` = '%s', @@ -195,7 +218,7 @@ function profiles_post(&$a) { dbesc($education), intval($hide_friends), intval($a->argv[1]), - intval($_SESSION['uid']) + intval(local_user()) ); if($r) @@ -222,6 +245,79 @@ function profiles_post(&$a) { } +function profile_activity($changed) { + $a = get_app(); + + if(! local_user() || ! is_array($changed) || ! count($changed)) + return; + + if($a->user['hidewall'] || get_config('system','block_public')) + return; + + if(! get_pconfig(local_user(),'system','post_profilechange')) + return; + + require_once('include/items.php'); + + $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", + intval(local_user()) + ); + + if(! count($self)) + return; + + $arr = array(); + $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), local_user()); + $arr['uid'] = local_user(); + $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']; + $arr['verb'] = ACTIVITY_UPDATE; + $arr['object-type'] = ACTIVITY_OBJ_PROFILE; + + $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]'; + + + $changes = ''; + $t = count($changed); + $z = 0; + foreach($changed as $ch) { + if(strlen($changes)) { + if ($z == ($t - 1)) + $changes .= ' and '; + else + $changes .= ', '; + } + $z ++; + $changes .= $ch; + } + + $prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]'; + + $arr['body'] = sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes); + + $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PROFILE . '</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'] . '?tab=profile' . '" />' . "\n"); + $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $self[0]['thumb'] . '" />' . "\n"); + $arr['object'] .= '</link></object>' . "\n"; + $arr['last-child'] = 1; + + $arr['allow_cid'] = $a->user['allow_cid']; + $arr['allow_gid'] = $a->user['allow_gid']; + $arr['deny_cid'] = $a->user['deny_cid']; + $arr['deny_gid'] = $a->user['deny_gid']; + + $i = item_store($arr); + if($i) + proc_run('php',"include/notifier.php","activity","$i"); + +} function profiles_content(&$a) { diff --git a/mod/settings.php b/mod/settings.php index 2dd9fb9a6..721468437 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -346,6 +346,8 @@ function settings_post(&$a) { $suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0); $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); $hidewall = (($_POST['hidewall'] == 1) ? 1: 0); + $post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0); + $post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0); $notify = 0; @@ -428,6 +430,8 @@ function settings_post(&$a) { set_pconfig(local_user(),'expire','photos', $expire_photos); set_pconfig(local_user(),'system','suggestme', $suggestme); + set_pconfig(local_user(),'system','post_newfriend', $post_newfriend); + set_pconfig(local_user(),'system','post_profilechange', $post_profilechange); $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d WHERE `uid` = %d LIMIT 1", @@ -790,6 +794,11 @@ function settings_content(&$a) { $suggestme = get_pconfig(local_user(), 'system','suggestme'); $suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0 + $post_newfriend = get_pconfig(local_user(), 'system','post_newfriend'); + $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // 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 if(! strlen($a->user['timezone'])) @@ -878,6 +887,8 @@ function settings_content(&$a) { )); + + $invisible = (((! $profile['publish']) && (! $profile['net-publish'])) ? true : false); @@ -958,6 +969,9 @@ 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_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, ''), '$notify2' => array('notify2', t('Your introductions are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, ''), |