Delete attachments on item deletion
Delete video from videos page
This commit is contained in:
parent
41d5e89f50
commit
83697cf3e5
3 changed files with 101 additions and 14 deletions
|
@ -4745,6 +4745,18 @@ function drop_item($id,$interactive = true) {
|
||||||
// ignore the result
|
// ignore the result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If item has attachments, drop them
|
||||||
|
|
||||||
|
foreach(explode(",",$item['attach']) as $attach){
|
||||||
|
preg_match("|attach/(\d+)|", $attach, $matches);
|
||||||
|
q("DELETE FROM `attach` WHERE `id` = %d AND `uid` = %d",
|
||||||
|
intval($matches[1]),
|
||||||
|
local_user()
|
||||||
|
);
|
||||||
|
// ignore the result
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// clean up item_id and sign meta-data tables
|
// clean up item_id and sign meta-data tables
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -4821,6 +4833,7 @@ function drop_item($id,$interactive = true) {
|
||||||
// Add a relayable_retraction signature for Diaspora.
|
// Add a relayable_retraction signature for Diaspora.
|
||||||
store_diaspora_retract_sig($item, $a->user, $a->get_baseurl());
|
store_diaspora_retract_sig($item, $a->user, $a->get_baseurl());
|
||||||
}
|
}
|
||||||
|
|
||||||
$drop_id = intval($item['id']);
|
$drop_id = intval($item['id']);
|
||||||
|
|
||||||
// send the notification upstream/downstream as the case may be
|
// send the notification upstream/downstream as the case may be
|
||||||
|
|
|
@ -43,12 +43,12 @@ function videos_init(&$a) {
|
||||||
if(count($albums)) {
|
if(count($albums)) {
|
||||||
$a->data['albums'] = $albums;
|
$a->data['albums'] = $albums;
|
||||||
|
|
||||||
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
|
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
|
||||||
|
|
||||||
if($albums_visible) {
|
if($albums_visible) {
|
||||||
$o .= '<div id="side-bar-photos-albums" class="widget">';
|
$o .= '<div id="side-bar-photos-albums" class="widget">';
|
||||||
$o .= '<h3>' . '<a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '">' . t('Photo Albums') . '</a></h3>';
|
$o .= '<h3>' . '<a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '">' . t('Photo Albums') . '</a></h3>';
|
||||||
|
|
||||||
$o .= '<ul>';
|
$o .= '<ul>';
|
||||||
foreach($albums as $album) {
|
foreach($albums as $album) {
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ function videos_init(&$a) {
|
||||||
|
|
||||||
if((! strlen($album['album'])) || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos')))
|
if((! strlen($album['album'])) || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos')))
|
||||||
continue;
|
continue;
|
||||||
$o .= '<li>' . '<a href="photos/' . $a->argv[1] . '/album/' . bin2hex($album['album']) . '" >' . $album['album'] . '</a></li>';
|
$o .= '<li>' . '<a href="photos/' . $a->argv[1] . '/album/' . bin2hex($album['album']) . '" >' . $album['album'] . '</a></li>';
|
||||||
}
|
}
|
||||||
$o .= '</ul>';
|
$o .= '</ul>';
|
||||||
}
|
}
|
||||||
|
@ -92,9 +92,76 @@ function videos_init(&$a) {
|
||||||
|
|
||||||
function videos_post(&$a) {
|
function videos_post(&$a) {
|
||||||
|
|
||||||
return;
|
$owner_uid = $a->data['user']['uid'];
|
||||||
|
|
||||||
|
if (local_user() != $owner_uid) goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']);
|
||||||
|
|
||||||
|
if(($a->argc == 2) && x($_POST,'delete') && x($_POST, 'id')) {
|
||||||
|
|
||||||
|
// Check if we should do HTML-based delete confirmation
|
||||||
|
if(!x($_REQUEST,'confirm')) {
|
||||||
|
if(x($_REQUEST,'canceled')) goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']);
|
||||||
|
|
||||||
|
$drop_url = $a->query_string;
|
||||||
|
$a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array(
|
||||||
|
'$method' => 'post',
|
||||||
|
'$message' => t('Do you really want to delete this video?'),
|
||||||
|
'$extra_inputs' => [
|
||||||
|
['name'=>'id', 'value'=> $_POST['id']],
|
||||||
|
['name'=>'delete', 'value'=>'x']
|
||||||
|
],
|
||||||
|
'$confirm' => t('Delete Video'),
|
||||||
|
'$confirm_url' => $drop_url,
|
||||||
|
'$confirm_name' => 'confirm', // Needed so that confirmation will bring us back into this if statement
|
||||||
|
'$cancel' => t('Cancel'),
|
||||||
|
|
||||||
|
));
|
||||||
|
$a->error = 1; // Set $a->error so the other module functions don't execute
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$video_id = $_POST['id'];
|
||||||
|
|
||||||
|
|
||||||
|
$r = q("SELECT `id` FROM `attach` WHERE `uid` = %d AND `id` = '%s' LIMIT 1",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($video_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
if(count($r)) {
|
||||||
|
q("DELETE FROM `attach` WHERE `uid` = %d AND `id` = '%s'",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($video_id)
|
||||||
|
);
|
||||||
|
$i = q("SELECT * FROM `item` WHERE `attach` like '%%attach/%s%%' AND `uid` = %d LIMIT 1",
|
||||||
|
dbesc($video_id),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
#echo "<pre>"; var_dump($i); killme();
|
||||||
|
if(count($i)) {
|
||||||
|
q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
dbesc($i[0]['uri']),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
create_tags_from_itemuri($i[0]['uri'], local_user());
|
||||||
|
delete_thread_uri($i[0]['uri'], local_user());
|
||||||
|
|
||||||
|
$url = $a->get_baseurl();
|
||||||
|
$drop_id = intval($i[0]['id']);
|
||||||
|
|
||||||
|
if($i[0]['visible'])
|
||||||
|
proc_run('php',"include/notifier.php","drop","$drop_id");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']);
|
||||||
|
return; // NOTREACHED
|
||||||
|
}
|
||||||
|
|
||||||
|
goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']);
|
||||||
|
|
||||||
// DELETED -- look at mod/photos.php if you want to implement
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -115,8 +182,8 @@ function videos_content(&$a) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
require_once('include/conversation.php');
|
require_once('include/conversation.php');
|
||||||
|
@ -131,7 +198,7 @@ function videos_content(&$a) {
|
||||||
$_SESSION['video_return'] = $a->cmd;
|
$_SESSION['video_return'] = $a->cmd;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Parse arguments
|
// Parse arguments
|
||||||
//
|
//
|
||||||
|
|
||||||
if($a->argc > 3) {
|
if($a->argc > 3) {
|
||||||
|
@ -233,7 +300,7 @@ function videos_content(&$a) {
|
||||||
|
|
||||||
// tabs
|
// tabs
|
||||||
$_is_owner = (local_user() && (local_user() == $owner_uid));
|
$_is_owner = (local_user() && (local_user() == $owner_uid));
|
||||||
$o .= profile_tabs($a,$_is_owner, $a->data['user']['nickname']);
|
$o .= profile_tabs($a,$_is_owner, $a->data['user']['nickname']);
|
||||||
|
|
||||||
//
|
//
|
||||||
// dispatch request
|
// dispatch request
|
||||||
|
@ -251,7 +318,7 @@ function videos_content(&$a) {
|
||||||
return; // no albums for now
|
return; // no albums for now
|
||||||
|
|
||||||
// DELETED -- look at mod/photos.php if you want to implement
|
// DELETED -- look at mod/photos.php if you want to implement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if($datatype === 'video') {
|
if($datatype === 'video') {
|
||||||
|
@ -307,20 +374,21 @@ function videos_content(&$a) {
|
||||||
'name' => $name_e,
|
'name' => $name_e,
|
||||||
'alt' => t('View Album'),
|
'alt' => t('View Album'),
|
||||||
),
|
),
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$tpl = get_markup_template('videos_recent.tpl');
|
$tpl = get_markup_template('videos_recent.tpl');
|
||||||
$o .= replace_macros($tpl, array(
|
$o .= replace_macros($tpl, array(
|
||||||
'$title' => t('Recent Videos'),
|
'$title' => t('Recent Videos'),
|
||||||
'$can_post' => $can_post,
|
'$can_post' => $can_post,
|
||||||
'$upload' => array(t('Upload New Videos'), $a->get_baseurl().'/videos/'.$a->data['user']['nickname'].'/upload'),
|
'$upload' => array(t('Upload New Videos'), $a->get_baseurl().'/videos/'.$a->data['user']['nickname'].'/upload'),
|
||||||
'$videos' => $videos,
|
'$videos' => $videos,
|
||||||
|
'$delete_url' => (($can_post)?$a->get_baseurl().'/videos/'.$a->data['user']['nickname']:False)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
$o .= paginate($a);
|
$o .= paginate($a);
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,5 +9,11 @@
|
||||||
</video>
|
</video>
|
||||||
|
|
||||||
{{*<div class="video-top-album-name"><a href="{{$video.album.link}}" class="video-top-album-link" title="{{$video.album.alt}}" >{{$video.album.name}}</a></div>*}}
|
{{*<div class="video-top-album-name"><a href="{{$video.album.link}}" class="video-top-album-link" title="{{$video.album.alt}}" >{{$video.album.name}}</a></div>*}}
|
||||||
|
{{if $delete_url }}
|
||||||
|
<form method="post" action="{{$delete_url}}">
|
||||||
|
<input type="submit" name="delete" value="X"></input>
|
||||||
|
<input type="hidden" name="id" value="{{$video.id}}"></input>
|
||||||
|
</form>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue