]> git.mxchange.org Git - friendica.git/commitdiff
profile change activities
authorfriendica <info@friendica.com>
Fri, 13 Apr 2012 04:10:32 +0000 (21:10 -0700)
committerfriendica <info@friendica.com>
Fri, 13 Apr 2012 04:10:32 +0000 (21:10 -0700)
boot.php
mod/profiles.php
mod/settings.php
view/settings.tpl

index 1022c1eb43cfddce4b9aea83adc27e77b5c87ddf..e77a35d8b970e2ba9654f919c862801208240b50 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -206,6 +206,7 @@ define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' );
 define ( 'ACTIVITY_OBJ_ALBUM',   NAMESPACE_ACTIVITY_SCHEMA . 'photo-album' );
 define ( 'ACTIVITY_OBJ_EVENT',   NAMESPACE_ACTIVITY_SCHEMA . 'event' );
 define ( 'ACTIVITY_OBJ_TAGTERM', NAMESPACE_DFRN            . '/tagterm' );
+define ( 'ACTIVITY_OBJ_PROFILE', NAMESPACE_DFRN            . '/profile' );
 
 /**
  * item weight for query ordering
index eef58bb06fcd8201361fa812ed8798a208e85180..99b197fded7a304868a3596c64c71da5e9cf090c 100644 (file)
@@ -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,8 +62,6 @@ 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'])) : '');
 
@@ -134,6 +133,24 @@ function profiles_post(&$a) {
 
                $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
 
+
+
+               $changes = array();
+               if($is_default) {
+                       logger('changes');
+                       if($marital != $orig[0]['marital']) $changes[] = '&hearts; ' . t('Marital Status');
+                       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($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 +212,7 @@ function profiles_post(&$a) {
                        dbesc($education),
                        intval($hide_friends),
                        intval($a->argv[1]),
-                       intval($_SESSION['uid'])
+                       intval(local_user())
                );
 
                if($r)
@@ -222,6 +239,80 @@ 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;
+
+       logger('activity');
+       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'] . ']' . 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'] . '" />' . "\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) {
index 12af995600f2a6863c234baf56c30f94a004f925..721468437e5e2019333195f73ee98e65822fc6b4 100644 (file)
@@ -347,6 +347,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_profilechange   = (($_POST['post_profilechange'] == 1) ? 1: 0);
 
 
        $notify = 0;
@@ -430,6 +431,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_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",
@@ -795,6 +797,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_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']))
                $timezone = date_default_timezone_get();
@@ -881,9 +886,7 @@ function settings_content(&$a) {
 
        ));
 
-       $activity_options = t('By default post a status message when:');
 
-       $post_newfriend = array('post_newfriend',  t('accepting a friend request'), $post_newfriend, '');
 
 
        $invisible = (((! $profile['publish']) && (! $profile['net-publish']))
@@ -966,8 +969,9 @@ function settings_content(&$a) {
                
                
                '$h_not'        => t('Notification Settings'),
-               '$activity_options' => $activity_options,
-               '$post_newfriend' => $post_newfriend,
+               '$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, ''),
index 081f563061fcc46bfc9c63fcd1ed852d6632bead..59c669a873fb61b46d0c627ddb10401abbbf75ec 100644 (file)
@@ -102,6 +102,7 @@ $unkmail
 <strong>$activity_options</strong>
 
 {{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}}
+{{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}}
 
 
 <div id="settings-notify-desc"><strong>$lbl_not </strong></div>