summaryrefslogtreecommitdiff
path: root/general_deletion.inc
diff options
context:
space:
mode:
authorPrashant S2017-10-31 15:16:55 +0530
committerGitHub2017-10-31 15:16:55 +0530
commit90a57117bda3f6035042d24da3d400b66c6b010e (patch)
treef3497e8d06120fcfb41dd5cbd1ee6e30fc5b8306 /general_deletion.inc
parentdbcdb5525b5307a2668b32cbed318d554dc8ee3d (diff)
parentac973c330462705fd7150808c66ff65fece7bc3f (diff)
downloadesim_circuit_simulation_project_module-90a57117bda3f6035042d24da3d400b66c6b010e.tar.gz
esim_circuit_simulation_project_module-90a57117bda3f6035042d24da3d400b66c6b010e.tar.bz2
esim_circuit_simulation_project_module-90a57117bda3f6035042d24da3d400b66c6b010e.zip
Merge pull request #2 from Sashi20/drupal_7.xHEADmaster
Drupal 7.x
Diffstat (limited to 'general_deletion.inc')
-rwxr-xr-xgeneral_deletion.inc190
1 files changed, 190 insertions, 0 deletions
diff --git a/general_deletion.inc b/general_deletion.inc
new file mode 100755
index 0000000..ca584cb
--- /dev/null
+++ b/general_deletion.inc
@@ -0,0 +1,190 @@
+<?php
+/******************************************************************************/
+/****************************** DELETION FUNCTIONS ****************************/
+/******************************************************************************/
+function circuit_simulation_delete_abstract_file($abstract_id)
+{
+ $status = TRUE;
+ $root_path = circuit_simulation_path();
+ $abstract_q = db_query("SELECT * from esim_circuit_simulation_proposal dfp
+LEFT JOIN esim_circuit_simulation_submitted_abstracts dfsa ON dfp.id = dfsa.proposal_id
+WHERE dfsa.id = :abstract_id", array(
+ ":abstract_id" => $abstract_id
+ ));
+ $abstract_data = $abstract_q->fetchObject();
+ if (!$abstract_data)
+ {
+ drupal_set_message('Invalid circuit simulation project abstract.', 'error');
+ return FALSE;
+ } //!$abstract_data
+ /* deleting solutions */
+ $query = db_select('esim_circuit_simulation_submitted_abstracts_file');
+ $query->fields('esim_circuit_simulation_submitted_abstracts_file');
+ $query->condition('submitted_abstract_id', $abstract_id);
+ $abstract_f_q = $query->execute();
+ $delete_project_folder = FALSE;
+ while ($abstract_f_data = $abstract_f_q->fetchObject())
+ {
+ $delete_project_folder = TRUE;
+ if (!_circuit_simulation_delete_abstract_file($abstract_f_data->id))
+ $status = FALSE;
+ } //$abstract_f_data = $abstract_f_q->fetchObject()
+ if (!$delete_project_folder)
+ {
+ return TRUE;
+ } //!$delete_project_folder
+ if ($status)
+ {
+ $dir_path_udc = $root_path . $abstract_f_data->directory_name . '/user_defined_compound';
+ if (is_dir($dir_path_udc))
+ {
+ unlink($root_path . $abstract_f_data->directory_name . '/' . $abstract_f_data->user_defined_compound_filepath);
+ $res = rmdir($dir_path_udc);
+ if (!$res)
+ {
+ drupal_set_message(t('Error in deleting user defiend folder !folder', array(
+ '!folder' => $abstract_f_data->directory_name
+ )), 'error');
+ /* sending email to admins */
+ $email_to = variable_get('esim_circuit_simulation_emails', '');
+ $from = variable_get('esim_circuit_simulation_from_email', '');
+ $bcc = "";
+ $cc = variable_get('esim_circuit_simulation_cc_emails', '');
+ $params['standard']['subject'] = "[ERROR] Error deleting experiment folder";
+ $params['standard']['body'] = "Error deleting folder " . $dir_path;
+ $params['standard']['headers'] = array(
+ 'From' => $from,
+ 'MIME-Version' => '1.0',
+ 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes',
+ 'Content-Transfer-Encoding' => '8Bit',
+ 'X-Mailer' => 'Drupal',
+ 'Cc' => $cc,
+ 'Bcc' => $bcc
+ );
+ if (!drupal_mail('circuit_simulation', 'standard', $email_to, language_default(), $params, $from, TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ return FALSE;
+ } //!$res
+ else
+ {
+ return TRUE;
+ }
+ } //is_dir($dir_path_udc)
+ } //$status
+ return FALSE;
+}
+function circuit_simulation_abstract_delete_project($proposal_id)
+{
+ $status = TRUE;
+ $root_path = circuit_simulation_path();
+ //$proposal_q = db_query("SELECT * FROM {circuit_simulation_proposal} WHERE id = %d", $lab_id);
+ $query = db_select('esim_circuit_simulation_proposal');
+ $query->fields('esim_circuit_simulation_proposal');
+ $query->condition('id', $proposal_id);
+ $proposal_q = $query->execute();
+ $proposal_data = $proposal_q->fetchObject();
+ if (!$proposal_data)
+ {
+ drupal_set_message('Invalid Flowsheeting Project.', 'error');
+ return FALSE;
+ } //!$proposal_data
+ $query = db_select('esim_circuit_simulation_submitted_abstracts');
+ $query->fields('esim_circuit_simulation_submitted_abstracts');
+ $query->condition('proposal_id', $proposal_data->id);
+ $abstract_q = $query->execute();
+ while ($abstract_data = $abstract_q->fetchObject())
+ {
+ if (!circuit_simulation_delete_abstract_file($abstract_data->id))
+ {
+ $status = FALSE;
+ } //!circuit_simulation_delete_abstract_file($abstract_data->id)
+ } //$abstract_data = $abstract_q->fetchObject()
+ db_delete('esim_circuit_simulation_submitted_abstracts')->condition('proposal_id', $proposal_data->id)->execute();
+ $dir_path_udc = $root_path . $proposal_data->directory_name . '/user_defined_compound';
+ if (is_dir($dir_path_udc))
+ {
+ unlink($root_path . $proposal_data->directory_name . '/' . $proposal_data->user_defined_compound_filepath);
+ $res = rmdir($dir_path_udc);
+ } //is_dir($dir_path_udc)
+ $dir_main_path = $root_path . $proposal_data->directory_name;
+ if (is_dir($dir_main_path))
+ {
+ $res_main = rmdir($dir_main_path);
+ } //is_dir($dir_main_path)
+ db_delete('esim_circuit_simulation_proposal')->condition('id', $proposal_data->id)->execute();
+ return $status;
+}
+function _circuit_simulation_delete_abstract_file($abstract_id)
+{
+ global $user;
+ $root_path = circuit_simulation_path();
+ $query = db_select('esim_circuit_simulation_proposal');
+ $query->fields('esim_circuit_simulation_proposal');
+ $query->condition('id', $abstract_id);
+ $abstract_q = $query->execute();
+ $abstract_data = $abstract_q->fetchObject();
+ $abstract_q = db_query("SELECT * from esim_circuit_simulation_proposal dfp
+LEFT JOIN esim_circuit_simulation_submitted_abstracts dfsa ON dfp.id = dfsa.proposal_id
+WHERE dfsa.id = :abstract_id", array(
+ ":abstract_id" => $abstract_id
+ ));
+ $abstract_data = $abstract_q->fetchObject();
+ if (!$abstract_data)
+ {
+ drupal_set_message('Invalid circuit simulation project abstract.', 'error');
+ return FALSE;
+ } //!$abstract_data
+ /* deleting abstract files */
+ $query = db_select('esim_circuit_simulation_submitted_abstracts_file');
+ $query->fields('esim_circuit_simulation_submitted_abstracts_file');
+ $query->condition('submitted_abstract_id', $abstract_id);
+ $abstract_f_q = $query->execute();
+ while ($abstract_f_data = $abstract_f_q->fetchObject())
+ {
+ if (!file_exists($root_path . $abstract_data->directory_name . '/' . $abstract_f_data->filepath))
+ {
+ $status = FALSE;
+ drupal_set_message(t('Error deleting !file. File does not exists.', array(
+ '!file' => $abstract_data->directory_name . '/' . $abstract_f_data->filepath
+ )), 'error');
+ continue;
+ } //!file_exists($root_path . $abstract_data->directory_name . '/' . $abstract_f_data->filepath)
+ /* removing solution file */
+ if (!unlink($root_path . $abstract_data->directory_name . '/' . $abstract_f_data->filepath))
+ {
+ $status = FALSE;
+ drupal_set_message(t('Error deleting !file', array(
+ '!file' => $abstract_data->directory_name . '/' . $abstract_f_data->filepath
+ )), 'error');
+ /* sending email to admins */
+ $from = variable_get('esim_circuit_simulation_from_email', '');
+ $bcc = variable_get('esim_circuit_simulation_emails', '');
+ $cc = variable_get('esim_circuit_simulation_cc_emails', '');
+ $params['standard']['subject'] = "[ERROR] Error deleting example file";
+ $params['standard']['body'] = "Error deleting solution files by " . $user->uid . " at " . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . " :
+ file id : " . $abstract_data->id . "
+ file path : " . $abstract_data->directory_name . '/' . $abstract_f_data->filepath;
+ $params['standard']['headers'] = array(
+ 'From' => $from,
+ 'MIME-Version' => '1.0',
+ 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes',
+ 'Content-Transfer-Encoding' => '8Bit',
+ 'X-Mailer' => 'Drupal',
+ 'Cc' => $cc,
+ 'Bcc' => $bcc
+ );
+ if (!drupal_mail('circuit_simulation', 'standard', $email_to, language_default(), $params, $from, TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ } //!unlink($root_path . $abstract_data->directory_name . '/' . $abstract_f_data->filepath)
+ else
+ {
+ /* deleting example files database entries */
+ db_delete('esim_circuit_simulation_submitted_abstracts_file')->condition('id', $abstract_f_data->id)->execute();
+ }
+ } //$abstract_f_data = $abstract_f_q->fetchObject()
+ if (!$status)
+ {
+ return FALSE;
+ } //!$status
+ return $status;
+}