diff options
author | Michael Johnston <michaelgeorgejohnston@gmail.com> | 2012-04-22 13:37:25 -0400 |
---|---|---|
committer | Michael Johnston <michaelgeorgejohnston@gmail.com> | 2012-04-22 13:37:25 -0400 |
commit | 76aa9b3037a69d7d3be7e2f7c1416438a30dd577 (patch) | |
tree | 35bb52d1b0d5e12d98c5cfdfa85876ed9d72ad63 | |
parent | 9434b447f3302a7f3223fb01f3c71378b8764e92 (diff) | |
download | volse-hubzilla-76aa9b3037a69d7d3be7e2f7c1416438a30dd577.tar.gz volse-hubzilla-76aa9b3037a69d7d3be7e2f7c1416438a30dd577.tar.bz2 volse-hubzilla-76aa9b3037a69d7d3be7e2f7c1416438a30dd577.zip |
api: add support for StatusNet-style media param to API
-rw-r--r-- | include/api.php | 11 | ||||
-rw-r--r-- | mod/wall_upload.php | 38 |
2 files changed, 36 insertions, 13 deletions
diff --git a/include/api.php b/include/api.php index 0885a1434..f9be68c3d 100644 --- a/include/api.php +++ b/include/api.php @@ -567,8 +567,17 @@ $_REQUEST['profile_uid'] = local_user(); if(requestdata('parent')) $_REQUEST['type'] = 'net-comment'; - else + else { $_REQUEST['type'] = 'wall'; + if(x($_FILES,'media')) { + // upload the image if we have one + $_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo + require_once('mod/wall_upload.php'); + $media = wall_upload_post($a); + if(strlen($media)>0) + $_REQUEST['body'] .= "\n\n".$media; + } + } // set this so that the item_post() function is quiet and doesn't redirect or emit json diff --git a/mod/wall_upload.php b/mod/wall_upload.php index f341cc9cd..fa66561e8 100644 --- a/mod/wall_upload.php +++ b/mod/wall_upload.php @@ -5,19 +5,26 @@ require_once('Photo.php'); function wall_upload_post(&$a) { if($a->argc > 1) { - $nick = $a->argv[1]; - $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", - dbesc($nick) - ); - if(! count($r)) - return; - + if(! x($_FILES,'media')) { + $nick = $a->argv[1]; + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", + dbesc($nick) + ); + + if(! count($r)) + return; + } + else { + $user_info = api_get_user($a); + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", + dbesc($user_info['screen_name']) + ); + } } else return; - $can_post = false; $visitor = 0; @@ -47,12 +54,19 @@ function wall_upload_post(&$a) { killme(); } - if(! x($_FILES,'userfile')) + if(! x($_FILES,'userfile') && ! x($_FILES,'media')) killme(); - $src = $_FILES['userfile']['tmp_name']; - $filename = basename($_FILES['userfile']['name']); - $filesize = intval($_FILES['userfile']['size']); + if(x($_FILES,'userfile')) { + $src = $_FILES['userfile']['tmp_name']; + $filename = basename($_FILES['userfile']['name']); + $filesize = intval($_FILES['userfile']['size']); + } + elseif(x($_FILES,'media')) { + $src = $_FILES['media']['tmp_name']; + $filename = basename($_FILES['media']['name']); + $filesize = intval($_FILES['media']['size']); + } $maximagesize = get_config('system','maximagesize'); |