示例#1
0
 public function ajaxgetFileList($extension, $groupId, $limitstart = 0, $limit = 8, $type)
 {
     $fileLib = new CFilesLibrary();
     $model = CFactory::getModel('files');
     $field = $type . 'id';
     switch ($extension) {
         case 'mostdownload':
             $data = $model->getTopDownload($groupId, $limitstart, $limit, $field);
             foreach ($data as $key => $_data) {
                 $data[$key] = $fileLib->convertToMb($_data);
                 $data[$key] = $fileLib->getParentType($_data);
                 $data[$key] = $fileLib->getParentName($_data);
                 $data[$key]->deleteable = $fileLib->checkDeleteable($type, $_data, CFactory::getUser());
                 $data[$key]->user = CFactory::getUser($_data->creator);
             }
             $tmpl = new CTemplate();
             $tmpl->set('data', $data);
             $html = $tmpl->fetch('files.listing');
             break;
         default:
             $defaultextension = array('document', 'archive', 'images', 'multimedia', 'miscellaneous');
             $data = $model->getFileList($type, $groupId, $limitstart, $limit, $extension);
             foreach ($data as $key => $_data) {
                 $data[$key] = $fileLib->convertToMb($_data);
                 $data[$key] = $fileLib->getParentType($_data);
                 $data[$key] = $fileLib->getParentName($_data);
                 $data[$key]->user = CFactory::getUser($_data->creator);
                 $data[$key]->deleteable = $fileLib->checkDeleteable($type, $_data, CFactory::getUser());
                 if ($_data->type !== $extension && in_array($extension, $defaultextension, true)) {
                     unset($data[$key]);
                 }
             }
             $tmpl = new CTemplate();
             $tmpl->set('data', $data);
             $html = $tmpl->fetch('files.listing');
             break;
     }
     $json = array();
     $json['html'] = $html;
     //calculate pending files list
     $loadedFiles = $limitstart + count($data);
     $totalFiles = $model->getGroupFileCount($groupId, $extension, $field);
     if ($totalFiles > $loadedFiles) {
         //update limitstart
         $limitstart = $limitstart + count($data);
         $moreCount = $totalFiles - $loadedFiles;
         //load more option
         $json['next'] = $limitstart;
         $json['count'] = $moreCount;
     }
     die(json_encode($json));
 }