aboutsummaryrefslogtreecommitdiffstats
path: root/mod/item.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-01-31 16:13:44 -0800
committerfriendica <info@friendica.com>2013-01-31 16:13:44 -0800
commit02e099da455f0ca42720e60eabe65ba8d4560373 (patch)
tree51ca9749aa9c67fc3a161e62eff121e9b51a34ae /mod/item.php
parenta72c16c7c0c7a0b8fc0aaf5fbda78291e85cd054 (diff)
downloadvolse-hubzilla-02e099da455f0ca42720e60eabe65ba8d4560373.tar.gz
volse-hubzilla-02e099da455f0ca42720e60eabe65ba8d4560373.tar.bz2
volse-hubzilla-02e099da455f0ca42720e60eabe65ba8d4560373.zip
file/attachment storage api with revision control - needs a bit more testing but the framework is in place
Diffstat (limited to 'mod/item.php')
-rw-r--r--mod/item.php43
1 files changed, 17 insertions, 26 deletions
diff --git a/mod/item.php b/mod/item.php
index 48715a0f4..dba325e19 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -377,7 +377,7 @@ function item_post(&$a) {
fix_attached_photo_permissions($profile_uid,$owner_xchan['xchan_hash'],$body,
$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny);
- fix_attached_file_permissions($profile_uid,$owner_xchan['xchan_hash'],$body,
+ fix_attached_file_permissions($channel,$observer['xchan_hash'],$body,
$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny);
}
@@ -471,14 +471,13 @@ function item_post(&$a) {
if(preg_match_all('/(\[attachment\](.*?)\[\/attachment\])/',$body,$match)) {
foreach($match[2] as $mtch) {
- $r = q("SELECT `hash`,`filename`,`filesize`,`filetype` FROM `attach` WHERE `uid` = %d AND `hash` = '%s' LIMIT 1",
- intval($profile_uid),
- dbesc($mtch)
- );
- if(count($r)) {
+ $hash = substr($mtch,0,strpos($mtch,','));
+ $rev = intval(substr($mtch,strpos($mtch,',')));
+ $r = attach_by_hash_nodata($hash,$rev);
+ if($r['success']) {
if(strlen($attachments))
$attachments .= ',';
- $attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['hash'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]';
+ $attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r['data']['hash'] . '" length="' . $r['data']['filesize'] . '" type="' . $r['data']['filetype'] . '" title="' . $r['data']['filename'] . '"[/attach]';
}
$body = str_replace($match[1],'',$body);
}
@@ -1008,7 +1007,7 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body,
}
-function fix_attached_file_permissions($uid,$xchan_hash,$body,
+function fix_attached_file_permissions($channel,$observer_hash,$body,
$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny) {
$match = false;
@@ -1017,24 +1016,16 @@ function fix_attached_file_permissions($uid,$xchan_hash,$body,
$attaches = $match[1];
if($attaches) {
foreach($attaches as $attach) {
- $r = q("select * from attach where uid = %d and hash = '%s'
- and allow_cid = '%s' and allow_gid = '' and deny_cid = '' and deny_gid = '' limit 1",
- intval($uid),
- dbesc($attach),
- dbesc('<' . $xchan_hash . '>')
- );
- if($r) {
- $r = q("UPDATE attach
- SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s'
- WHERE uid = %d AND hash = '%s' LIMIT 1",
- dbesc($str_contact_allow),
- dbesc($str_group_allow),
- dbesc($str_contact_deny),
- dbesc($str_group_deny),
- intval($uid),
- dbesc($attach)
- );
- }
+ $hash = substr($attach,0,strpos($attach,','));
+ $rev = intval(substr($attach,strpos($attach,',')));
+ attach_store($channel,$observer_hash,$options = 'update', array(
+ 'hash' => $hash,
+ 'revision' => $rev,
+ 'allow_cid' => $str_contact_allow,
+ 'allow_gid' => $str_group_allow,
+ 'deny_cid' => $str_contact_deny,
+ 'deny_gid' => $str_group_deny
+ ));
}
}
}