aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/diaspora.php2
-rw-r--r--include/profile_update.php113
-rw-r--r--mod/profile_photo.php3
-rw-r--r--mod/profiles.php3
-rw-r--r--mod/settings.php6
5 files changed, 122 insertions, 5 deletions
diff --git a/include/diaspora.php b/include/diaspora.php
index 0528c5575..89707967f 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -673,8 +673,6 @@ function diaspora_reshare($importer,$xml) {
$created = unxmlify($xml->created_at);
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
- $body = diaspora2bb($xml->raw_message);
-
$datarray = array();
$str_tags = '';
diff --git a/include/profile_update.php b/include/profile_update.php
new file mode 100644
index 000000000..1a2d9d3b5
--- /dev/null
+++ b/include/profile_update.php
@@ -0,0 +1,113 @@
+<?php
+
+require_once('include/datetime.php');
+require_once('include/diaspora.php');
+
+function profile_change() {
+
+ $a = get_app();
+
+ if(! local_user())
+ return;
+
+// $url = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
+ // if($url && strlen(get_config('system','directory_submit_url')))
+ // proc_run('php',"include/directory.php","$url");
+
+ $recips = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
+ AND `uid` = %d AND `rel` != %d ORDER BY rand() ",
+ dbesc(NETWORK_DIASPORA),
+ intval(local_user()),
+ intval(CONTACT_IS_SHARING)
+ );
+ if(! count($recips))
+ return;
+
+ $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.* FROM `profile`
+ LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
+ WHERE `user`.`uid` = %d AND `profile`.`is-default` = 1 LIMIT 1",
+ intval(local_user())
+ );
+
+ if(! count($r))
+ return;
+ $profile = $r[0];
+
+ $handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $first = ((strpos($profile['name'],' '))
+ ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
+ $last = (($first === $profile['name']) ? '' : trim(substr($profile['name'],strlen($first))));
+ $large = $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg';
+ $medium = $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg';
+ $small = $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg';
+ $searchable = (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' );
+
+ if($searchable === 'true') {
+ $dob = '1000-00-00';
+
+ if(($profile['dob']) && ($profile['dob'] != '0000-00-00'))
+ $dob = ((intval($profile['dob'])) ? intval($profile['dob']) : '1000') . '-' . datetime_convert('UTC','UTC',$profile['dob'],'m-d');
+ $gender = $profile['gender'];
+ $about = $profile['about'];
+ require_once('include/bbcode.php');
+ $about = strip_tags(bbcode($about));
+ $location = '';
+ if($profile['locality'])
+ $location .= $profile['locality'];
+ if($profile['region']) {
+ if($location)
+ $location .= ', ';
+ $location .= $profile['region'];
+ }
+ if($profile['country-name']) {
+ if($location)
+ $location .= ', ';
+ $location .= $profile['country-name'];
+ }
+ $tags = '';
+ if($profile['pub_keywords']) {
+ $kw = str_replace(',',' ',$profile['pub_keywords']);
+ $kw = str_replace(' ',' ',$kw);
+ $arr = explode(' ',$profile['pub_keywords']);
+ if(count($arr)) {
+ for($x = 0; $x < 5; $x ++) {
+ if(trim($arr[$x]))
+ $tags .= '#' . trim($arr[$x]) . ' ';
+ }
+ }
+ }
+ $tags = trim($tags);
+ }
+
+ $tpl = get_markup_template('diaspora_profile.tpl');
+
+
+ $msg = replace_macros($tpl,array(
+ '$handle' => $handle,
+ '$first' => $first,
+ '$last' => $last,
+ '$large' => $large,
+ '$medium' => $medium,
+ '$small' => $small,
+ '$dob' => $dob,
+ '$gender' => $gender,
+ '$about' => $about,
+ '$location' => $location,
+ '$searchable' => $searchable,
+ '$tags' => $tags
+ ));
+ logger('profile_change: ' . $msg, LOGGER_ALL);
+
+ $msgtosend = diaspora_msg_build($msg,$a->user,null,$a->user['prvkey'],null,true);
+ foreach($recips as $recip) {
+ q("insert into queue (`cid`,`network`,`created`,`last`,`content`,`batch`)
+ values(%d,'%s','%s','%s','%s',%d)",
+ intval($recip['id']),
+ dbesc(NETWORK_DIASPORA),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($msgtosend),
+ intval(1)
+ );
+ }
+} \ No newline at end of file
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index 4de3aaa3e..47f0f8d8e 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -90,6 +90,9 @@ function profile_photo_post(&$a) {
$url = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
if($url && strlen(get_config('system','directory_submit_url')))
proc_run('php',"include/directory.php","$url");
+
+ require_once('include/profile_update.php');
+ profile_change();
}
else
notice( t('Unable to process image') . EOL);
diff --git a/mod/profiles.php b/mod/profiles.php
index f5f335c7e..a5096a984 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -210,6 +210,9 @@ function profiles_post(&$a) {
$url = $_SESSION['my_url'];
if($url && strlen(get_config('system','directory_submit_url')))
proc_run('php',"include/directory.php","$url");
+
+ require_once('include/profile_update.php');
+ profile_change();
}
}
}
diff --git a/mod/settings.php b/mod/settings.php
index 84f66d263..8ed03dba5 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -296,9 +296,9 @@ function settings_post(&$a) {
}
-// not yet ready for prime time
-// require_once('include/profile_update.php');
-// profile_change();
+
+ require_once('include/profile_update.php');
+ profile_change();
$_SESSION['theme'] = $theme;
if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {