summaryrefslogtreecommitdiff
path: root/full_download.inc
diff options
context:
space:
mode:
authorSashi202024-02-08 10:46:27 +0530
committerGitHub2024-02-08 10:46:27 +0530
commit76d6778e66b13d37c3b912a2515a4211ef7e6d1c (patch)
treebcfcf26d9cd950e1995e86d5a464bbb8d9be93fb /full_download.inc
parentf378e7132172cdc3460326c39d4caaa08a771936 (diff)
parent861c481422e9b5442483c0c824757e2211d8c00e (diff)
downloadscilab_case_sudy_portal-76d6778e66b13d37c3b912a2515a4211ef7e6d1c.tar.gz
scilab_case_sudy_portal-76d6778e66b13d37c3b912a2515a4211ef7e6d1c.tar.bz2
scilab_case_sudy_portal-76d6778e66b13d37c3b912a2515a4211ef7e6d1c.zip
Merge pull request #1 from Sashi20/master
Case study proposal submission interface
Diffstat (limited to 'full_download.inc')
-rw-r--r--full_download.inc66
1 files changed, 66 insertions, 0 deletions
diff --git a/full_download.inc b/full_download.inc
new file mode 100644
index 0000000..5328e7c
--- /dev/null
+++ b/full_download.inc
@@ -0,0 +1,66 @@
+<?php
+// $Id$
+function scilab_case_study_download_full_project()
+{
+ global $user;
+ $id = arg(3);
+ $root_path = scilab_case_study_path();
+ //var_dump($root_path);die;
+ $query = db_select('case_study_proposal');
+ $query->fields('case_study_proposal');
+ $query->condition('id', $id);
+ $case_study_q = $query->execute();
+ $case_study_data = $case_study_q->fetchObject();
+ $CASE_STUDY_PATH = $case_study_data->directory_name . '/project_files/';
+ /* zip filename */
+ $zip_filename = $root_path . 'zip-' . time() . '-' . rand(0, 999999) . '.zip';
+ /* creating zip archive on the server */
+ $zip = new ZipArchive();
+ $zip->open($zip_filename, ZipArchive::CREATE);
+ $query = db_select('case_study_proposal');
+ $query->fields('case_study_proposal');
+ $query->condition('id', $id);
+ $circuit_simulation_udc_q = $query->execute();
+ $query = db_select('case_study_proposal');
+ $query->fields('case_study_proposal');
+ $query->condition('id', $id);
+ $query = db_select('case_study_submitted_abstracts_file');
+ $query->fields('case_study_submitted_abstracts_file');
+ $query->condition('proposal_id', $id);
+ $project_files = $query->execute();
+ while ($scilab_project_files = $project_files->fetchObject()) {
+ $zip->addFile($root_path . $CASE_STUDY_PATH . $scilab_project_files->filepath, $CASE_STUDY_PATH . str_replace(' ', '_', basename($scilab_project_files->filename)));
+ }
+ $zip_file_count = $zip->numFiles;
+ $zip->close();
+ if ($zip_file_count > 0) {
+ if ($user->uid) {
+ /* download zip file */
+ header('Content-Type: application/zip');
+ header('Content-disposition: attachment; filename="' . str_replace(' ', '_', $case_study_data->project_title) . '.zip"');
+ header('Content-Length: ' . filesize($zip_filename));
+ ob_end_flush();
+ ob_clean();
+ flush();
+ readfile($zip_filename);
+ unlink($zip_filename);
+ } //$user->uid
+ else {
+ header('Content-Type: application/zip');
+ header('Content-disposition: attachment; filename="' . str_replace(' ', '_', $case_study_data->project_title) . '.zip"');
+ header('Content-Length: ' . filesize($zip_filename));
+ header("Content-Transfer-Encoding: binary");
+ header('Expires: 0');
+ header('Pragma: no-cache');
+ ob_end_flush();
+ ob_clean();
+ flush();
+ readfile($zip_filename);
+ unlink($zip_filename);
+ }
+ } //$zip_file_count > 0
+ else {
+ drupal_set_message("There are no case study project in this proposal to download", 'error');
+ drupal_goto('circuit-simulation-project/full-download/project');
+ }
+} \ No newline at end of file