function filedepot_displayFolderListing in filedepot 6
Same name and namespace in other branches
- 7 lib-ajaxserver.php \filedepot_displayFolderListing()
5 calls to filedepot_displayFolderListing()
- filedepotAjaxServer_deleteCheckedFiles in ./
lib-ajaxserver.php - filedepotAjaxServer_deleteFile in ./
lib-ajaxserver.php - filedepotAjaxServer_getfilelisting in ./
lib-ajaxserver.php - @file lib-ajaxserver.php Library functions for the ajax_server
- filedepotAjaxServer_moveCheckedFiles in ./
lib-ajaxserver.php - filedepot_dispatcher in ./
ajaxserver.php - @file ajaxserver.php Implementation of filedepot_ajax() - main ajax handler for the module
File
- ./
lib-ajaxserver.php, line 194 - lib-ajaxserver.php Library functions for the ajax_server
Code
function filedepot_displayFolderListing($id = 0, $level = 0, $folderprefix = '', $rowid = 1) {
$filedepot = filedepot_filedepot();
$retval = '';
if ($id > 0 and !in_array($id, $filedepot->allowableViewFolders)) {
watchdog('filedepot', 'No view access to category @id', array(
'id' => $id,
));
return;
}
if (empty($folderprefix)) {
$q1 = db_query("SELECT cid,pid,folderorder FROM {filedepot_categories} WHERE cid=%d", $id);
$rec = db_fetch_object($q1);
if ($rec->pid != 0) {
$folderprefix = $rec->folderorder / 10;
while ($rec->pid != 0) {
$q2 = db_query("SELECT cid,pid,folderorder FROM {filedepot_categories} WHERE cid=%d", $rec->pid);
$rec = db_fetch_object($q2);
if ($rec->pid == 0) {
break;
}
$folderprefix = $rec->folderorder / 10 . '.' . $folderprefix;
}
}
}
if (empty($folderprefix)) {
$folderprefix = 0;
}
$level++;
if ($level == 1) {
$retval .= nexdocsrv_generateFileListing($id, $level, $folderprefix);
}
$sql = '';
if (function_exists('filedepot_customReportFoldersSQL')) {
$sql = trim(filedepot_customReportFoldersSQL($id, $reportmode));
}
if ($id > 0 or !empty($sql)) {
// Show any subfolders and check and see if this is a custom report
if (empty($sql)) {
$sql = "SELECT DISTINCT cid,pid,name,description,folderorder,last_modified_date FROM {filedepot_categories} WHERE pid=%d ";
if (!empty($filedepot->allowableViewFoldersSql)) {
$sql .= "AND cid in ({$filedepot->allowableViewFoldersSql}) ";
}
$sql .= "ORDER BY folderorder";
}
$qfolders = db_query($sql, $id);
$output = '';
$i = $rowid;
$maxfolderorder = db_result(db_query_range("SELECT folderorder FROM {filedepot_categories} WHERE pid=%d ORDER BY folderorder DESC", array(
$id,
), 0, 1));
while ($A = db_fetch_array($qfolders)) {
if (empty($folderprefix)) {
$formatted_foldernumber = $i;
}
else {
$formatted_foldernumber = "{$folderprefix}.{$i}";
}
$subfolderlisting = nexdocsrv_generateFileListing($A['cid'], $level, $formatted_foldernumber);
$subfolder_count = db_result(db_query("SELECT count(cid) FROM {filedepot_categories} WHERE pid=%d", $A['cid']));
if ($subfolder_count > 0) {
// Show any sub-subfolders - calling this function again recursively
$subfolderlisting .= filedepot_displayFolderListing($A['cid'], $level, $formatted_foldernumber, $rowid);
}
$retval .= theme('filedepot_folderlisting', $A, $formatted_foldernumber, $level, $subfolderlisting, $maxfolderorder);
$i++;
}
if (empty($output) and $level == 1) {
$retval .= "<div id=\"subfolder{$GLOBALS['lastRenderedFiles'][0][0]}_rec{$GLOBALS['lastRenderedFiles'][0][1]}_bottom\">";
}
}
return $retval;
}