diff options
author | RedSwede <redswede@riseup.net> | 2015-01-19 00:45:32 +0100 |
---|---|---|
committer | RedSwede <redswede@riseup.net> | 2015-01-19 00:45:32 +0100 |
commit | 08038eafb4e1e1374356727fa1f21dab244185cb (patch) | |
tree | 291d9fce556898b60c04faa24d35a2cfbb122787 /mod/sharedwithme.php | |
parent | cfd983b7509d55a79621b2895205f1acd74dc564 (diff) | |
parent | 5d30565c665341e6a6a805684cee4d45c1d2fafe (diff) | |
download | volse-hubzilla-08038eafb4e1e1374356727fa1f21dab244185cb.tar.gz volse-hubzilla-08038eafb4e1e1374356727fa1f21dab244185cb.tar.bz2 volse-hubzilla-08038eafb4e1e1374356727fa1f21dab244185cb.zip |
Merge branch 'master' of git://github.com/friendica/red into dev_redswede
Diffstat (limited to 'mod/sharedwithme.php')
-rw-r--r-- | mod/sharedwithme.php | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/mod/sharedwithme.php b/mod/sharedwithme.php new file mode 100644 index 000000000..d4aa129ac --- /dev/null +++ b/mod/sharedwithme.php @@ -0,0 +1,114 @@ +<?php +require_once('include/text.php'); +require_once('include/conversation.php'); + +function sharedwithme_content(&$a) { + if(! local_user()) { + notice( t('Permission denied.') . EOL); + return; + } + + $channel = $a->get_channel(); + + $is_owner = (local_user() && (local_user() == $channel['channel_id'])); + + $postverb = ACTIVITY_FILE . '/post/'; + $dropverb = ACTIVITY_FILE . '/drop/'; + + //maintenance - see if a file got dropped and remove it systemwide + $x = q("SELECT * FROM item WHERE verb LIKE '%s' AND uid = %d", + dbesc($dropverb . '%'), + intval(local_user()) + ); + + if($x) { + + foreach($x as $xx) { + + $hash = substr($xx['verb'], 39); + + $update = strpos($hash, '#'); + + if($update === false) { + q("DELETE FROM item WHERE verb = '%s' OR verb = '%s'", + dbesc($postverb . $hash), + dbesc($dropverb . $hash) + ); + } + + else { + + $arr = explode('#', $hash); + + q("DELETE FROM item WHERE mid != '%s' AND verb = '%s' OR verb = '%s'", + dbesc($arr[1]), + dbesc($postverb . $arr[0]), + dbesc($dropverb . $hash) + ); + + } + + } + + } + + //drop single file - localuser + if((argc() > 2) && (argv(2) === 'drop')) { + + $id = intval(argv(1)); + + q("DELETE FROM item WHERE id = %d AND uid = %d", + intval($id), + intval(local_user()) + ); + + goaway(z_root() . '/sharedwithme'); + } + + //drop all files - localuser + if((argc() > 1) && (argv(1) === 'dropall')) { + + q("DELETE FROM item WHERE verb LIKE '%s' AND uid = %d", + dbesc($postverb . '%'), + intval(local_user()) + ); + + goaway(z_root() . '/sharedwithme'); + } + + //list files + $r = q("SELECT * FROM item WHERE verb LIKE '%s' AND uid = %d", + dbesc($postverb . '%'), + intval(local_user()) + ); + + $o = profile_tabs($a, $is_owner, $channel['channel_address']); + + $o .= '<div class="section-title-wrapper">'; + + $o .= '<a href="/sharedwithme/dropall" onclick="return confirmDelete();" class="btn btn-xs btn-default pull-right"><i class="icon-trash"></i> ' . t('Remove all entries') . '</a>'; + + $o .= '<h2>' . t('Files shared with me') . '</h2>'; + + $o .= '</div>'; + + $o .= '<div class="section-content-wrapper">'; + + if($r) { + foreach($r as $rr) { + //don't display the files we shared with others + if($rr['owner_xchan'] != $channel['channel_hash']) { + unobscure($rr); + $url = rawurldecode($rr['body']); + $o .= '<a href="' . $url . '?f=&zid=' . $channel['xchan_addr'] . '">' . $url . '</a> <a href="/sharedwithme/' . $rr['id'] . '/drop" onclick="return confirmDelete();"><i class="icon-trash drop-icons"></i></a><br><br>'; + } + } + } + + $o .= '</div>'; + + return $o; + + +} + |