function filedepotAjaxServer_updateFolder in filedepot 6
Same name and namespace in other branches
- 7 lib-ajaxserver.php \filedepotAjaxServer_updateFolder()
1 call to filedepotAjaxServer_updateFolder()
- filedepot_dispatcher in ./
ajaxserver.php - @file ajaxserver.php Implementation of filedepot_ajax() - main ajax handler for the module
File
- ./
lib-ajaxserver.php, line 915 - lib-ajaxserver.php Library functions for the ajax_server
Code
function filedepotAjaxServer_updateFolder() {
global $user;
$filedepot = filedepot_filedepot();
$cid = intval($_POST['cid']);
$catpid = intval($_POST['catpid']);
$folderorder = intval($_POST['folderorder']);
$fileadded = intval($_POST['fileadded_notify']);
$filechanged = intval($_POST['filechanged_notify']);
$catname = check_plain($_POST['categoryname']);
$catdesc = check_plain($_POST['catdesc']);
$retval = array();
if ($cid > 0 and $filedepot
->checkPermission($cid, 'admin')) {
$retval['retcode'] = 200;
$retval['cid'] = $cid;
db_query("UPDATE {filedepot_categories} SET name='%s', description='%s' WHERE cid=%d", $catname, $catdesc, $cid);
$nid = db_result(db_query("SELECT nid FROM {filedepot_categories} WHERE cid=%d", $cid));
db_query("UPDATE {node} SET title='%s' WHERE nid=%d", $catname, $nid);
db_query("UPDATE {node_revisions} SET title='%s' WHERE nid=%d", $catname, $nid);
if (db_result(db_query("SELECT folderorder FROM {filedepot_categories} WHERE cid=%d", $cid)) != $folderorder) {
db_query("UPDATE {filedepot_categories} SET folderorder=%d WHERE cid=%d", $folderorder, $cid);
/* Re-order any folders that may have just been moved */
$query = db_query("SELECT cid,folderorder from {filedepot_categories} WHERE pid=%d ORDER BY folderorder", $catpid);
$folderorder = 10;
$stepnumber = 10;
while ($A = db_fetch_array($query)) {
if ($A['folderorder'] != $folderorder) {
DB_query("UPDATE {filedepot_categories} SET folderorder=%d WHERE cid=%d", $folderorder, $A['cid']);
}
$folderorder += $stepnumber;
}
}
// Update the personal folder notifications for user
if ($filechanged == 1 or $fileadded == 1) {
if (db_result(db_query("SELECT count(*) FROM {filedepot_notifications} WHERE cid=%d AND uid=%d", $cid, $user->uid)) == 0) {
$sql = "INSERT INTO {filedepot_notifications} (cid,cid_newfiles,cid_changes,uid,date) ";
$sql .= "VALUES (%d,%d,%d,%d,%d)";
db_query($sql, $cid, $fileadded, $filechanged, $user->uid, time());
}
else {
$sql = "UPDATE {filedepot_notifications} set cid_newfiles=%d, ";
$sql .= "cid_changes=%d, date=%d ";
$sql .= "WHERE uid=%d and cid=%d";
db_query($sql, $fileadded, $filechanged, time(), $user->uid, $cid);
}
}
else {
db_query("DELETE FROM {filedepot_notifications} WHERE uid=%d AND cid=%d", $user->uid, $cid);
}
// Now test if user has requested to change the folder's parent and if they have permission to this folder
$pid = db_result(db_query("SELECT pid FROM {filedepot_categories} WHERE cid=%d", $cid));
if ($pid != $catpid) {
if ($filedepot
->checkPermission($catpid, 'admin') or user_access('administer filedepot')) {
db_query("UPDATE {filedepot_categories} SET pid=%d WHERE cid=%d", $catpid, $cid);
}
}
}
else {
$retval['retcode'] = 500;
}
return $retval;
}