summaryrefslogtreecommitdiff
path: root/custom_model.module
diff options
context:
space:
mode:
authorSashi202019-10-23 15:11:38 +0530
committerSashi202019-10-23 15:11:38 +0530
commit202b397451f26953ceba68d362947af62b7ff9de (patch)
tree5b6c3755e3655bca6501c91e8c5a3f44afd19a6b /custom_model.module
parentb61823f3463e3ac58a0d9ba98239a9945c79c5a4 (diff)
downloaddwsim_custom_model-202b397451f26953ceba68d362947af62b7ff9de.tar.gz
dwsim_custom_model-202b397451f26953ceba68d362947af62b7ff9de.tar.bz2
dwsim_custom_model-202b397451f26953ceba68d362947af62b7ff9de.zip
Add proposal, code submission forms
Diffstat (limited to 'custom_model.module')
-rwxr-xr-xcustom_model.module910
1 files changed, 910 insertions, 0 deletions
diff --git a/custom_model.module b/custom_model.module
new file mode 100755
index 0000000..85cf4d4
--- /dev/null
+++ b/custom_model.module
@@ -0,0 +1,910 @@
+<?php
+// $Id$
+/*error_reporting(E_ALL);
+ini_set('display_errors', TRUE);
+ini_set('display_startup_errors', TRUE);*/
+
+require_once('general_deletion.inc');
+require_once('email.inc');
+/**
+ * Implementation of hook_menu().
+ */
+function custom_model_menu()
+{
+ $items = array();
+ /* PROPOSAL */
+ $items['custom-model/proposal'] = array(
+ 'title' => 'Custom Model Proposal Form',
+ 'description' => 'Custom Model Proposal Form',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_proposal_form'
+ ),
+ 'access arguments' => array(
+ 'custom model create proposal'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'proposal.inc'
+ );
+ $items['custom-model/manage-proposal'] = array(
+ 'title' => 'Manage Custom Model Proposals',
+ 'description' => 'Manage Custom Model Proposals',
+ 'page callback' => 'custom_model_proposal_pending',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'custom model manage proposal'
+ ),
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['custom-model/manage-proposal/pending'] = array(
+ 'title' => 'Pending Proposals',
+ 'description' => 'Pending custom model Proposals Queue',
+ 'page callback' => 'custom_model_proposal_pending',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'custom model manage proposal'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'weight' => 1,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['custom-model/manage-proposal/all'] = array(
+ 'title' => 'All Proposals',
+ 'description' => 'All Proposals',
+ 'page callback' => 'custom_model_proposal_all',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'custom model manage proposal'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 4,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['custom-model/manage-proposal/approve'] = array(
+ 'title' => 'Approve Proposal',
+ 'description' => 'Approve Proposal',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_proposal_approval_form'
+ ),
+ 'access arguments' => array(
+ 'custom model manage proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['custom-model/manage-proposal/solution-proposal-approve'] = array(
+ 'title' => 'Approve Solution Proposal',
+ 'description' => 'Approve Solution Proposal',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_solution_proposal_approval_form'
+ ),
+ 'access arguments' => array(
+ 'custom model manage proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_solution_proposal.inc'
+ );
+ $items['custom-model/manage-proposal/edit'] = array(
+ 'title' => 'Edit Proposal',
+ 'description' => 'Edit Proposal',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_proposal_edit_form'
+ ),
+ 'access arguments' => array(
+ 'custom model manage proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['custom-model/manage-proposal/status'] = array(
+ 'title' => 'Proposal Status',
+ 'description' => 'Proposal Status',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_proposal_status_form'
+ ),
+ 'access arguments' => array(
+ 'custom model approve proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['custom-model/show-proposal'] = array(
+ 'title' => 'custom model Solution Proposal',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_solution_proposal_form'
+ ),
+ 'access arguments' => array(
+ 'custom model propose solution'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'solution_proposal.inc'
+ );
+ /* CODE REVIEW */
+ $items['custom-model/code-approval'] = array(
+ 'title' => 'LM Manage Code Approval',
+ 'description' => 'Manage Code Approval',
+ 'page callback' => 'custom_model_code_approval',
+ 'access arguments' => array(
+ 'custom model approve code'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'code_approval.inc'
+ );
+ $items['custom-model/abstract-approval/approve'] = array(
+ 'title' => 'Code Approval',
+ 'description' => 'Code Approval',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_abstract_approval_form'
+ ),
+ 'access arguments' => array(
+ 'custom model approve code'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'weight' => 1,
+ 'file' => 'code_approval.inc'
+ );
+ $items['custom-model/abstract-approval/bulk'] = array(
+ 'title' => 'Bulk Manage',
+ 'description' => 'Bulk Mangage',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_abstract_bulk_approval_form'
+ ),
+ 'access arguments' => array(
+ 'custom model bulk manage abstract'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 2,
+ 'file' => 'abstract_bulk_approval.inc'
+ );
+ $items['custom-model/code-approval/bulk'] = array(
+ 'title' => 'Bulk Manage',
+ 'description' => 'Bulk Mangage',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_bulk_approval_form'
+ ),
+ 'access arguments' => array(
+ 'custom model bulk manage abstract'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 2,
+ 'file' => 'bulk_approval.inc'
+ );
+ $items['custom-model/code-approval/upload'] = array(
+ 'title' => 'Upload Code',
+ 'description' => 'Admin Upload',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_bulk_upload_code_form'
+ ),
+ 'access arguments' => array(
+ 'custom model bulk manage abstract'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'weight' => 4,
+ 'file' => 'bulk_upload_code.inc'
+ );
+ $items['custom-model/code-approval/notes'] = array(
+ 'title' => 'Notes for Reviewers',
+ 'description' => 'Notes for Reviewers',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_lab_notes_form'
+ ),
+ 'access arguments' => array(
+ 'custom model bulk manage abstract'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'weight' => 4,
+ 'file' => 'notes.inc'
+ );
+ /* CODE UPLOAD */
+ /* CODE UPLOAD */
+ $items['custom-model/abstract-code'] = array(
+ 'title' => 'Custom Model Submission Form',
+ 'description' => 'Abstract Submission',
+ 'page callback' => 'custom_model_abstract',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'custom model upload abstract'
+ ),
+ 'file' => 'upload_code.inc'
+ );
+ $items['custom-model/abstract-code/circuit simulation-project-list'] = array(
+ 'title' => 'Custom Model',
+ 'description' => 'List Experiments',
+ 'page callback' => 'custom_model_abstract',
+ 'access arguments' => array(
+ 'custom model upload abstract'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'file' => 'upload_code.inc',
+ 'weight' => 1
+ );
+ $items['custom-model/abstract-code/upload'] = array(
+ 'title' => 'Custom Model Submission Form',
+ 'description' => 'Project Upload',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_upload_abstract_code_form'
+ ),
+ 'access arguments' => array(
+ 'custom model upload abstract'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'upload_code.inc',
+ 'weight' => 2
+ );
+ $items['custom-model/abstract-code/delete'] = array(
+ 'title' => 'Delete Solution',
+ 'description' => 'Delete Solution',
+ 'page callback' => 'custom_model_upload_code_delete',
+ 'access arguments' => array(
+ 'custom model upload code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'upload_code_delete.inc'
+ );
+ /* CODE DOWNLOADS */
+ $items['custom-model/full-download/experiment'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'custom_model_download_completed_project',
+ 'access arguments' => array(
+ 'custom model approve code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'full_download.inc'
+ );
+ $items['custom-model/full-download/project'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'custom_model_download_full_project',
+ 'access arguments' => array(
+ 'custom model download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'full_download.inc'
+ );
+ /* COMPLETED custom modelS */
+ $items['custom-model/completed-custom-models'] = array(
+ 'title' => 'Completed Custom Models',
+ 'page callback' => 'custom_model_completed_proposals_all',
+ 'access arguments' => array(
+ 'custom model download code'
+ ),
+ 'file' => 'custom_model_details.inc'
+ );
+ /* LABS IN PROGRESS */
+ $items['custom-model/custom-models-in-progress'] = array(
+ 'title' => 'Custom Models in Progress',
+ 'page callback' => 'custom_model_progress_all',
+ 'access arguments' => array(
+ 'custom model download code'
+ ),
+ 'file' => 'custom_model_details.inc'
+ );
+ /* DOWNLOAD FOR EVERYONE */
+ $items['custom-model/custom-model-run'] = array(
+ 'title' => 'Download Codes',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_run_form'
+ ),
+ 'access arguments' => array(
+ 'custom model download code'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'run.inc'
+ );
+ $items['custom-model/download/resource-file'] = array(
+ 'title' => 'Download user defined compound file',
+ 'description' => 'Download resource file',
+ 'page callback' => 'custom_model_download_uploaded_file',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ $items['custom-model/download/project-file'] = array(
+ 'title' => 'Download Project file',
+ 'description' => 'Download project file',
+ 'page callback' => 'custom_model_project_files',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ /* LATEX SCRIPT */
+ $items['custom-model/generate-lab'] = array(
+ 'title' => 'Generate Lab',
+ 'description' => 'Generate Lab From Latex Script',
+ 'page callback' => 'custom_model_download_lab_pdf',
+ 'access arguments' => array(
+ 'custom model generate lab'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'latex.inc'
+ );
+ $items['custom-model/delete-lab'] = array(
+ 'title' => 'Delete Lab PDF',
+ 'description' => 'Delete Lab PDF',
+ 'page callback' => 'custom_model_delete_lab_pdf',
+ 'access arguments' => array(
+ 'custom model approve code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'latex.inc'
+ );
+ /* ADMIN SETTINGS */
+ $items['admin/settings/custom-model'] = array(
+ 'title' => 'custom model Settings',
+ 'description' => 'custom model Settings',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'custom_model_settings_form'
+ ),
+ 'access arguments' => array(
+ 'administer custom model'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'settings.inc'
+ );
+ /* AJAX REQUEST */
+ $items["lab-bulk-manage-exp/ajax"] = array(
+ "title" => "Ajax callbacks",
+ "page callback" => "lab_bulk_manage_exp_ajax",
+ "access arguments" => array(
+ "custom model bulk manage abstract"
+ ),
+ "type" => MENU_CALLBACK,
+ 'file' => 'bulk_approval.inc'
+ );
+ $items['custom-model/certificates'] = array(
+ 'title' => 'List of Custom Model Certificates',
+ 'description' => 'List of circuit simulation Certificates',
+ 'page callback' => '_list_custom_model_certificates',
+ 'access arguments' => array(
+ 'list circuit simulation certificates'
+ ),
+ 'file' => 'pdf/list_custom_model_certificate.inc'
+ );
+ $items['custom-model/certificates/generate-pdf'] = array(
+ 'title' => 'Download Certificate',
+ 'description' => 'Download Certificate',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'generate_pdf'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'access arguments' => array(
+ 'generate pdf'
+ ),
+ 'file' => 'pdf/cert_new.inc'
+ );
+ $items['custom-model/certificates-custom'] = array(
+ 'title' => 'List of Custom Model Custom Certificates',
+ 'description' => 'List of circuit simulation Custom Certificates',
+ 'page callback' => '_list_custom_model_custom_certificates',
+ 'access arguments' => array(
+ 'list circuit simulation custom certificates'
+ ),
+ 'file' => 'pdf/list_mentor_certificates.inc'
+ );
+ $items['custom-model/certificates-custom/pdf'] = array(
+ 'title' => 'Download Certificate',
+ 'description' => 'Download Certificate',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'generate_pdf'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'access arguments' => array(
+ 'generate pdf'
+ ),
+ 'file' => 'pdf/mentor_cert_pdf.inc'
+ );
+ $items['custom-model/certificates/verify'] = array(
+ "title" => "Certificate Verification",
+ "page callback" => "verify_certificates",
+'page arguments' => array(
+ 'verify_certificates'
+ ),
+ "access arguments" => array(
+ "verify certificates"
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'pdf/verify_certificates.inc'
+ );
+ return $items;
+}
+/**
+ * Implementation of hook_perm().
+ */
+function custom_model_permission()
+{
+ return array(
+ 'custom model create proposal' => array(
+ 'title' => t('custom model create proposal'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model manage proposal' => array(
+ 'title' => t('custom model manage proposal'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model edit proposal' => array(
+ 'title' => t('custom model edit proposal'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model approve proposal' => array(
+ 'title' => t('custom model approve proposal'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model propose solution' => array(
+ 'title' => t('custom model propose solution'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model approve abstract' => array(
+ 'title' => t('custom model approve code'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model bulk manage abstract' => array(
+ 'title' => t('custom model bulk manage abstract'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model bulk delete abstract' => array(
+ 'title' => t('custom model bulk delete code'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model upload abstract' => array(
+ 'title' => t('custom model upload code'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model download code' => array(
+ 'title' => t('custom model download code'),
+ 'restrict access' => TRUE
+ ),
+ 'administer custom model' => array(
+ 'title' => t('administer custom model'),
+ 'restrict access' => TRUE
+ ),
+ 'custom model generate abstract' => array(
+ 'title' => t('custom model generate abstract'),
+ 'restrict access' => TRUE
+ ),
+ "list circuit simulation certificates" => array(
+ "title" => t("list the certificates"),
+ "description" => t("list the certificates"),
+ 'restrict access' => TRUE
+ ),
+ "list circuit simulation custom certificates" => array(
+ "title" => t("list the mentor certificates"),
+ "description" => t("list the mentor certificates"),
+ 'restrict access' => TRUE
+ ),
+ "verify certificates" => array(
+ "title" => t("verify the certificates"),
+ "description" => t("verify the certificates"),
+ 'restrict access' => TRUE
+ )
+
+ );
+ // return array('custom model create proposal', 'custom model manage proposal', 'custom model edit proposal', 'custom model approve proposal', 'custom model propose solution', 'custom model approve code', 'custom model bulk manage abstract', 'custom model bulk delete code', 'custom model upload code', 'custom model download code', 'administer custom model', 'custom model generate lab');
+}
+/* AJAX CALLS */
+function custom_model_ajax()
+ {
+ $query_type = arg(2);
+ if ($query_type == 'chapter_title')
+ {
+ $chapter_number = arg(3);
+ $preference_id = arg(4);
+ //$chapter_q = db_query("SELECT * FROM {custom_model_chapter} WHERE number = %d AND preference_id = %d LIMIT 1", $chapter_number, $preference_id);
+ $query = db_select('custom_model_chapter');
+ $query->fields('custom_model_chapter');
+ $query->condition('number', $chapter_number);
+ $query->condition('preference_id', $preference_id);
+ $query->range(0, 1);
+ $chapter_q = $query->execute();
+ if ($chapter_data = $chapter_q->fetchObject())
+ {
+ echo $chapter_data->name;
+ return;
+ }
+ }
+ else if ($query_type == 'example_exists')
+ {
+ $chapter_number = arg(3);
+ $preference_id = arg(4);
+ $example_number = arg(5);
+ $chapter_id = 0;
+ $query = db_select('custom_model_chapter');
+ $query->fields('custom_model_chapter');
+ $query->condition('number', $chapter_number);
+ $query->condition('preference_id', $preference_id);
+ $query->range(0, 1);
+ $chapter_q = $query->execute();
+ if (!$chapter_data = $chapter_q->fetchObject())
+ {
+ echo '';
+ return;
+ }
+ else
+ {
+ $chapter_id = $chapter_data->id;
+ }
+ $query = db_select('custom_model_example');
+ $query->fields('custom_model_example');
+ $query->condition('chapter_id', $chapter_id);
+ $query->condition('number', $example_number);
+ $query->range(0, 1);
+ $example_q = $query->execute();
+ if ($example_data = $example_q->fetchObject())
+ {
+ if ($example_data->approval_status == 1)
+ echo 'Warning! Solution already approved. You cannot upload the same solution again.';
+ else
+ echo 'Warning! Solution already uploaded. Delete the solution and reupload it.';
+ return;
+ }
+ }
+ echo '';
+ }
+/*************************** VALIDATION FUNCTIONS *****************************/
+function custom_model_check_valid_filename($file_name)
+ {
+ if (!preg_match('/^[0-9a-zA-Z\.\_]+$/', $file_name))
+ return FALSE;
+ else if (substr_count($file_name, ".") > 1)
+ return FALSE;
+ else
+ return TRUE;
+ }
+function custom_model_check_name($name = '')
+ {
+ if (!preg_match('/^[0-9a-zA-Z\ ]+$/', $name))
+ return FALSE;
+ else
+ return TRUE;
+ }
+function custom_model_check_code_number($number = '')
+ {
+ if (!preg_match('/^[0-9]+$/', $number))
+ return FALSE;
+ else
+ return TRUE;
+ }
+function custom_model_path()
+ {
+ return $_SERVER['DOCUMENT_ROOT'] . base_path() . 'dwsim_uploads/custom_model_uploads/';
+ }
+function _cm_list_of_departments()
+{
+ $department = array();
+ $query = db_select('custom_model_list_of_departments');
+ $query->fields('custom_model_list_of_departments');
+ $query->orderBy('id', 'ASC');
+ $department_list = $query->execute();
+ while ($department_list_data = $department_list->fetchObject())
+ {
+ $department[$department_list_data->department] = $department_list_data->department;
+ } //$department_list_data = $department_list->fetchObject()
+ return $department;
+}
+function _list_of_software_versions()
+{
+ $software_version = array();
+ $query = db_select('dwsim_software_version');
+ $query->fields('dwsim_software_version');
+ $query->orderBy('id', 'ASC');
+ $software_version_list = $query->execute();
+ while ($software_version_list_data = $software_version_list->fetchObject())
+ {
+ $software_version[$software_version_list_data->dwsim_version] = $software_version_list_data->dwsim_version;
+ } //$software_version_list_data = $software_version_list->fetchObject()
+ return $software_version;
+}
+function _cm_list_of_states()
+{
+ $states = array(
+ 0 => '-Select-'
+ );
+ $query = db_select('list_states_of_india');
+ $query->fields('list_states_of_india');
+ //$query->orderBy('', '');
+ $states_list = $query->execute();
+ while ($states_list_data = $states_list->fetchObject())
+ {
+ $states[$states_list_data->state] = $states_list_data->state;
+ } //$states_list_data = $states_list->fetchObject()
+ return $states;
+}
+
+function _cm_list_of_cities()
+{
+ $city = array(
+ 0 => '-Select-'
+ );
+ $query = db_select('list_cities_of_india');
+ $query->fields('list_cities_of_india');
+ $query->orderBy('city', 'ASC');
+ $city_list = $query->execute();
+ while ($city_list_data = $city_list->fetchObject())
+ {
+ $city[$city_list_data->city] = $city_list_data->city;
+ } //$city_list_data = $city_list->fetchObject()
+ return $city;
+}
+function _cm_list_of_pincodes()
+{
+ $pincode = array(
+ 0 => '-Select-'
+ );
+ $query = db_select('list_of_all_india_pincode');
+ $query->fields('list_of_all_india_pincode');
+ $query->orderBy('pincode', 'ASC');
+ $pincode_list = $query->execute();
+ while ($pincode_list_data = $pincode_list->fetchObject())
+ {
+ $pincode[$pincode_list_data->pincode] = $pincode_list_data->pincode;
+ } //$pincode_list_data = $pincode_list->fetchObject()
+ return $pincode;
+}
+function _cm_dir_name($project, $proposar_name)
+{
+
+ $project_title = ucname($project);
+ $proposar_name = ucname($proposar_name);
+ $dir_name = $project_title . ' By ' . $proposar_name;
+ $directory_name = str_replace("__", "_", str_replace(" ", "_", str_replace("/", " ", $dir_name)));
+ return $directory_name;
+}
+function cm_RenameDir($proposal_id, $dir_name)
+{
+ $proposal_id = $proposal_id;
+ $dir_name = $dir_name;
+ $query = db_query("SELECT directory_name,id FROM custom_model_proposal WHERE id = :proposal_id", array(
+ ':proposal_id' => $proposal_id
+ ));
+ $result = $query->fetchObject();
+ if ($result != NULL)
+ {
+ $files = scandir(custom_model_path());
+ $files_id_dir = custom_model_path() . $result->id;
+ //var_dump($files);die;
+ $file_dir = custom_model_path() . $result->directory_name;
+ if (is_dir($file_dir))
+ {
+ $new_directory_name = rename(custom_model_path() . $result->directory_name, custom_model_path() . $dir_name);
+ return $new_directory_name;
+ } //is_dir($file_dir)
+ else if (is_dir($files_id_dir))
+ {
+ $new_directory_name = rename(custom_model_path() . $result->id, custom_model_path() . $dir_name);
+ return $new_directory_name;
+ } //is_dir($files_id_dir)
+ else
+ {
+ drupal_set_message('Directory not available for rename.');
+ return;
+ }
+ } //$result != NULL
+ else
+ {
+ drupal_set_message('Project directory name not present in databse');
+ return;
+ }
+ //var_dump($files);die;
+ /* if ($files != NULL)
+ {
+ $new_directory_name = rename(custom_model_path() . $result->directory_name, custom_model_path() . $dir_name) or drupal_set_message("Unable to rename folder");
+ }
+ else
+ {
+ $new_directory_name = 'Can not rename the directory. Directory not present';
+ }*/
+ return;
+}
+function CreateReadmeFileCustomModel($proposal_id)
+{
+ $result = db_query("
+ SELECT * from custom_model_proposal WHERE id = :proposal_id", array(
+ ":proposal_id" => $proposal_id
+ ));
+ $proposal_data = $result->fetchObject();
+ $root_path = custom_model_path();
+ $readme_file = fopen($root_path . $proposal_data->directory_name . "/README.txt", "w") or die("Unable to open file!");
+ $txt = "";
+ $txt .= "About the Custom Model";
+ $txt .= "\n" . "\n";
+ $txt .= "Title Of The Custom Model Project: " . $proposal_data->project_title . "\n";
+ $txt .= "Proposar Name: " . $proposal_data->name_title . " " . $proposal_data->contributor_name . "\n";
+ $txt .= "University: " . $proposal_data->university . "\n";
+ $txt .= "\n" . "\n";
+ $txt .= "OM PSSP Project By FOSSEE, IIT Bombay" . "\n";
+ fwrite($readme_file, $txt);
+ fclose($readme_file);
+ return $txt;
+}
+function cm_rrmdir_project($prop_id)
+{
+ $proposal_id = $prop_id;
+ $result = db_query("
+ SELECT * from custom_model_proposal WHERE id = :proposal_id", array(
+ ":proposal_id" => $proposal_id
+ ));
+ $proposal_data = $result->fetchObject();
+ $root_path = custom_model_path();
+ $dir = $root_path . $proposal_data->directory_name;
+ if ($proposal_data->id == $prop_id)
+ {
+ if (is_dir($dir))
+ {
+ $objects = scandir($dir);
+ foreach ($objects as $object)
+ {
+ if ($object != "." && $object != "..")
+ {
+ if (filetype($dir . "/" . $object) == "dir")
+ {
+ cm_rrmdir($dir . "/" . $object);
+ } //filetype($dir . "/" . $object) == "dir"
+ else
+ {
+ unlink($dir . "/" . $object);
+ }
+ } //$object != "." && $object != ".."
+ } //$objects as $object
+ reset($objects);
+ rmdir($dir);
+ $msg = drupal_set_message("Directory deleted successfully");
+ return $msg;
+ } //is_dir($dir)
+ $msg = drupal_set_message("Directory not present");
+ return $msg;
+ } //$proposal_data->id == $prop_id
+ else
+ {
+ $msg = drupal_set_message("Data not found");
+ return $msg;
+ }
+}
+function cm_rrmdir($dir)
+{
+ if (is_dir($dir))
+ {
+ $objects = scandir($dir);
+ foreach ($objects as $object)
+ {
+ if ($object != "." && $object != "..")
+ {
+ if (filetype($dir . "/" . $object) == "dir")
+ cm_rrmdir($dir . "/" . $object);
+ else
+ unlink($dir . "/" . $object);
+ } //$object != "." && $object != ".."
+ } //$objects as $object
+ reset($objects);
+ rmdir($dir);
+ } //is_dir($dir)
+}
+/************************* USER VERIFICATION FUNCTIONS ************************/
+function custom_model_get_proposal()
+ {
+ global $user;
+ //$proposal_q = db_query("SELECT * FROM {custom_model_proposal} WHERE solution_provider_uid = ".$user->uid." AND solution_status = 2 ORDER BY id DESC LIMIT 1");
+ $query = db_select('custom_model_proposal');
+ $query->fields('custom_model_proposal');
+ $query->orderBy('id', 'DESC');
+ $query->range(0, 1);
+ $proposal_q = $query->execute();
+ $proposal_data = $proposal_q->fetchObject();
+ if (!$proposal_data)
+ {
+ drupal_set_message("You do not have any approved custom model proposal. Please check the ");
+ drupal_goto('');
+ }
+ switch ($proposal_data->approval_status)
+ {
+ case 0:
+ drupal_set_message(t('Proposal is awaiting approval.'), 'status');
+ return FALSE;
+ case 1:
+ return $proposal_data;
+ case 2:
+ drupal_set_message(t('Proposal has been dis-approved.'), 'error');
+ return FALSE;
+ case 3:
+ drupal_set_message(t('Proposal has been marked as completed.'), 'status');
+ return FALSE;
+ default:
+ drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error');
+ return FALSE;
+ }
+ return FALSE;
+ }
+/***************************** GENERAL FUNCTIONS ******************************/
+function custom_model_get_category_name($category_id)
+ {
+ $category_data = '';
+ switch ($category_id)
+ {
+ case 0:
+ $category_data = 'Not Selected';
+ break;
+ case 1:
+ $category_data = 'Fluid Mechanics';
+ break;
+ case 2:
+ $category_data = 'Control Theory & Control Systems';
+ break;
+ case 3:
+ $category_data = 'Chemical Engineering';
+ break;
+ case 4:
+ $category_data = 'Thermodynamics';
+ break;
+ case 5:
+ $category_data = 'Mechanical Engineering';
+ break;
+ case 6:
+ $category_data = 'Signal Processing';
+ break;
+ case 7:
+ $category_data = 'Digital Communications';
+ break;
+ case 8:
+ $category_data = 'Electrical Technology';
+ break;
+ case 9:
+ $category_data = 'Mathematics & Pure Science';
+ break;
+ case 10:
+ $category_data = 'Analog Electronics';
+ break;
+ case 11:
+ $category_data = 'Digital Electronics';
+ break;
+ case 12:
+ $category_data = 'Computer Programming';
+ break;
+ case 13:
+ $category_data = 'Others';
+ break;
+ default:
+ $category_data = 'Unknown';
+ break;
+ }
+ return $category_data;
+ }
+/*function custom_model_init() {
+
+drupal_add_js(drupal_get_path('module', 'custom_model') . '/js/custom_model_ajax.js', array ('scope' => 'footer'));
+}*/
+/*************************************************************************/
+/***** Function To convert only first charater of string in uppercase ****/
+/*************************************************************************/
+function custom_model_ucname($string)
+ {
+ $string = ucwords(strtolower($string));
+ foreach (array(
+ '-',
+ '\''
+ ) as $delimiter)
+ {
+ if (strpos($string, $delimiter) !== false)
+ {
+ $string = implode($delimiter, array_map('ucfirst', explode($delimiter, $string)));
+ }
+ }
+ return $string;
+ } \ No newline at end of file