You are here

function nexdocsrv_generateFileListing in filedepot 6

Same name and namespace in other branches
  1. 7 lib-ajaxserver.php \nexdocsrv_generateFileListing()
2 calls to nexdocsrv_generateFileListing()
filedepot_dispatcher in ./ajaxserver.php
@file ajaxserver.php Implementation of filedepot_ajax() - main ajax handler for the module
filedepot_displayFolderListing in ./lib-ajaxserver.php

File

./lib-ajaxserver.php, line 269
lib-ajaxserver.php Library functions for the ajax_server

Code

function nexdocsrv_generateFileListing($cid, $level = 1, $folderprefix = '') {
  $filedepot = filedepot_filedepot();
  $filedepot->selectedTopLevelFolder = $cid;
  $files = array();
  $sql = filedepot_getFileListingSQL($cid);
  $file_query = db_query($sql);
  $output = '';
  $break = FALSE;
  if (empty($folderprefix)) {
    $q1 = db_query("SELECT cid,pid,folderorder FROM {filedepot_categories} WHERE cid=%d", $cid);
    $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);
        $rec2 = db_fetch_object($q2);
        if ($rec2->pid == 0) {
          break;
        }
        $folderprefix = $rec2->folderorder / 10 . '.' . $folderprefix;
      }
    }
  }
  $i = 0;
  while ($A = db_fetch_array($file_query)) {
    if ($filedepot->activeview == 'approvals') {
      $A['fid'] = $A['id'];
    }
    if (!in_array($fid, $files)) {
      $i++;
      $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->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 (db_fetch_array($file_query)) {
          $more_records_message = 'loadfolder_msg';
        }
      }
      if ($break) {
        $output .= theme('filedepot_filelisting', $A, $folderprefix, $level, $more_records_message);
        break;
      }
      else {
        $output .= theme('filedepot_filelisting', $A, $folderprefix, $level);
        $files[] = $A['fid'];
      }
    }
  }
  return $output;
}