aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/api.php7
-rw-r--r--include/attach.php33
2 files changed, 33 insertions, 7 deletions
diff --git a/include/api.php b/include/api.php
index b8e0582a6..d0449763b 100644
--- a/include/api.php
+++ b/include/api.php
@@ -622,7 +622,7 @@ require_once('include/attach.php');
function api_attach_list(&$a,$type) {
logger('api_user: ' . api_user());
- json_return_and_die(attach_list_files(api_user(),get_observer_hash()));
+ json_return_and_die(attach_list_files(api_user(),get_observer_hash(),'','','','created asc'));
}
api_register_func('api/red/files','api_attach_list', true);
@@ -635,8 +635,9 @@ require_once('include/attach.php');
dbesc($_REQUEST['file_id'])
);
if($r) {
- $data = dbunescbin($r[0]['data']);
- if(intval($r[0]['os_storage']))
+ if($r[0]['is_dir'])
+ $r[0]['data'] = '';
+ elseif(intval($r[0]['os_storage']))
$r[0]['data'] = base64_encode(file_get_contents(dbunescbin($r[0]['data'])));
else
$r[0]['data'] = base64_encode(dbunescbin($r[0]['data']));
diff --git a/include/attach.php b/include/attach.php
index a28a1a8ab..0ed1690ec 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -455,9 +455,25 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
$src = $arr['src'];
$filename = $arr['filename'];
$filesize = @filesize($src);
+
$hash = $arr['resource_id'];
+
+ if(array_key_exists('hash',$arr))
+ $hash = $arr['hash'];
+ if(array_key_exists('type',$arr))
+ $type = $arr['type'];
+
if($arr['preserve_original'])
$remove_when_processed = false;
+
+ // if importing a directory, just do it now and go home - we're done.
+
+ if(array_key_exists('is_dir',$arr) && intval($arr['is_dir'])) {
+ $x = attach_mkdir($channel,$observer_hash,$arr);
+ if($x['message'])
+ logger('import_directory: ' . $x['message']);
+ return;
+ }
}
elseif($options !== 'update') {
$f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
@@ -536,10 +552,20 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
$pathname = '';
if($is_photo) {
- if($newalbum)
+ if($newalbum) {
$pathname = filepath_macro($newalbum);
- else
+ }
+ elseif(array_key_exists('folder',$arr)) {
+ $x = q("select filename from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($arr['folder']),
+ intval($channel['channel_id'])
+ );
+ if($x)
+ $pathname = $x[0]['filename'];
+ }
+ else {
$pathname = filepath_macro($album);
+ }
}
else {
$pathname = filepath_macro($upload_path);
@@ -569,7 +595,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
}
}
else {
- $folder_hash = '';
+ $folder_hash = ((array_key_exists('folder',$args)) ? $args['folder'] : '');
}
if((! $options) || ($options === 'import')) {
@@ -968,7 +994,6 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
intval($channel['channel_id']),
dbesc($lfile)
);
-
if(! $r) {
logger('attach_mkdir: hash ' . $lfile . ' not found in ' . $lpath);
$ret['message'] = t('Path not found.');