diff options
author | redmatrix <mike@macgirvin.com> | 2016-09-06 23:13:55 -0700 |
---|---|---|
committer | redmatrix <mike@macgirvin.com> | 2016-09-06 23:13:55 -0700 |
commit | de03f7f9ce868198f280a4dabf15c76452b71b0a (patch) | |
tree | 0e130255e37208d7fdf45837c9137a5deea6a626 /include/attach.php | |
parent | 6e149a2dd350d4037fb89f5bfa2246c5f9a94800 (diff) | |
download | volse-hubzilla-de03f7f9ce868198f280a4dabf15c76452b71b0a.tar.gz volse-hubzilla-de03f7f9ce868198f280a4dabf15c76452b71b0a.tar.bz2 volse-hubzilla-de03f7f9ce868198f280a4dabf15c76452b71b0a.zip |
photo move to another album - resurrected from a temporary branch where the work had gotten lost
Diffstat (limited to 'include/attach.php')
-rw-r--r-- | include/attach.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/attach.php b/include/attach.php index 137d2b11c..237b06217 100644 --- a/include/attach.php +++ b/include/attach.php @@ -2165,3 +2165,51 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { } +function attach_folder_select_list($channel_id) { + + $r = q("select * from attach where is_dir = 1 and uid = %d", + intval($channel_id) + ); + + $out = []; + $out[''] = '/'; + + if($r) { + foreach($r as $rv) { + $x = attach_folder_rpaths($r,$rv); + if($x) + $out[$x[0]] = $x[1]; + } + } + return $out; +} + +function attach_folder_rpaths($all_folders,$that_folder) { + + $path = '/' . $that_folder['filename']; + $current_hash = $that_folder['hash']; + $parent_hash = $that_folder['folder']; + $error = false; + $found = false; + + if($parent_hash) { + do { + foreach($all_folders as $selected) { + if(! $selected['is_dir']) + continue; + if($selected['hash'] == $parent_hash) { + $path = '/' . $selected['filename'] . $path; + $current_hash = $selected['hash']; + $parent_hash = $selected['folder']; + $found = true; + break; + } + } + if(! $found) + $error = true; + } + while((! $found) && (! $error) && ($parent_hash != '')); + } + return (($error) ? false : [ $current_hash , $path ]); + +}
\ No newline at end of file |