function filedepotAjaxServer_deleteCheckedFiles in filedepot 7
Same name and namespace in other branches
- 6 lib-ajaxserver.php \filedepotAjaxServer_deleteCheckedFiles()
1 call to filedepotAjaxServer_deleteCheckedFiles()
File
- ./
lib-ajaxserver.php, line 1008 - lib-ajaxserver.php Library functions for the ajax_server
Code
function filedepotAjaxServer_deleteCheckedFiles() {
global $user;
$filedepot = filedepot_filedepot();
$retval = array();
$cid = intval($_POST['cid']);
$reportmode = check_plain($_POST['reportmode']);
$fileitems = check_plain($_POST['checkeditems']);
$files = explode(',', $fileitems);
$delerror = FALSE;
if (!empty($_POST['checkedfolders'])) {
$folderitems = check_plain($_POST['checkedfolders']);
$folders = explode(',', $folderitems);
foreach ($folders as $id) {
if ($reportmode == 'notifications') {
if ($id > 0 and db_query("SELECT uid FROM {filedepot_notifications} WHERE id=:id", array(
':id' => $id,
))
->fetchField() > 0) {
db_query("DELETE FROM {filedepot_notifications} WHERE id=:id", array(
':id' => $id,
));
}
}
elseif ($id > 0 and $_POST['multiaction'] == 'delete' and $filedepot
->checkPermission($id, 'admin')) {
$nid = db_query("SELECT nid FROM {filedepot_categories} WHERE cid=:cid", array(
':cid' => $id,
))
->fetchField();
if ($filedepot
->deleteFolder($nid)) {
// Remove any recent folder records for this category
db_query("DELETE FROM {filedepot_recentfolders} WHERE cid=:cid", array(
':cid' => $id,
));
}
else {
$delerror = TRUE;
}
}
}
}
if ($reportmode == 'incoming') {
foreach ($files as $id) {
if (db_query("SELECT COUNT(*) FROM {filedepot_import_queue} WHERE id=:id", array(
':id' => $id,
))
->fetchField() == 1) {
$query = db_query("SELECT drupal_fid,filepath,uid FROM {filedepot_import_queue} WHERE id=:id", array(
':id' => $id,
));
$file = $query
->fetchObject();
if ($file->uid == $user->uid or user_access('administer filedepot', $user)) {
if (!empty($file->filepath) and file_exists($file->filepath)) {
@unlink($file->filepath);
}
db_query("DELETE FROM {files} WHERE fid=:fid", array(
'fid' => $file->drupal_fid,
));
db_query("DELETE FROM {filedepot_import_queue} WHERE id=:id", array(
':id' => $id,
));
}
}
}
}
elseif ($reportmode == 'notifications') {
foreach ($files as $id) {
$uid = db_query("SELECT uid FROM {filedepot_notifications} WHERE id=:id", array(
':id' => $id,
))
->fetchField();
if ($id > 0 and $uid == $user->uid) {
db_query("DELETE FROM {filedepot_notifications} WHERE id=:id", array(
':id' => $id,
));
}
}
}
else {
foreach ($files as $id) {
if ($id > 0) {
if ($filedepot
->deleteFile($id) === FALSE) {
$delerror = TRUE;
}
}
}
}
if (!in_array($reportmode, $filedepot->validReportingModes)) {
$filedepot->ajaxBackgroundMode = TRUE;
}
$filedepot->cid = $cid;
$filedepot->activeview = $reportmode;
$retval['retcode'] = 200;
$retval['errmsg'] = '';
if ($reportmode == 'notifications') {
$retval['displayhtml'] = theme('filedepot_notifications');
}
else {
$retval['displayhtml'] = filedepot_displayFolderListing($filedepot->cid);
}
$retval['activefolder'] = theme('filedepot_activefolder');
if ($delerror == TRUE) {
$retval['errmsg'] = t('Error deleting one or more items - invalid permissions');
}
if (is_array($filedepot->lastRenderedFiles) and count($filedepot->lastRenderedFiles) > 0) {
$retval['lastrenderedfiles'] = json_encode($filedepot->lastRenderedFiles);
}
return $retval;
}