function nexdocsrv_generateFileListing in filedepot 7
Same name and namespace in other branches
- 6 lib-ajaxserver.php \nexdocsrv_generateFileListing()
2 calls to nexdocsrv_generateFileListing()
File
- ./
lib-ajaxserver.php, line 367 - lib-ajaxserver.php Library functions for the ajax_server
Code
function nexdocsrv_generateFileListing($cid, $level = 1, $folderprefix = '') {
global $user;
$filedepot = filedepot_filedepot();
$filedepot->selectedTopLevelFolder = $cid;
$files = array();
$limit_start = 0;
$limit_end = FALSE;
$sql = filedepot_getFileListingSQL($cid, $limit_start, $limit_end);
if ($limit_end === FALSE) {
$file_query = db_query($sql);
}
else {
$file_query = db_query_range($sql, $limit_start, $limit_end);
}
$output = '';
$break = FALSE;
if (empty($folderprefix)) {
$folderprefix = db_query("SELECT folderprefix FROM {filedepot_folderindex} WHERE cid=:cid AND uid=:uid", array(
':cid' => $cid,
':uid' => $user->uid,
))
->fetchField();
}
// Adjust variable used to count displayed files during this pass as well as to create the displayed file index.
$i = 0;
if ($filedepot->activeview == 'getmoredata') {
$i = $filedepot->recordCountPass1;
}
elseif ($filedepot->activeview == 'getmorefolderdata') {
$i = $filedepot->recordCountPass2 + $filedepot->recordCountPass1;
}
while ($A = $file_query
->fetchAssoc()) {
if ($filedepot->activeview == 'approvals') {
$A['fid'] = $A['id'];
}
if (empty($fid) or empty($files) or !in_array($fid, $files)) {
$i++;
// Existing folders where fileorder has not yet been set
if ($filedepot->activeview != 'latestfiles' and $A['fileorder'] != $i * 10) {
$A['fileorder'] = $i * 10;
db_query("UPDATE {filedepot_files} set fileorder=:order WHERE fid=:fid", array(
':order' => $A['fileorder'],
':fid' => $A['fid'],
));
}
$more_records_message = '';
if ($filedepot->ajaxBackgroundMode == TRUE and $i >= $filedepot->recordCountPass1) {
$break = TRUE;
$filedepot->lastRenderedFiles[] = array(
$cid,
$A['fid'],
$folderprefix,
$level,
);
$more_records_message = 'moredata_msg';
}
elseif ($filedepot->activeview == 'getmoredata' and $i >= $filedepot->recordCountPass1 + $filedepot->recordCountPass2) {
$break = TRUE;
// Check if there are more records - the SQL LIMIT statement allowed for one more record
// If there are more - show the AJAX link to load more data - pass 2
if ($file_query
->fetchAssoc()) {
$more_records_message = 'loadfolder_msg';
}
}
if ($break) {
$output .= theme('filedepot_filelisting', array(
'listingrec' => $A,
'foldernumber' => $folderprefix,
'level' => $level,
'morerecords' => $more_records_message,
));
break;
}
else {
$output .= theme('filedepot_filelisting', array(
'listingrec' => $A,
'foldernumber' => $folderprefix,
'level' => $level,
));
$files[] = $A['fid'];
}
}
}
return $output;
}