diff options
Diffstat (limited to 'mod')
-rw-r--r-- | mod/settings.php | 5 | ||||
-rw-r--r-- | mod/uexport.php | 48 |
2 files changed, 53 insertions, 0 deletions
diff --git a/mod/settings.php b/mod/settings.php index 6a2733d7c..b20f4d11b 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -5,6 +5,7 @@ function settings_init(&$a) { if(local_user()) { profile_load($a,$a->user['nickname']); } + } @@ -341,9 +342,13 @@ function settings_content(&$a) { $celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false); + $uexport = '<div id="uexport-link"><a href="uexport" >' . t('Export Personal Data') . '</a></div>'; + + $o .= replace_macros($stpl,array( '$baseurl' => $a->get_baseurl(), '$oidhtml' => $oidhtml, + '$uexport' => $uexport, '$uid' => local_user(), '$username' => $username, '$openid' => $openid, diff --git a/mod/uexport.php b/mod/uexport.php new file mode 100644 index 000000000..423c3a82f --- /dev/null +++ b/mod/uexport.php @@ -0,0 +1,48 @@ +<?php + +function uexport_init(&$a) { + + if(! local_user()) + killme(); + + $user = array(); + $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", + local_user() + ); + if(count($r)) { + foreach($r as $rr) + foreach($rr as $k => $v) + $user[$k] = $v; + + } + $contact = array(); + $r = q("SELECT * FROM `contact` WHERE `uid` = %d ", + local_user() + ); + if(count($r)) { + foreach($r as $rr) + foreach($rr as $k => $v) + $contact[][$k] = $v; + + } + + $profile = array(); + $r = q("SELECT * FROM `profile` WHERE `uid` = %d ", + local_user() + ); + if(count($r)) { + foreach($r as $rr) + foreach($rr as $k => $v) + $profile[][$k] = $v; + } + + + + $output = array('user' => $user, 'contact' => $contact, 'profile' => $profile); + + header("Content-type: text/json"); + echo str_replace('\\/','/',json_encode($output)); + + killme(); + +}
\ No newline at end of file |