function filedepot_displayFolderListing in filedepot 7
Same name and namespace in other branches
- 6 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
- ./
lib-ajaxserver.php, line 253 - lib-ajaxserver.php Library functions for the ajax_server
Code
function filedepot_displayFolderListing($id = 0, $level = 0, $folderprefix = '', $rowid = 1) {
global $user;
$filedepot = filedepot_filedepot();
$file_first_display = variable_get('filedepot_displayorder_filesfirst', 1) == 1 ? TRUE : FALSE;
$retval = '';
if ($id > 0 and !in_array($id, $filedepot->allowableViewFolders)) {
watchdog('filedepot', 'No view access to category @id', array(
'id' => $id,
));
return;
}
if ($id > 0) {
$folderprefix = db_query("SELECT folderprefix FROM {filedepot_folderindex} WHERE cid=:cid AND uid=:uid", array(
':cid' => $id,
':uid' => $user->uid,
))
->fetchField();
}
else {
$folderprefix = '';
}
$level++;
if ($file_first_display == TRUE) {
if ($level == 1) {
$retval .= nexdocsrv_generateFileListing($id, $level, $folderprefix);
}
}
$sql = '';
if (function_exists('filedepot_customReportFoldersSQL')) {
$reportmode = check_plain($_POST['reportmode']);
$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
$override_order = "ORDER BY " . (variable_get('filedepot_override_folderorder', 0) ? 'name ASC,' : '') . ' folderorder';
$max_orderby = "ORDER BY " . (variable_get('filedepot_override_folderorder', 0) ? 'name DESC,' : '') . ' folderorder DESC';
if (empty($sql)) {
$sql = "SELECT DISTINCT cid,pid,name,description,folderorder,last_modified_date FROM {filedepot_categories} WHERE pid=:pid ";
if (!empty($filedepot->allowableViewFoldersSql)) {
$sql .= "AND cid in ({$filedepot->allowableViewFoldersSql}) ";
}
$sql .= $override_order;
}
$qfolders = db_query($sql, array(
':pid' => $id,
));
$output = '';
$i = $rowid;
$maxfolderorder = db_query_range("SELECT folderorder FROM {filedepot_categories} WHERE pid=:pid " . $max_orderby, 0, 1, array(
':pid' => $id,
))
->fetchField();
while ($A = $qfolders
->fetchAssoc()) {
$subfolderlisting = '';
if (empty($folderprefix)) {
$formatted_foldernumber = $i;
}
else {
$formatted_foldernumber = "{$folderprefix}.{$i}";
}
$subfolder_count = db_query("SELECT count(cid) FROM {filedepot_categories} WHERE pid=:pid", array(
':pid' => $A['cid'],
))
->fetchField();
$tmpsubfolderlisting = '';
if ($subfolder_count > 0) {
// Show any sub-subfolders - calling this function again recursively
$tmpsubfolderlisting = filedepot_displayFolderListing($A['cid'], $level, $formatted_foldernumber, $rowid);
}
$tmpfilelisting = nexdocsrv_generateFileListing($A['cid'], $level, $formatted_foldernumber);
if ($file_first_display == TRUE) {
$subfolderlisting .= $tmpfilelisting;
$subfolderlisting .= $tmpsubfolderlisting;
}
else {
$subfolderlisting .= $tmpsubfolderlisting;
$subfolderlisting .= $tmpfilelisting;
}
$retval .= theme('filedepot_folderlisting', array(
'folderrec' => $A,
'folderprefix' => $formatted_foldernumber,
'level' => $level,
'subfoldercontent' => $subfolderlisting,
'maxorder' => $maxfolderorder,
));
$i++;
}
if (empty($output) and $level == 1) {
if (isset($filedepot->lastRenderedFiles[0][0])) {
$retval .= "<div id=\"subfolder{$filedepot->lastRenderedFiles[0][0]}_rec{$filedepot->lastRenderedFiles[0][1]}_bottom\">";
}
}
}
if ($file_first_display == FALSE) {
if ($level == 1) {
$retval .= nexdocsrv_generateFileListing($id, $level - 1, $folderprefix);
}
}
return $retval;
}