summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorKjartan Mannes <kjartan@2.no-reply.drupal.org>2004-06-04 18:00:48 +0000
committerKjartan Mannes <kjartan@2.no-reply.drupal.org>2004-06-04 18:00:48 +0000
commitc957fe0aab54531d5ceb13718ecff078f3c9f5cb (patch)
treef98485e630e850de0c4d168cb40da616b5690ca5 /modules
parentbe59d6a674e5a16c98bb7372e8c024c7c676e5ec (diff)
downloadbrdo-c957fe0aab54531d5ceb13718ecff078f3c9f5cb.tar.gz
brdo-c957fe0aab54531d5ceb13718ecff078f3c9f5cb.tar.bz2
- Commited patch #4878: Support file uploads via blogapi.
Diffstat (limited to 'modules')
-rw-r--r--modules/blogapi.module24
-rw-r--r--modules/blogapi/blogapi.module24
2 files changed, 42 insertions, 6 deletions
diff --git a/modules/blogapi.module b/modules/blogapi.module
index 8d5fa3089..15c68c01c 100644
--- a/modules/blogapi.module
+++ b/modules/blogapi.module
@@ -247,11 +247,29 @@ function blogapi_delete_post($req_params) {
/**
* Blogging API callback. Inserts a file into Drupal.
- *
- * This has yet to be implemented.
*/
function blogapi_new_media_object($req_params) {
- return blogapi_error('not implemented');
+ $params = blogapi_convert($req_params);
+
+ $user = blogapi_validate_user($params[1], $params[2]);
+ if (!$user->uid) {
+ return blogapi_error($user);
+ }
+
+ $name = basename($params[3]['name']);
+ $data = $params[3]['bits'];
+
+ if (!$data) {
+ return blogapi_error(t('No file sent'));
+ }
+
+ if (!$file = file_save_data($data, $name)) {
+ return blogapi_error(t('Error storing file'));
+ }
+
+ // Return the successful result.
+ $result = new xmlrpcval(array('url' => new xmlrpcval(file_create_url($file), 'string')), 'struct');
+ return new xmlrpcresp($result);
}
/**
diff --git a/modules/blogapi/blogapi.module b/modules/blogapi/blogapi.module
index 8d5fa3089..15c68c01c 100644
--- a/modules/blogapi/blogapi.module
+++ b/modules/blogapi/blogapi.module
@@ -247,11 +247,29 @@ function blogapi_delete_post($req_params) {
/**
* Blogging API callback. Inserts a file into Drupal.
- *
- * This has yet to be implemented.
*/
function blogapi_new_media_object($req_params) {
- return blogapi_error('not implemented');
+ $params = blogapi_convert($req_params);
+
+ $user = blogapi_validate_user($params[1], $params[2]);
+ if (!$user->uid) {
+ return blogapi_error($user);
+ }
+
+ $name = basename($params[3]['name']);
+ $data = $params[3]['bits'];
+
+ if (!$data) {
+ return blogapi_error(t('No file sent'));
+ }
+
+ if (!$file = file_save_data($data, $name)) {
+ return blogapi_error(t('Error storing file'));
+ }
+
+ // Return the successful result.
+ $result = new xmlrpcval(array('url' => new xmlrpcval(file_create_url($file), 'string')), 'struct');
+ return new xmlrpcresp($result);
}
/**