]> git.mxchange.org Git - friendica.git/commitdiff
bug in diaspora_reshare
authorFriendika <info@friendika.com>
Thu, 20 Oct 2011 12:43:33 +0000 (05:43 -0700)
committerFriendika <info@friendika.com>
Thu, 20 Oct 2011 12:43:33 +0000 (05:43 -0700)
include/diaspora.php
include/profile_update.php [new file with mode: 0644]
mod/profile_photo.php
mod/profiles.php
mod/settings.php

index 0528c5575b6ea94f0ac58be99172f19662143eee..89707967f35381359719007bb4b6a06b0e4e526e 100644 (file)
@@ -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 (file)
index 0000000..1a2d9d3
--- /dev/null
@@ -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
index 4de3aaa3e0c255e007d1b7590e9ef9ae3ecd788e..47f0f8d8e59ef76da33a14664c2d525899a034a4 100644 (file)
@@ -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);
index f5f335c7e4e9b3c5fee9324fd3c2eabbb9485430..a5096a9846c9e599600f8272c07d74de005a21d6 100644 (file)
@@ -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();
                }
        }
 }
index 84f66d263d875f331254dea8b93938b3f17ef05c..8ed03dba50bf9d4a7b65306ff2c0c2c760595635 100644 (file)
@@ -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) {