summaryrefslogtreecommitdiff
path: root/full_download.inc
diff options
context:
space:
mode:
authorSashi202019-04-09 17:55:49 +0530
committerSashi202019-04-09 17:55:49 +0530
commit4890fb2cd79ac1f5be60e10a69ca201659a2fa88 (patch)
tree0f1040b54a98e896346bfce2505673a177e7ecdb /full_download.inc
parent04cadc88ade51544192ad49453fa7aebcb73cedc (diff)
downloadom_flowsheet-4890fb2cd79ac1f5be60e10a69ca201659a2fa88.tar.gz
om_flowsheet-4890fb2cd79ac1f5be60e10a69ca201659a2fa88.tar.bz2
om_flowsheet-4890fb2cd79ac1f5be60e10a69ca201659a2fa88.zip
Add interface for flowsheeting project
Diffstat (limited to 'full_download.inc')
-rwxr-xr-xfull_download.inc123
1 files changed, 123 insertions, 0 deletions
diff --git a/full_download.inc b/full_download.inc
new file mode 100755
index 0000000..07646d6
--- /dev/null
+++ b/full_download.inc
@@ -0,0 +1,123 @@
+<?php
+// $Id$
+function om_flowsheet_download_full_project()
+{
+ global $user;
+ $flowsheet_id = arg(3);
+ $root_path = om_flowsheet_path();
+ $query = db_select('om_flowsheet_proposal');
+ $query->fields('om_flowsheet_proposal');
+ $query->condition('id', $flowsheet_id);
+ $flowsheet_q = $query->execute();
+ $flowsheet_data = $flowsheet_q->fetchObject();
+ $FLOWSHEET_PATH = $flowsheet_data->directory_name . '/';
+ /* 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('om_flowsheet_proposal');
+ $query->fields('om_flowsheet_proposal');
+ $query->condition('id', $flowsheet_id);
+ $flowsheet_udc_q = $query->execute();
+ $query = db_select('om_flowsheet_submitted_abstracts_file');
+ $query->fields('om_flowsheet_submitted_abstracts_file');
+ $query->condition('proposal_id', $flowsheet_id);
+ $flowsheet_f_q = $query->execute();
+ while ($flowsheet_f_row = $flowsheet_f_q->fetchObject()) {
+ $zip->addFile($root_path . $FLOWSHEET_PATH . '/' . $flowsheet_f_row->filepath, $FLOWSHEET_PATH . str_replace(' ', '_', basename($flowsheet_f_row->filename)));
+ } //$flowsheet_f_row = $flowsheet_f_q->fetchObject()
+ $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(' ', '_', $flowsheet_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(' ', '_', $flowsheet_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 flowsheet project in this proposal to download", 'error');
+ drupal_goto('flowsheeting-project/full-download/project');
+ }
+}
+function om_flowsheet_download_completed_project()
+{
+ global $user;
+ $flowsheet_id = arg(3);
+ $root_path = om_flowsheet_path();
+ $query = db_select('om_flowsheet_proposal');
+ $query->fields('om_flowsheet_proposal');
+ $query->condition('id', $flowsheet_id);
+ $flowsheet_q = $query->execute();
+ $flowsheet_data = $flowsheet_q->fetchObject();
+ $FLOWSHEET_PATH = $flowsheet_data->directory_name . '/';
+ /* 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('om_flowsheet_proposal');
+ $query->fields('om_flowsheet_proposal');
+ $query->condition('id', $flowsheet_id);
+ $flowsheet_udc_q = $query->execute();
+
+ $query = db_select('om_flowsheet_submitted_abstracts_file');
+ $query->fields('om_flowsheet_submitted_abstracts_file');
+ $query->condition('proposal_id', $flowsheet_id);
+ $flowsheet_f_q = $query->execute();
+ while ($flowsheet_f_row = $flowsheet_f_q->fetchObject()) {
+ $zip->addFile($root_path . $FLOWSHEET_PATH . '/' . $flowsheet_f_row->filepath, str_replace(' ', '_', basename($flowsheet_f_row->filename)));
+ } //$flowsheet_f_row = $flowsheet_f_q->fetchObject()
+ $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(' ', '_', $flowsheet_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(' ', '_', $flowsheet_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 flowsheet project in this proposal to download", 'error');
+ drupal_goto('flowsheeting-project/om-flowsheet-run');
+ }
+}