diff options
author | Olivier Migeot <olivier@migeot.org> | 2011-03-28 12:11:10 +0200 |
---|---|---|
committer | Olivier Migeot <olivier@migeot.org> | 2011-03-28 12:11:10 +0200 |
commit | da546588db1863dd240a4c738644372fc4d183e6 (patch) | |
tree | dd6c869207098867aa6c7207f29ab5a2e9b6dc69 /mod/uexport.php | |
parent | 19d7e7fefeb3d20697d6a7e0b1fc7a16d9127c64 (diff) | |
parent | 1f6c6c466a449ba422c4e67744577f6c35b3ce0b (diff) | |
download | volse-hubzilla-da546588db1863dd240a4c738644372fc4d183e6.tar.gz volse-hubzilla-da546588db1863dd240a4c738644372fc4d183e6.tar.bz2 volse-hubzilla-da546588db1863dd240a4c738644372fc4d183e6.zip |
Merge remote branch 'mike/master'
Diffstat (limited to 'mod/uexport.php')
-rw-r--r-- | mod/uexport.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mod/uexport.php b/mod/uexport.php new file mode 100644 index 000000000..96f062c41 --- /dev/null +++ b/mod/uexport.php @@ -0,0 +1,72 @@ +<?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 ", + intval(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 ", + intval(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: application/json"); + echo str_replace('\\/','/',json_encode($output)); + + $r = q("SELECT count(*) as `total` FROM `item` WHERE `uid` = %d ", + intval(local_user()) + ); + if(count($r)) + $total = $r[0]['total']; + + // chunk the output to avoid exhausting memory + + for($x = 0; $x < $total; $x += 500) { + $item = array(); + $r = q("SELECT * FROM `item` WHERE `uid` = %d LIMIT %d, %d", + intval(local_user()), + intval($x), + intval(500) + ); + if(count($r)) { + foreach($r as $rr) + foreach($rr as $k => $v) + $item[][$k] = $v; + } + + $output = array('item' => $item); + echo str_replace('\\/','/',json_encode($output)); + } + + + killme(); + +}
\ No newline at end of file |