aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2011-03-22 16:19:00 -0700
committerFriendika <info@friendika.com>2011-03-22 16:19:00 -0700
commit8f31935b7da523ba03b51459d7596fc5e6eb2854 (patch)
tree8e177b933fd037dbfc87165ce2c1d8b43e25fbcc /mod
parentf20464112f274d720649c2f92480cc235df4db19 (diff)
downloadvolse-hubzilla-8f31935b7da523ba03b51459d7596fc5e6eb2854.tar.gz
volse-hubzilla-8f31935b7da523ba03b51459d7596fc5e6eb2854.tar.bz2
volse-hubzilla-8f31935b7da523ba03b51459d7596fc5e6eb2854.zip
items back in personal data download, chunked this time
Diffstat (limited to 'mod')
-rw-r--r--mod/uexport.php30
1 files changed, 28 insertions, 2 deletions
diff --git a/mod/uexport.php b/mod/uexport.php
index d8f931593..fdd7fcec6 100644
--- a/mod/uexport.php
+++ b/mod/uexport.php
@@ -17,7 +17,7 @@ function uexport_init(&$a) {
}
$contact = array();
$r = q("SELECT * FROM `contact` WHERE `uid` = %d ",
- local_user()
+ intval(local_user())
);
if(count($r)) {
foreach($r as $rr)
@@ -28,7 +28,7 @@ function uexport_init(&$a) {
$profile = array();
$r = q("SELECT * FROM `profile` WHERE `uid` = %d ",
- local_user()
+ intval(local_user())
);
if(count($r)) {
foreach($r as $rr)
@@ -41,6 +41,32 @@ function uexport_init(&$a) {
header("Content-type: text/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