]> git.mxchange.org Git - friendica.git/blobdiff - mod/uexport.php
cleanup photo menus
[friendica.git] / mod / uexport.php
index d8f9315932aacce78bc5ce4c8a72ab3ef849e329..e1fb22855a6066fa8b99336b837f29ef9ebbb0ea 100644 (file)
@@ -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)
@@ -38,8 +38,34 @@ function uexport_init(&$a) {
 
        $output = array('user' => $user, 'contact' => $contact, 'profile' => $profile );
 
-       header("Content-type: text/json");
-       echo str_replace('\\/','/',json_encode($output));
+       header("Content-type: application/json");
+       echo 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 json_encode($output);
+       }
+
 
        killme();