summaryrefslogtreecommitdiff
path: root/textbook_companion.module
diff options
context:
space:
mode:
Diffstat (limited to 'textbook_companion.module')
-rwxr-xr-xtextbook_companion.module4473
1 files changed, 4473 insertions, 0 deletions
diff --git a/textbook_companion.module b/textbook_companion.module
new file mode 100755
index 0000000..73e57f1
--- /dev/null
+++ b/textbook_companion.module
@@ -0,0 +1,4473 @@
+<?php
+/*
+implementation of hook_menu().
+*/
+function textbook_companion_menu()
+{
+ $items = array();
+ /* users */
+ $items['textbook-companion/proposal'] = array(
+ 'title' => 'Book Proposal Form',
+ 'description' => 'Book Proposal Form.',
+ 'page callback' => 'textbook_companion_proposal_all',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'create book proposal'
+ ),
+ 'type' => MENU_CALLBACK
+ );
+ /*$items["aicte_proposal"] = array(
+ "title" => "AICTE Book Proposal",
+ "description" => "AICTE Book Proposal Form",
+ "page callback" => "textbook_companion_aicte_proposal_all",
+ 'access arguments' => array('create book proposal'),
+ 'type' => MENU_CALLBACK,
+ );*/
+ $items["textbook-companion/all_proposal"] = array(
+ "title" => "Book Proposal",
+ "description" => "Book Proposal Form",
+ "page callback" => "textbook_companion_aicte_proposal_all",
+ 'access arguments' => array(
+ 'create book proposal'
+ ),
+ 'type' => MENU_CALLBACK
+ );
+ /* for reviewers */
+ $items['textbook-companion/manage-proposal'] = array(
+ 'title' => 'Manage Book Proposals',
+ 'description' => 'Manage Book Proposals',
+ 'page callback' => '_proposal_pending',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'approve book proposal'
+ ),
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['textbook-companion/manage-proposal/pending'] = array(
+ 'title' => 'Pending Proposals',
+ 'description' => 'Pending Proposals Queue',
+ 'page callback' => '_proposal_pending',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'approve book proposal'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'weight' => 1,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['textbook-companion/manage-proposal/all'] = array(
+ 'title' => 'All Proposals',
+ 'description' => 'All Proposals',
+ 'page callback' => '_proposal_all',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'approve book proposal'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 2,
+ 'file' => 'manage_proposal.inc'
+ );
+ /*$items['manage_proposal/category'] = array(
+ 'title' => 'Categorize',
+ 'description' => 'Categorize Books',
+ 'page callback' => '_category_all',
+ 'access callback' => 'user_access',
+ 'access arguments' => array('approve book proposal'),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 2,
+ 'file' => 'manage_proposal.inc',
+ );*/
+ $items['textbook-companion/manage-proposal/failed'] = array(
+ 'title' => 'Failed Proposals',
+ 'description' => 'Failed to submit code',
+ 'page callback' => '_failed_all',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'approve book proposal'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 3,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['textbook-companion/manage-proposal/approve'] = array(
+ 'title' => 'Proposal Approval',
+ 'description' => 'Proposal Approval',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'proposal_approval_form'
+ ),
+ 'access arguments' => array(
+ 'approve book proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['textbook-companion/manage-proposal/status'] = array(
+ 'title' => 'Proposal Status',
+ 'description' => 'Proposal Status',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'proposal_status_form'
+ ),
+ 'access arguments' => array(
+ 'approve book proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['textbook-companion/manage-proposal/edit'] = array(
+ 'title' => 'Edit Proposal',
+ 'description' => 'Edit Proposal',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'proposal_edit_form'
+ ),
+ 'access arguments' => array(
+ 'edit book proposal'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc'
+ );
+ /*$items['manage_proposal/category/edit'] = array(
+ 'title' => 'Edit Category',
+ 'description' => 'Edit category',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('category_edit_form'),
+ 'access arguments' => array('edit book proposal'),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'manage_proposal.inc',
+ );*/
+ $items['textbook-companion/code-approval'] = array(
+ 'title' => 'Manage Code Approval',
+ 'description' => 'Manage Code Approval',
+ 'page callback' => 'code_approval',
+ 'access arguments' => array(
+ 'approve code'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'code_approval.inc'
+ );
+ $items['textbook-companion/code-approval/approve'] = array(
+ 'title' => 'Code Approval',
+ 'description' => 'Code Approval',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'code_approval_form'
+ ),
+ 'access arguments' => array(
+ 'approve code'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'weight' => 1,
+ 'file' => 'code_approval.inc'
+ );
+ $items['textbook-companion/code-approval/bulk'] = array(
+ 'title' => 'Bulk Manage',
+ 'description' => 'Bulk Mangage',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'bulk_approval_form'
+ ),
+ 'access arguments' => array(
+ 'bulk manage code'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 2,
+ 'file' => 'code_approval.inc'
+ );
+ /* $items['textbook-companion/code-approval/edit-code-submission'] = array(
+ 'title' => 'Edit Code Submission',
+ 'description' => 'Enable users code submission interface',
+ // 'page callback' => 'drupal_get_form',
+ 'page callback' => 'edit_code_submission',
+ // 'page arguments' => array(
+ // 'edit_code_submission_form'
+ // ),
+ 'access arguments' => array(
+ 'bulk manage code'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 3,
+ 'file' => 'code_approval.inc'
+ );*/
+ $items['textbook-companion/code-approval/edit-code-submission/edit'] = array(
+ 'title' => 'Edit Code Submission',
+ 'description' => 'Enable users code submission interface',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'edit_code_submission_form'
+ ),
+ 'access arguments' => array(
+ 'bulk manage code'
+ ),
+ 'file' => 'code_approval.inc'
+ );
+ $items['textbook-companion/code-approval/editcode'] = array(
+ 'title' => 'Admin Edit Example',
+ 'description' => 'Admin Edit Example',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'upload_examples_admin_edit_form'
+ ),
+ 'access arguments' => array(
+ 'approve code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'weight' => 3,
+ 'file' => 'editcodeadmin.inc'
+ );
+ $items['textbook-companion/code-approval/notes'] = array(
+ 'title' => 'Notes for Reviewers',
+ 'description' => 'Notes for Reviewers',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'book_notes_form'
+ ),
+ 'access arguments' => array(
+ 'bulk manage code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'weight' => 4,
+ 'file' => 'notes.inc'
+ );
+ /* $items['code_approval/dependency'] = array(
+ 'title' => 'Dependency',
+ 'description' => 'Dependency',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('textbook_companion_dependency_approval_form'),
+ 'access arguments' => array('bulk manage code'),
+ 'type' => MENU_LOCAL_TASK,
+ 'weight' => 3,
+ 'file' => 'dependency_approval.inc',
+ );*/
+ $items['textbook-companion/code'] = array(
+ 'title' => 'Code Submission',
+ 'description' => 'Code Submission',
+ 'page callback' => 'list_chapters',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'upload code'
+ ),
+ 'file' => 'general.inc'
+ );
+ $items['textbook-companion/code/list_chapters'] = array(
+ 'title' => 'List Chapters',
+ 'description' => 'List Chapters',
+ 'page callback' => 'list_chapters',
+ 'access arguments' => array(
+ 'upload code'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'file' => 'general.inc',
+ 'weight' => 1
+ );
+ $items['textbook-companion/code/upload'] = array(
+ 'title' => 'Code Submission',
+ 'description' => 'Code Submission',
+ 'page callback' => 'upload_examples',
+ 'access arguments' => array(
+ 'upload code'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'code.inc',
+ 'weight' => 2
+ );
+ /* $items['textbook_companion/code/upload_dep'] = array(
+ 'title' => 'Upload Dependency',
+ 'description' => 'Upload Dependency Files',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('upload_dependency_form'),
+ 'access arguments' => array('upload code'),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'dependency.inc',
+ 'weight' => 3,
+ );
+ $items['textbook_companion/code/edit_dep'] = array(
+ 'title' => 'Edit Dependency',
+ 'description' => 'Edit Dependency File',
+ 'page callback' => 'edit_dependency',
+ 'access arguments' => array('upload code'),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'dependency.inc',
+ );
+ $items['textbook_companion/code/delete_dep'] = array(
+ 'title' => 'Delete Dependency',
+ 'description' => 'Delete Dependency File',
+ 'page callback' => 'delete_dependency',
+ 'access arguments' => array('upload code'),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'dependency.inc',
+ );*/
+ $items['textbook-companion/code/edit'] = array(
+ 'title' => 'Edit Example',
+ 'description' => 'Edit Example',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'upload_examples_edit_form'
+ ),
+ 'access arguments' => array(
+ 'edit uploaded code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'editcode.inc'
+ );
+ $items['textbook-companion/code/delete'] = array(
+ 'title' => 'Delete Example',
+ 'description' => 'Delete Example',
+ 'page callback' => '_upload_examples_delete',
+ 'access arguments' => array(
+ 'upload code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'code.inc'
+ );
+ $items['textbook-companion/code/chapter/edit'] = array(
+ 'title' => 'Edit Chapter Title',
+ 'description' => 'Edit Chapter Title',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'edit_chapter_title_form'
+ ),
+ 'access arguments' => array(
+ 'upload code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'editcode.inc'
+ );
+ $items['textbook-companion/code/list-examples'] = array(
+ 'title' => 'List Examples',
+ 'description' => 'List Examples',
+ 'page callback' => 'list_examples',
+ 'access arguments' => array(
+ 'upload code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'general.inc',
+ 'weight' => 3
+ );
+ $items['textbook-companion/textbook-search'] = array(
+ 'title' => 'Book Search',
+ 'description' => '',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'textbook_companion_search_form'
+ ),
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'search.inc'
+ );
+ $items['textbook-companion/textbook-search/search'] = array(
+ 'title' => 'Book Search',
+ 'description' => '',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'textbook_companion_search_form'
+ ),
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ 'file' => 'search.inc',
+ 'weight' => 1
+ );
+ $items['textbook-companion/textbook-search/book'] = array(
+ 'title' => 'By Book Title',
+ 'description' => '',
+ 'page callback' => 'textbook_companion_browse_book',
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'search.inc',
+ 'weight' => 2
+ );
+ $items['textbook-companion/textbook-search/author'] = array(
+ 'title' => 'By Author',
+ 'description' => '',
+ 'page callback' => 'textbook_companion_browse_author',
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'search.inc',
+ 'weight' => 3
+ );
+ $items['textbook-companion/textbook-search/college'] = array(
+ 'title' => 'By College',
+ 'description' => '',
+ 'page callback' => 'textbook_companion_browse_college',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'textbook_companion_browse_college_form'
+ ),
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'search.inc',
+ 'weight' => 4
+ );
+ $items['textbook-companion/textbook-search/student'] = array(
+ 'title' => 'By Student',
+ 'description' => '',
+ 'page callback' => 'textbook_companion_browse_student',
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'search.inc',
+ 'weight' => 5
+ );
+ /* $items['textbook_run'] = array(
+ 'title' => 'Download Codes',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('textbook_companion_run_form_ajax'),
+ 'access arguments' => array('access content'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'run.inc',
+ );*/
+ $items['textbook-companion/textbook-run'] = array(
+ 'title' => 'Download Codes',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'textbook_companion_run_form'
+ ),
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'run.inc'
+ );
+ /*$items['textbook_run_ajax'] = array(
+ 'page callback' => 'textbook_run_ajax',
+ 'access callback' => TRUE,
+ 'file' => 'run.inc',
+ );*/
+ /*$items['download_codes'] = array(
+ 'title' => 'Download Codes',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('textbook_companion_run_form_ajax'),
+ 'access arguments' => array('access content'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'run.inc',
+ );*/
+ $items['textbook-companion/download-codes'] = array(
+ 'title' => 'Download Codes',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'textbook_companion_run_form'
+ ),
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'run.inc'
+ );
+ /* download callbacks */
+ $items['textbook-companion/download/file'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_example_file',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ $items['textbook-companion/download/samplecode'] = array(
+ 'title' => 'Sample Code Download',
+ 'description' => 'Sample Code Download',
+ 'page callback' => 'textbook_companion_download_sample_code',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ /* $items['download/dependency'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_dependency_file',
+ 'access arguments' => array('download code'),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc',
+ );*/
+ $items['textbook-companion/download/example'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_example',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ $items['textbook-companion/download/chapter'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_chapter',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ $items['textbook-companion/download/book'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_book',
+ 'access arguments' => array(
+ 'download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
+ /* reviewer download */
+ $items['textbook-companion/full-download/chapter'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_full_chapter',
+ 'access arguments' => array(
+ 'approve code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'full_download.inc'
+ );
+ $items['textbook-companion/full-download/book'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_full_book',
+ 'access arguments' => array(
+ 'approve code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'full_download.inc'
+ );
+ /* external reviewer download */
+ $items['textbook-companion/full-download-external/chapter'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_full_chapter',
+ 'access arguments' => array(
+ 'download books to review'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'full_download.inc'
+ );
+ $items['textbook-companion/full-download-external/book'] = array(
+ 'title' => 'Code Download',
+ 'description' => 'Code Download',
+ 'page callback' => 'textbook_companion_download_full_book',
+ 'access arguments' => array(
+ 'download books to review'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'full_download.inc'
+ );
+ /* latex script for book generation */
+ $items['textbook-companion/generate-book'] = array(
+ 'title' => 'Generate Book',
+ 'description' => 'Generate Book From Latex Script',
+ 'page callback' => 'textbook_companion_download_book',
+ 'access arguments' => array(
+ 'generate book'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'latex.inc'
+ );
+ $items['textbook-companion/delete-book'] = array(
+ 'title' => 'Delete Book PDF',
+ 'description' => 'Delete Book PDF',
+ 'page callback' => 'textbook_companion_delete_book',
+ 'access arguments' => array(
+ 'approve code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'latex.inc'
+ );
+ /* general purpose callbacks */
+ $items['textbook-companion/ajax'] = array(
+ 'title' => 'Ajax',
+ 'description' => 'Ajax',
+ 'page callback' => 'textbook_companion_ajax',
+ 'access arguments' => array(
+ 'access content'
+ ),
+ 'type' => MENU_CALLBACK
+ );
+ /* for admin */
+ $items['admin/settings/book_companion'] = array(
+ 'title' => 'Book Companion Settings',
+ 'description' => 'Textbook Companion Settings',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'textbook_companion_settings_form'
+ ),
+ 'access arguments' => array(
+ 'administer book companion'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'settings.inc'
+ );
+ /* for data entry */
+ $items['textbook-companion/dataentry-book'] = array(
+ 'title' => 'Approved books list',
+ 'page callback' => '_data_entry_proposal_all',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'dataentry book proposal'
+ ),
+ 'file' => 'manage_proposal.inc'
+ );
+ $items['textbook-companion/dataentry-edit'] = array(
+ 'title' => 'Edit book details',
+ 'page callback' => 'dataentry_edit',
+ 'access callback' => 'user_access',
+ 'access arguments' => array(
+ 'dataentry book proposal'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'manage_proposal.inc'
+ );
+ /*Cheque Details and Contact Form */
+ $items['textbook-companion/cheque-manage/all'] = array(
+ 'title' => 'Cheque Proposals',
+ 'description' => 'Cheque Proposals',
+ 'page callback' => 'cheque_proposal_all',
+ 'access arguments' => array(
+ 'cheque proposal'
+ ),
+ 'file' => 'cheque_manage.inc'
+ );
+ $items['textbook-companion/mycontact'] = array(
+ 'title' => 'Update Contact Details',
+ 'description' => 'Update Contact Details',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'contact_details'
+ ),
+ 'access arguments' => array(
+ 'contact_details'
+ ),
+ 'file' => 'cheque_contact.inc'
+ );
+ $items['textbook-companion/cheque-contct'] = array(
+ 'title' => 'Report',
+ 'description' => 'Cheque Contact Form',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'cheque_contct_form'
+ ),
+ 'access arguments' => array(
+ 'cheque contct form'
+ ),
+ 'file' => 'cheque_contact.inc'
+ );
+ $items['textbook-companion/cheque-contact/status'] = array(
+ 'title' => 'Cheque Status',
+ 'description' => 'Cheque Status',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'cheque_status_form'
+ ),
+ 'access' => 'user_is_logged_in',
+ 'access arguments' => array(
+ 'cheque status form'
+ ),
+ 'file' => 'cheque_contact.inc'
+ );
+ $items['textbook-companion/cheque-contct/report'] = array(
+ 'title' => 'Report',
+ 'description' => 'Report',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'cheque_report_form'
+ ),
+ 'access' => 'user_is_logged_in',
+ 'access arguments' => array(
+ 'cheque report form'
+ ),
+ 'file' => 'cheque_contact.inc'
+ );
+ $items['textbook-companion/certificate'] = array(
+ 'title' => 'List Of All Certificates',
+ 'description' => 'List Of All Certificates',
+ 'page callback' => '_list_all_certificates',
+ 'access arguments' => array(
+ 'list all certificates'
+ ),
+ 'file' => 'pdf/list_all_certificates.inc'
+ );
+ $items['textbook-companion/certificate/generate-pdf'] = array(
+ 'title' => 'Download Certificate',
+ 'description' => 'Download Certificate',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'generate_pdf'
+ ),
+ 'access arguments' => array(
+ 'generate pdf'
+ ),
+ 'file' => 'pdf/generate_pdf.inc'
+ );
+ $items['textbook-companion/manage-proposal/paper-submission'] = array(
+ 'title' => 'Application Submission',
+ 'description' => 'Application Submission',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'paper_submission_form'
+ ),
+ 'access arguments' => array(
+ 'paper submission form'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'cheque_contact.inc'
+ );
+ $items["textbook-companion/nonaicte-proposal"] = array(
+ "title" => "Book Suggestion Form ",
+ "description" => "NON-AICTE Book Proposal Form",
+ 'page callback' => 'textbook_companion_nonaicte_proposal_all',
+ 'access arguments' => array(
+ 'create book proposal'
+ ),
+ 'type' => MENU_CALLBACK
+ );
+ return $items;
+}
+/**
+ * Implementation of hook_perm().
+ */
+function textbook_companion_permission()
+{
+ return array(
+ "create book proposal" => array(
+ "title" => t("Book Proposal Form"),
+ "description" => t("Book Proposal Form.")
+ ),
+ "approve book proposal" => array(
+ "title" => t("Approve book proposal"),
+ "description" => t("Allows users to approve book proposal.")
+ ),
+ "approve code" => array(
+ "title" => t("Approve code"),
+ "description" => t("Allows users to approve code.")
+ ),
+ "upload code" => array(
+ "title" => t("Upload code"),
+ "description" => t("Allows users to upload code.")
+ ),
+ "edit uploaded code" => array(
+ "title" => t("Edit uploaded code"),
+ "description" => t("Allows users to edit uploaded code.")
+ ),
+ "download code" => array(
+ "title" => t("Download code"),
+ "description" => t("Allows users to download code.")
+ ),
+ "create feedback" => array(
+ "title" => t("Create feedback"),
+ "description" => t("Allows users to create feedback.")
+ ),
+ "bulk manage code" => array(
+ "title" => t("Bulk manage code"),
+ "description" => t("Allows users to manage Bulk code.")
+ ),
+ "bulk delete code" => array(
+ "title" => t("Bulk delete code"),
+ "description" => t("Allows users to delete bulk code.")
+ ),
+ "edit book proposal" => array(
+ "title" => t("Edit book proposal"),
+ "description" => t("Allows users to edit book proposal.")
+ ),
+ "administer book companion" => array(
+ "title" => t("Administer book companion"),
+ "description" => t("Allows users to administer book companion.")
+ ),
+ "generate book" => array(
+ "title" => t("Generate book"),
+ "description" => t("Allows users to generate book.")
+ ),
+ "cheque contct form" => array(
+ "title" => t("Cheque contact form"),
+ "description" => t("Cheque contct form.")
+ ),
+ "contact_details" => array(
+ "title" => t("Contact_details"),
+ "description" => t("Contact_details.")
+ ),
+ "comment cheque" => array(
+ "title" => t("Comment cheque"),
+ "description" => t("Comment cheque.")
+ ),
+ "list all certificates" => array(
+ "title" => t("list all certificates"),
+ "description" => t("Allows users to list all certificates.")
+ ),
+ "generate pdf" => array(
+ "title" => t("Generate pdf"),
+ "description" => t("Allows users to Generate pdf.")
+ ),
+ "paper submission form" => array(
+ "title" => t("paper submission form"),
+ "description" => t("Paper submission form.")
+ ),
+ "cheque status form" => array(
+ "title" => t("Cheque status form"),
+ "description" => t("Cheque status form.")
+ ),
+ "cheque report form" => array(
+ "title" => t("Cheque report form"),
+ "description" => t("Cheque report form.")
+ ),
+ "cheque proposal" => array(
+ "title" => t("Cheque proposal"),
+ "description" => t("Cheque proposal.")
+ ),
+ "download books to review" => array(
+ "title" => t("download books to review"),
+ "description" => t("Download books to review.")
+ )
+ );
+}
+/* Aicte books pickup before the proposal form */
+/*function textbook_companion_aicte_proposal_form($form_state) {
+/* $query = "
+SELECT * FROM textbook_companion_aicte
+WHERE status = 0 AND selected = 0
+";
+$result = db_query($query);*/
+/* $query = "
+SELECT * FROM textbook_companion_aicte
+WHERE status = :status AND selected = :selected
+";
+$args = array(
+':status' => 0,
+':selected' => 0,
+);
+$result = db_query($query,$args); */
+/* $query = db_select('textbook_companion_aicte');
+$query->fields('textbook_companion_aicte');
+$query->condition('status', 0);
+$query->condition('selected', 0);
+$result = $query->execute();
+
+$form = array();
+$form["wrapper"] = array(
+"#type" => "fieldset",
+"#prefix" => "<div id='aicte-form-wrapper'>",
+"#suffix" => "</div>",
+);
+// $num_rows = mysql_num_rows($result);
+$num_rows = $query->countQuery();
+if ($num_rows > 0) {
+while($row = $result->fetchObject()) {
+/* fixing title string */
+/* $title = "";
+$edition = "";
+$year = "";
+$title = "{$row->book} by {$row->author}";
+if($row->edition) {
+$edition = "<i>ed</i>: {$row->edition}";
+}
+if($row->year) {
+if($row->edition) {
+$year = ", <i>pub</i>: {$row->year}";
+} else {
+$year = "<i>pub</i>: {$row->year}";
+}
+}
+if($edition or $year) {
+$title .= "({$edition} {$year})";
+}
+$form["wrapper"][$row->id] = array(
+"#type" => "checkbox",
+"#title" => $title,
+"#prefix" => "<div class='title'>",
+"#suffix" => "</div>",
+);
+}
+}
+$form["submit"] = array(
+"#type" => "submit",
+"#value" => "Submit Book Selections"
+);
+return $form;
+}*/
+/*function textbook_companion_aicte_proposal_form_validate($form, &$form_state) {
+/*$query = "
+SELECT * FROM textbook_companion_aicte
+WHERE status = 0 AND selected = 0
+";
+$result = db_query($query);*/
+/*$query = db_select('textbook_companion_aicte');
+$query->fields('textbook_companion_aicte');
+$query->condition('status', 0);
+$query->condition('selected', 0);
+$result = $query->execute();
+
+$count = 0;
+$selections = array();
+while($row = $result->fetchObject()) {
+if($form_state["values"][$row->id] == 1) {
+$count++;
+array_push($selections, $row->id);
+}
+}
+/* user can choose only 3 books to propose */
+/* if($count != 3) {
+form_set_error("", "Please select exactly <strong>3</strong> books. You currently selected <strong>{$count}</strong>");
+} else {
+$form_state["values"]["selections"] = $selections;
+}
+}*/
+/*function textbook_companion_aicte_proposal_form_submit($form, &$form_state) {
+global $user;
+$selections = $form_state["values"]["selections"];
+var_dump($selections);
+variable_set("aicte_".$user->uid, $selections);
+drupal_goto("proposal");
+}*/
+/*function textbook_companion_aicte_report_form($form_state) {
+/*$query = "
+SELECT * FROM textbook_companion_aicte
+WHERE status = 0
+ORDER BY book
+";
+$result = db_query($query);*/
+/*$query = db_select('textbook_companion_aicte');
+$query->fields('textbook_companion_aicte');
+$query->condition('status', 0);
+$query->orderBy('book', 'ASC');
+$result = $query->execute();
+
+$books = array();
+$books[0] = "Please select a book";
+while($row = $result->fetchObject()) {
+$books[$row->id] = "{$row->book} ({$row->author})";
+}
+$form = array();
+$form["name"] = array(
+"#type" => "textfield",
+"#title" => "Name",
+"#description" => t("Please enter your name."),
+);
+$form["email"] = array(
+"#type" => "textfield",
+"#title" => "Email",
+"#description" => t("Please enter your valid email id."),
+);
+$form["number"] = array(
+"#type" => "textfield",
+"#title" => "Number",
+"#description" => t("Please enter your valid phone number."),
+);
+$form["book"] = array(
+"#type" => "select",
+"#title" => "AICTE Book",
+"#description" => t("Please select a book."),
+"#options" => $books
+);
+$form["comment"] = array(
+"#type" => "textarea",
+"#title" => "Any other comment?",
+"#description" => t("Please enter your query (if any)")
+);
+$form["submit"] = array(
+"#type" => "submit",
+"#value" => "Submit"
+);
+return $form;
+}
+*/
+/*function textbook_companion_aicte_report_form_submit($form, &$form_state) {
+$v = $form_state["values"];
+
+/*$query = "
+INSERT INTO textbook_companion_aicte_report
+(aicte_id, name, number, email, comment)
+VALUES
+(%d, '%s', '%s', '%s', '%s')
+";
+$result = db_query($query,
+$v["book"], $v["name"], $v["number"], $v["email"], $v["comment"]
+);*/
+/*$query = "INSERT INTO textbook_companion_aicte_report
+(aicte_id, name, number, email, comment)
+VALUES (:aicte_id, :name, :number, :email, :comment)";
+$args = array(
+":aicte_id" => $v["book"],
+":name" => $v["name"],
+":number" => $v["number"],
+":email" =>$v["email"],
+":comment" => $v["comment"]
+);
+$result = db_query($query, $args, array('return' => Database::RETURN_INSERT_ID));
+
+drupal_set_message("Thank you for reporting.", "status");
+}
+*/
+function textbook_companion_aicte_proposal_all()
+{
+ global $user;
+ $page_content = "";
+ if (!$user->uid)
+ {
+ /*$query = "
+ SELECT * FROM textbook_companion_aicte
+ WHERE status = 0
+ ";
+ $result = db_query($query);*/
+ $query = db_select('textbook_companion_aicte');
+ $query->fields('textbook_companion_aicte');
+ $query->condition('status', 0);
+ $result = $query->execute();
+ $page_content .= "<ul>";
+ $page_content .= "<li>These are the list of books available for <em>Textbook Companion</em> proposal.</li>";
+ $page_content .= "<li>Please <a href='/user'><b><u>Login</u></b></a> to create a proposal.</li>";
+ $page_content .= "</ul>";
+ $page_content .= "Search : <input type='text' id='searchtext' style='width:82%'/>";
+ $page_content .= "<input type='button' value ='clear' id='search_clear'/>";
+ $page_content .= "<div id='aicte-list-wrapper'>";
+ $num_rows = $result->rowCount();
+ if ($num_rows > 0)
+ {
+ $i = 1;
+ while ($row = $result->fetchObject())
+ {
+ /* fixing title string */
+ $title = "";
+ $edition = "";
+ $year = "";
+ $title = "{$row->book} by {$row->author}";
+ if ($row->edition)
+ {
+ $edition = "<i>ed</i>: {$row->edition}";
+ } //$row->edition
+ if ($row->year)
+ {
+ if ($row->edition)
+ {
+ $year = ", <i>pub</i>: {$row->year}";
+ } //$row->edition
+ else
+ {
+ $year = "<i>pub</i>: {$row->year}";
+ }
+ } //$row->year
+ if ($edition or $year)
+ {
+ $title .= "({$edition} {$year})";
+ } //$edition or $year
+ $page_content .= "<div class='title'>{$i}) {$title}</div>";
+ $i++;
+ } //$row = $result->fetchObject()
+ } //$num_rows > 0
+ $page_content .= "</div>";
+ /* adding aicte report form */
+ //$page_content .= drupal_get_form("textbook_companion_aicte_report_form");
+ return $page_content;
+ } //!$user->uid
+ /* check if user has already submitted a proposal */
+ /* $proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('uid', $user->uid);
+ $query->orderBy('id', 'DESC');
+ $query->range(0, 1);
+ $proposal_q = $query->execute();
+ if ($proposal_q)
+ {
+ if ($proposal_data = $proposal_q->fetchObject())
+ {
+ switch ($proposal_data->proposal_status)
+ {
+ case 0:
+ drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ case 1:
+ drupal_set_message(t('Your proposal has been approved. Please go to ' . l('Code Submission', 'textbook-companion/code') . ' to upload your code'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ case 2:
+ drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal below.'), 'error');
+ break;
+ case 3:
+ drupal_set_message(t('Congratulations! You have completed your last book proposal. You can create another proposal below.'), 'status');
+ break;
+ default:
+ drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error');
+ drupal_goto('');
+ return;
+ break;
+ } //$proposal_data->proposal_status
+ } //$proposal_data = $proposal_q->fetchObject()
+ } //$proposal_q
+ variable_del("aicte_" . $user->uid);
+ $page_content .= "<h5><b>* Please select any 3 books from the below list.</b></h5></br>";
+ $page_content .= "Search : <input type='text' id='searchtext' style='width:82%'/>";
+ $page_content .= "<input type='button' value ='clear' id='search_clear'/>";
+ //$page_content .= drupal_get_form("textbook_companion_aicte_report_form");
+ $textbook_companion_aicte_proposal_form = drupal_get_form("textbook_companion_aicte_proposal_form");
+ $page_content .= drupal_render($textbook_companion_aicte_proposal_form);
+ return $page_content;
+}
+/*non aicte book proposal */
+function textbook_companion_nonaicte_proposal_all()
+{
+ global $user;
+ $page_content = "";
+ if (!$user->uid)
+ {
+ $page_content .= "<ul>";
+ $page_content .= "<li>Please <a href='/user'><b><u>Login</u></b></a> to create a proposal.</li>";
+ $page_content .= "</ul>";
+ return $page_content;
+ } //!$user->uid
+ /* check if user has already submitted a proposal */
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('uid', $user->uid);
+ $query->orderBy('id', 'DESC');
+ $query->range(0, 1);
+ $proposal_q = $query->execute();
+ if ($proposal_q)
+ {
+ if ($proposal_data = $proposal_q->fetchObject())
+ {
+ switch ($proposal_data->proposal_status)
+ {
+ case 0:
+ drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ case 1:
+ drupal_set_message(t('Your proposal has been approved. Please go to ' . l('Code Submission', 'textbook-companion/code') . ' to upload your code'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ case 2:
+ drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal below.'), 'error');
+ break;
+ case 3:
+ drupal_set_message(t('Congratulations! You have completed your last book proposal. You can create another proposal below.'), 'status');
+ break;
+ case 5:
+ drupal_set_message(t('You have submitted your all codes.'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ default:
+ drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error');
+ drupal_goto('');
+ return;
+ break;
+ } //$proposal_data->proposal_status
+ } //$proposal_data = $proposal_q->fetchObject()
+ } //$proposal_q
+ //variable_del("aicte_".$user->uid);
+ $book_proposal_nonaicte_form = drupal_get_form("book_proposal_nonaicte_form");
+ $page_content .= drupal_render($book_proposal_nonaicte_form);
+ return $page_content;
+}
+/* Textbook Companion Proposal */
+function textbook_companion_proposal_all()
+{
+ global $user;
+ $page_content = "";
+ if (!$user->uid)
+ {
+ drupal_set_message('It is mandatory to login on this website to access the proposal form', 'error');
+ drupal_goto('');
+ return;
+ } //!$user->uid
+ /* check if user has already submitted a proposal */
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('uid', $user->uid);
+ $query->orderBy('id', 'DESC');
+ $query->range(0, 1);
+ $proposal_q = $query->execute();
+ if ($proposal_q)
+ {
+ if ($proposal_data = $proposal_q->fetchObject())
+ {
+ switch ($proposal_data->proposal_status)
+ {
+ case 0:
+ drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ case 1:
+ drupal_set_message(t('Your proposal has been approved. Please go to ' . l('Code Submission', 'textbook-companion/code') . ' to upload your code'), 'status');
+ drupal_goto('');
+ return;
+ break;
+ case 2:
+ drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal below.'), 'error');
+ break;
+ case 3:
+ drupal_set_message(t('Congratulations! You have completed your last book proposal. You can create another proposal below.'), 'status');
+ break;
+ default:
+ drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error');
+ drupal_goto('');
+ return;
+ break;
+ } //$proposal_data->proposal_status
+ } //$proposal_data = $proposal_q->fetchObject()
+ } //$proposal_q
+ $book_proposal_form = drupal_get_form("book_proposal_form");
+ $page_content .= drupal_render($book_proposal_form);
+ // drupal_goto("aicte_proposal");
+ return $page_content;
+}
+/*function book_proposal_form($form, $form_state)
+{
+global $user;
+$form = array();
+$form['imp_notice'] = array(
+'#type' => 'item',
+'#markup' => '<font color="red"><b>Please fill up this form carefully as the details entered here will be exactly written in the Textbook Companion</b></font>'
+);
+$form['full_name'] = array(
+'#type' => 'textfield',
+'#title' => t('Full Name'),
+'#size' => 30,
+'#maxlength' => 50,
+'#required' => TRUE
+);
+$form['email_id'] = array(
+'#type' => 'textfield',
+'#title' => t('Email'),
+'#size' => 30,
+'#value' => $user->mail,
+'#disabled' => TRUE
+);
+$form['mobile'] = array(
+'#type' => 'textfield',
+'#title' => t('Mobile No.'),
+'#size' => 30,
+'#maxlength' => 15,
+'#required' => TRUE
+);
+$form['gender'] = array(
+'#type' => 'radios',
+'#title' => t('Gender'),
+'#options' => array(
+'M' => 'Male',
+'F' => 'Female'
+),
+'#required' => TRUE
+);
+$form['how_project'] = array(
+'#type' => 'select',
+'#title' => t('How did you come to know about this project'),
+'#options' => array(
+'r Website' => 'r Website',
+'Friend' => 'Friend',
+'Professor/Teacher' => 'Professor/Teacher',
+'Mailing List' => 'Mailing List',
+'Poster in my/other college' => 'Poster in my/other college',
+'Others' => 'Others'
+),
+'#required' => TRUE
+);
+$form['course'] = array(
+'#type' => 'textfield',
+'#title' => t('Course'),
+'#size' => 30,
+'#maxlength' => 50,
+'#required' => TRUE
+);
+$form['branch'] = array(
+'#type' => 'select',
+'#title' => t('Department/Branch'),
+'#options' => _list_of_departments(),
+'#required' => TRUE
+);
+$form['university'] = array(
+'#type' => 'textfield',
+'#title' => t('University/ Institute'),
+'#size' => 80,
+'#maxlength' => 200,
+'#required' => TRUE,
+'#attributes' => array(
+'placeholder' => 'Insert full name of your institute/ university.... '
+)
+);
+$form['country'] = array(
+'#type' => 'select',
+'#title' => t('Country'),
+'#options' => array(
+'India' => 'India',
+'Others' => 'Others'
+),
+'#required' => TRUE,
+'#tree' => TRUE,
+'#validated' => TRUE
+);
+$form['other_country'] = array(
+'#type' => 'textfield',
+'#title' => t('Other than India'),
+'#size' => 100,
+'#attributes' => array(
+'placeholder' => t('Enter your country name')
+),
+'#states' => array(
+'visible' => array(
+':input[name="country"]' => array(
+'value' => 'Others'
+)
+)
+)
+);
+$form['other_state'] = array(
+'#type' => 'textfield',
+'#title' => t('State other than India'),
+'#size' => 100,
+'#attributes' => array(
+'placeholder' => t('Enter your state/region name')
+),
+'#states' => array(
+'visible' => array(
+':input[name="country"]' => array(
+'value' => 'Others'
+)
+)
+)
+);
+$form['other_city'] = array(
+'#type' => 'textfield',
+'#title' => t('City other than India'),
+'#size' => 100,
+'#attributes' => array(
+'placeholder' => t('Enter your city name')
+),
+'#states' => array(
+'visible' => array(
+':input[name="country"]' => array(
+'value' => 'Others'
+)
+)
+)
+);
+$form['all_state'] = array(
+'#type' => 'select',
+'#title' => t('State'),
+'#selected' => array(
+'' => '-select-'
+),
+'#options' => _list_of_states(),
+'#validated' => TRUE,
+'#states' => array(
+'visible' => array(
+':input[name="country"]' => array(
+'value' => 'India'
+)
+)
+)
+);
+$form['city'] = array(
+'#type' => 'select',
+'#title' => t('City'),
+'#options' => _list_of_cities(),
+'#states' => array(
+'visible' => array(
+':input[name="country"]' => array(
+'value' => 'India'
+)
+)
+)
+);
+$form['pincode'] = array(
+'#type' => 'textfield',
+'#title' => t('Pincode'),
+'#size' => 30,
+'#maxlength' => 6,
+'#required' => False,
+'#attributes' => array(
+'placeholder' => 'Enter pincode....'
+)
+);
+/***************************************************************************/
+/* $form['hr'] = array(
+'#type' => 'item',
+'#markup' => '<hr>'
+);
+$form['faculty'] = array(
+'#type' => 'hidden',
+'#value' => 'None',
+'#title' => t('College Teacher/Professor'),
+'#size' => 30,
+'#maxlength' => 50,
+'#required' => TRUE
+);
+$form['faculty_email'] = array(
+'#type' => 'hidden',
+'#value' => 'None',
+'#title' => t('Teacher/Professor Email Id'),
+'#value' => '@email.com',
+'#size' => 30,
+'#maxlength' => 50
+);
+$form['reviewer'] = array(
+'#type' => 'hidden',
+'#value' => 'None',
+'#title' => t('Reviewer'),
+'#size' => 30,
+'#maxlength' => 50
+);
+
+$form['version'] = array(
+'#type' => 'select',
+'#title' => t('Version'),
+'#options' => _list_of_software_version(),
+'#required' => TRUE
+);
+$form['other_version'] = array(
+'#type' => 'textfield',
+'#size' => 30,
+'#maxlength' => 50,
+//'#required' => TRUE,
+'#description' => t('Specify the Older version used'),
+'#states' => array(
+'visible' => array(
+':input[name="version"]' => array(
+'value' => 'Other version'
+)
+)
+)
+);
+$form['completion_date'] = array(
+'#type' => 'textfield',
+'#title' => t('Expected Date of Completion'),
+'#description' => t('Input date format should be DD-MM-YYYY. Eg: 23-03-2011'),
+'#size' => 10,
+'#maxlength' => 10
+);
+$form['operating_system'] = array(
+'#type' => 'textfield',
+'#title' => t('Operating System'),
+'#required' => TRUE,
+'#size' => 30,
+'#maxlength' => 50
+);
+$reason = array(
+'Used in more than one University' => t('Used in more than one University'),
+'The book has multiple editions' => t('The book has multiple editions'),
+'Extremely useful' => t('Extremely useful'),
+'Other reason' => t('Any other reason state below')
+);
+$form['reason'] = array(
+'#type' => 'hidden',
+'#default_value' => 'Not available'
+);
+/*$form['reason'] = array(
+'#type' => 'checkboxes',
+'#title' => t('Reasons'),
+'#options' => $reason,
+'#required' => TRUE
+);
+$form['other_reason'] = array(
+'#type' => 'textarea',
+'#size' => 300,
+'#maxlength' => 300,
+'#states' => array(
+'visible' => array(
+':input[name="reason[Other reason]"]' => array(
+'checked' => TRUE
+)
+)
+)
+//'#required' => FALSE,
+);*/
+/*$form['proposal_type'] = array(
+'#type' => 'hidden',
+'#default_value' => '0',
+'#required' => FALSE
+);
+$form['reference'] = array(
+'#type' => 'hidden',
+'#default_value' => 'Not available',
+);
+/*$form['reference'] = array(
+'#type' => 'textarea',
+'#title' => t('Reference'),
+'#required' => TRUE,
+'#size' => 500,
+'#maxlength' => 500,
+'#attributes' => array(
+'placeholder' => 'Links of the syllabus must be provided....'
+)
+);*/
+/*$form['scilab_version'] = array(
+'#type' => 'textfield',
+'#title' => t('Scilab Version'),
+'#required' => TRUE,
+'#size' => 10,
+'#maxlength' => 10,
+);*/
+/*$form['form_type'] = array(
+'#type' => 'hidden',
+'#value' => 1
+);
+$form['preference1'] = array(
+'#type' => 'fieldset',
+'#title' => t('Book Preference 1'),
+'#collapsible' => TRUE,
+'#collapsed' => FALSE
+);
+$form['preference1']['book1'] = array(
+'#type' => 'textfield',
+'#title' => t('Title of the book'),
+'#size' => 30,
+'#maxlength' => 100,
+'#required' => TRUE
+);
+$form['preference1']['author1'] = array(
+'#type' => 'textfield',
+'#title' => t('Author Name'),
+'#size' => 30,
+'#maxlength' => 100,
+'#required' => TRUE
+//'#value' => $row1->author,
+//'#disabled' => ($row1->author?TRUE:FALSE),
+);
+$form['preference1']['isbn1'] = array(
+'#type' => 'textfield',
+'#title' => t('ISBN No'),
+'#size' => 30,
+'#maxlength' => 25,
+'#required' => TRUE
+// '#value' => $row1->isbn,
+// '#disabled' => ($row1->isbn?TRUE:FALSE),
+);
+$form['preference1']['publisher1'] = array(
+'#type' => 'textfield',
+'#title' => t('Publisher & Place'),
+'#size' => 30,
+'#maxlength' => 50,
+'#required' => TRUE
+//'#value' => $row1->publisher,
+);
+$form['preference1']['edition1'] = array(
+'#type' => 'textfield',
+'#title' => t('Edition'),
+'#size' => 4,
+'#maxlength' => 2,
+'#required' => TRUE
+//'#value' => $row1->edition,
+);
+$form['preference1']['year1'] = array(
+'#type' => 'textfield',
+'#title' => t('Year of pulication'),
+'#size' => 4,
+'#maxlength' => 4,
+'#required' => TRUE
+//'#value' => $row1->year,
+);
+$form['preference2'] = array(
+'#type' => 'fieldset',
+'#title' => t('Book Preference 2'),
+'#collapsible' => TRUE,
+'#collapsed' => FALSE
+);
+$form['preference2']['book2'] = array(
+'#type' => 'textfield',
+'#title' => t('Title of the book'),
+'#size' => 30,
+'#maxlength' => 100,
+'#required' => TRUE
+//'#value' => $row2->book,
+//'#disabled' => ($row2->book?TRUE:FALSE),
+);
+$form['preference2']['author2'] = array(
+'#type' => 'textfield',
+'#title' => t('Author Name'),
+'#size' => 30,
+'#maxlength' => 100,
+'#required' => TRUE
+//'#value' => $row2->author,
+//'#disabled' => ($row2->author?TRUE:FALSE),
+);
+$form['preference2']['isbn2'] = array(
+'#type' => 'textfield',
+'#title' => t('ISBN No'),
+'#size' => 30,
+'#maxlength' => 25,
+'#required' => TRUE
+// '#value' => $row2->isbn,
+// '#disabled' => ($row2->isbn?TRUE:FALSE),
+);
+$form['preference2']['publisher2'] = array(
+'#type' => 'textfield',
+'#title' => t('Publisher & Place'),
+'#size' => 30,
+'#maxlength' => 50,
+'#required' => TRUE
+//'#value' => $row2->publisher,
+);
+$form['preference2']['edition2'] = array(
+'#type' => 'textfield',
+'#title' => t('Edition'),
+'#size' => 4,
+'#maxlength' => 2,
+'#required' => TRUE
+//'#value' => $row2->edition,
+);
+$form['preference2']['year2'] = array(
+'#type' => 'textfield',
+'#title' => t('Year of pulication'),
+'#size' => 4,
+'#maxlength' => 4,
+'#required' => TRUE
+//'#value' => $row2->year,
+);
+$form['preference3'] = array(
+'#type' => 'fieldset',
+'#title' => t('Book Preference 3'),
+'#collapsible' => TRUE,
+'#collapsed' => FALSE
+);
+$form['preference3']['book3'] = array(
+'#type' => 'textfield',
+'#title' => t('Title of the book'),
+'#size' => 30,
+'#maxlength' => 100,
+'#required' => TRUE
+//'#value' => $row3->book,
+//'#disabled' => ($row3->book?TRUE:FALSE),
+);
+$form['preference3']['author3'] = array(
+'#type' => 'textfield',
+'#title' => t('Author Name'),
+'#size' => 30,
+'#maxlength' => 100,
+'#required' => TRUE
+//'#value' => $row3->author,
+// '#disabled' => ($row3->author?TRUE:FALSE),
+);
+$form['preference3']['isbn3'] = array(
+'#type' => 'textfield',
+'#title' => t('ISBN No'),
+'#size' => 30,
+'#maxlength' => 25,
+'#required' => TRUE
+//'#value' => $row3->isbn,
+//'#disabled' => ($row3->isbn?TRUE:FALSE),
+);
+$form['preference3']['publisher3'] = array(
+'#type' => 'textfield',
+'#title' => t('Publisher & Place'),
+'#size' => 30,
+'#maxlength' => 50,
+'#required' => TRUE
+// '#value' => $row3->publisher,
+);
+$form['preference3']['edition3'] = array(
+'#type' => 'textfield',
+'#title' => t('Edition'),
+'#size' => 4,
+'#maxlength' => 2,
+'#required' => TRUE
+//'#value' => $row3->edition,
+);
+$form['preference3']['year3'] = array(
+'#type' => 'textfield',
+'#title' => t('Year of pulication'),
+'#size' => 4,
+'#maxlength' => 4,
+'#required' => TRUE
+//'#value' => $row3->year,
+);
+/*$form['termconditions'] = array(
+'#type' => 'checkboxes',
+'#title' => t('Terms And Conditions'),
+'#options' => array(
+'status' => t('<a href="term-and-conditions" target="_blank">I agree to the Terms and Conditions</a>'),),
+'#required' => TRUE,
+);*/
+/*$form['samplefile'] = array(
+'#type' => 'fieldset',
+'#title' => t('Sample Source Files'),
+'#collapsible' => FALSE,
+'#collapsed' => FALSE
+);*/
+/*$form['samplefile']['samplefile1'] = array(
+'#type' => 'file',
+'#title' => t('Upload sample source file'),
+'#size' => 48,
+'#description' => t('Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' . t('<span style="color:red;">Allowed file extensions : ') . variable_get('textbook_companion_source_extensions', '') . '</span>'
+);*/
+/*$form['submit'] = array(
+'#type' => 'submit',
+'#value' => t('Submit')
+);
+$form['dir_name1'] = array(
+'#type' => 'hidden',
+'#value' => 'None'
+);
+$form['dir_name2'] = array(
+'#type' => 'hidden',
+'#value' => 'None'
+);
+$form['dir_name3'] = array(
+'#type' => 'hidden',
+'#value' => 'None'
+);
+/* #value fix for #default_value bug drupal6
+foreach(array("preference1", "preference2", "preference3") as $preference) {
+foreach($form[$preference] as $key => $value) {
+if(!$form[$preference][$key]["#value"]) {
+unset($form[$preference][$key]["#value"]);
+}
+}
+}*/
+/* return $form;
+}*/
+function book_proposal_form($form, &$form_state)
+{
+ global $user;
+ $form = array();
+ $form['imp_notice'] = array(
+ '#type' => 'item',
+ '#markup' => '<font color="red"><b>Please fill up this form carefully as the details entered here will be exactly written in the Textbook Companion</b></font>'
+ );
+ $form['full_name'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Full Name'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ );
+ $form['email_id'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Email'),
+ '#size' => 30,
+ '#value' => $user->mail,
+ '#disabled' => TRUE
+ );
+ $form['mobile'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Mobile No.'),
+ '#size' => 30,
+ '#maxlength' => 15,
+ '#required' => TRUE
+ );
+ $form['gender'] = array(
+ '#type' => 'radios',
+ '#title' => t('Gender'),
+ '#options' => array(
+ 'M' => 'Male',
+ 'F' => 'Female'
+ ),
+ '#required' => TRUE
+ );
+ $form['how_project'] = array(
+ '#type' => 'select',
+ '#title' => t('How did you come to know about this project'),
+ '#options' => array(
+ 'R Website' => 'R Website',
+ 'Friend' => 'Friend',
+ 'Professor/Teacher' => 'Professor/Teacher',
+ 'Mailing List' => 'Mailing List',
+ 'Poster in my/other college' => 'Poster in my/other college',
+ 'Others' => 'Others'
+ ),
+ '#required' => TRUE
+ );
+ $form['course'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Course'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ );
+ $form['branch'] = array(
+ '#type' => 'select',
+ '#title' => t('Department/Branch'),
+ '#options' => _list_of_departments(),
+ '#required' => TRUE
+ );
+ $form['university'] = array(
+ '#type' => 'textfield',
+ '#title' => t('University/ Institute'),
+ '#size' => 80,
+ '#maxlength' => 200,
+ '#required' => TRUE,
+ '#attributes' => array(
+ 'placeholder' => 'Insert full name of your institute/ university.... '
+ )
+ );
+ $form['country'] = array(
+ '#type' => 'select',
+ '#title' => t('Country'),
+ '#options' => array(
+ 'India' => 'India',
+ 'Others' => 'Others'
+ ),
+ '#required' => TRUE,
+ '#tree' => TRUE,
+ '#validated' => TRUE
+ );
+ $form['other_country'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Other than India'),
+ '#size' => 100,
+ '#attributes' => array(
+ 'placeholder' => t('Enter your country name')
+ ),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'Others'
+ )
+ )
+ )
+ );
+ $form['other_state'] = array(
+ '#type' => 'textfield',
+ '#title' => t('State other than India'),
+ '#size' => 100,
+ '#attributes' => array(
+ 'placeholder' => t('Enter your state/region name')
+ ),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'Others'
+ )
+ )
+ )
+ );
+ $form['other_city'] = array(
+ '#type' => 'textfield',
+ '#title' => t('City other than India'),
+ '#size' => 100,
+ '#attributes' => array(
+ 'placeholder' => t('Enter your city name')
+ ),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'Others'
+ )
+ )
+ )
+ );
+ $form['all_state'] = array(
+ '#type' => 'select',
+ '#title' => t('State'),
+ '#selected' => array(
+ '' => '-select-'
+ ),
+ '#options' => _list_of_states(),
+ '#validated' => TRUE,
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'India'
+ )
+ )
+ )
+ );
+ $form['city'] = array(
+ '#type' => 'select',
+ '#title' => t('City'),
+ '#options' => _list_of_cities(),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'India'
+ )
+ )
+ )
+ );
+ $form['pincode'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Pincode'),
+ '#size' => 30,
+ '#maxlength' => 6,
+ '#required' => False,
+ '#attributes' => array(
+ 'placeholder' => 'Enter pincode....'
+ )
+ );
+ /***************************************************************************/
+ $form['hr'] = array(
+ '#type' => 'item',
+ '#markup' => '<hr>'
+ );
+ $form['faculty'] = array(
+ '#type' => 'hidden',
+ '#value' => 'None',
+ '#title' => t('College Teacher/Professor'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ );
+ $form['faculty_email'] = array(
+ '#type' => 'hidden',
+ '#value' => 'None',
+ '#title' => t('Teacher/Professor Email Id'),
+ '#value' => '@email.com',
+ '#size' => 30,
+ '#maxlength' => 50
+ );
+ $form['reviewer'] = array(
+ '#type' => 'hidden',
+ '#value' => 'R TBC Team',
+ '#title' => t('Reviewer'),
+ '#size' => 30,
+ '#maxlength' => 50
+ );
+ $form['version'] = array(
+ '#type' => 'select',
+ '#title' => t('Version'),
+ '#options' => _list_of_software_version(),
+ '#required' => TRUE
+ );
+ $form['other_version'] = array(
+ '#type' => 'textfield',
+ '#size' => 30,
+ '#maxlength' => 50,
+ //'#required' => TRUE,
+ '#description' => t('Specify the Other version used'),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="version"]' => array(
+ 'value' => 'Other version'
+ )
+ )
+ )
+ );
+ $form['completion_date'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Expected Date of Completion'),
+ '#description' => t('Input date format should be DD-MM-YYYY. Eg: 23-03-2011'),
+ '#size' => 10,
+ '#maxlength' => 10
+ );
+ $form['operating_system'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Operating System'),
+ '#required' => TRUE,
+ '#size' => 30,
+ '#maxlength' => 50
+ );
+ $reason = array(
+ 'Used in more than one University' => t('Used in more than one University'),
+ 'The book has multiple editions' => t('The book has multiple editions'),
+ 'Extremely useful' => t('Extremely useful'),
+ 'Other reason' => t('Any other reason state below')
+ );
+ $form['reason'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Reasons'),
+ '#options' => $reason,
+ '#required' => TRUE
+ );
+ $form['other_reason'] = array(
+ '#type' => 'textarea',
+ '#size' => 300,
+ '#maxlength' => 300,
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="reason[Other reason]"]' => array(
+ 'checked' => TRUE
+ )
+ )
+ )
+ //'#required' => FALSE,
+ );
+ $form['proposal_type'] = array(
+ '#type' => 'hidden',
+ '#default_value' => '1',
+ '#required' => FALSE
+ );
+ $form['reference'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Reference'),
+ '#required' => TRUE,
+ '#size' => 500,
+ '#maxlength' => 500,
+ '#attributes' => array(
+ 'placeholder' => 'Links of the syllabus must be provided....'
+ )
+ );
+ $form['form_type'] = array(
+ '#type' => 'hidden',
+ '#value' => 1
+ );
+ $form['preference1'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Book Preference'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['preference1']['book1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Title of the book'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE
+ );
+ $form['preference1']['author1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Author Name'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE
+ //'#value' => $row1->author,
+ //'#disabled' => ($row1->author?TRUE:FALSE),
+ );
+ $form['preference1']['isbn1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('ISBN No'),
+ '#size' => 30,
+ '#maxlength' => 25,
+ '#required' => TRUE
+ // '#value' => $row1->isbn,
+ // '#disabled' => ($row1->isbn?TRUE:FALSE),
+ );
+ $form['preference1']['publisher1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Publisher & Place'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ //'#value' => $row1->publisher,
+ );
+ $form['preference1']['edition1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Edition'),
+ '#size' => 4,
+ '#maxlength' => 2,
+ '#required' => TRUE
+ //'#value' => $row1->edition,
+ );
+ $form['preference1']['year1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Year of publication'),
+ '#size' => 4,
+ '#maxlength' => 4,
+ '#required' => TRUE
+ //'#value' => $row1->year,
+ );
+ /*$form['preference2'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Book Preference 2'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['preference2']['book2'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Title of the book'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE
+ //'#value' => $row2->book,
+ //'#disabled' => ($row2->book?TRUE:FALSE),
+ );
+ $form['preference2']['author2'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Author Name'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE
+ //'#value' => $row2->author,
+ //'#disabled' => ($row2->author?TRUE:FALSE),
+ );
+ $form['preference2']['isbn2'] = array(
+ '#type' => 'textfield',
+ '#title' => t('ISBN No'),
+ '#size' => 30,
+ '#maxlength' => 25,
+ '#required' => TRUE
+ // '#value' => $row2->isbn,
+ // '#disabled' => ($row2->isbn?TRUE:FALSE),
+ );
+ $form['preference2']['publisher2'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Publisher & Place'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ //'#value' => $row2->publisher,
+ );
+ $form['preference2']['edition2'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Edition'),
+ '#size' => 4,
+ '#maxlength' => 2,
+ '#required' => TRUE
+ //'#value' => $row2->edition,
+ );
+ $form['preference2']['year2'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Year of pulication'),
+ '#size' => 4,
+ '#maxlength' => 4,
+ '#required' => TRUE
+ //'#value' => $row2->year,
+ );
+ $form['preference3'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Book Preference 3'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['preference3']['book3'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Title of the book'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE
+ //'#value' => $row3->book,
+ //'#disabled' => ($row3->book?TRUE:FALSE),
+ );
+ $form['preference3']['author3'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Author Name'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE
+ //'#value' => $row3->author,
+ // '#disabled' => ($row3->author?TRUE:FALSE),
+ );
+ $form['preference3']['isbn3'] = array(
+ '#type' => 'textfield',
+ '#title' => t('ISBN No'),
+ '#size' => 30,
+ '#maxlength' => 25,
+ '#required' => TRUE
+ //'#value' => $row3->isbn,
+ //'#disabled' => ($row3->isbn?TRUE:FALSE),
+ );
+ $form['preference3']['publisher3'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Publisher & Place'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ // '#value' => $row3->publisher,
+ );
+ $form['preference3']['edition3'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Edition'),
+ '#size' => 4,
+ '#maxlength' => 2,
+ '#required' => TRUE
+ //'#value' => $row3->edition,
+ );
+ $form['preference3']['year3'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Year of pulication'),
+ '#size' => 4,
+ '#maxlength' => 4,
+ '#required' => TRUE
+ //'#value' => $row3->year,
+ );
+ /*$form['termconditions'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Terms And Conditions'),
+ '#options' => array(
+ 'status' => t('<a href="term-and-conditions" target="_blank">I agree to the Terms and Conditions</a>'),),
+ '#required' => TRUE,
+ );*/
+ $form['samplefile'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Sample Source Files'),
+ '#collapsible' => FALSE,
+ '#collapsed' => FALSE
+ );
+ $form['samplefile']['samplefile1'] = array(
+ '#type' => 'file',
+ '#title' => t('Upload sample source file'),
+ '#size' => 48,
+ '#description' => t('Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' . t('<span style="color:red;">Allowed file extensions : ') . variable_get('textbook_companion_sample_source_extensions', '') . '</span>'
+ );
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Submit')
+ );
+ $form['dir_name'] = array(
+ '#type' => 'hidden',
+ '#value' => 'None'
+ );
+ /* #value fix for #default_value bug drupal6
+ foreach(array("preference1", "preference2", "preference3") as $preference) {
+ foreach($form[$preference] as $key => $value) {
+ if(!$form[$preference][$key]["#value"]) {
+ unset($form[$preference][$key]["#value"]);
+ }
+ }
+ }*/
+ return $form;
+}
+function book_proposal_form_validate($form, &$form_state)
+{
+ /* mobile */
+ if (!preg_match('/^[0-9\ \+]{0,15}$/', $form_state['values']['mobile']))
+ form_set_error('mobile', t('Invalid mobile number'));
+ /* date of completion */
+ if (!preg_match('/^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$/', $form_state['values']['completion_date']))
+ form_set_error('completion_date', t('Invalid expected date of completion'));
+ list($d, $m, $y) = explode('-', $form_state['values']['completion_date']);
+ $d = (int) $d;
+ $m = (int) $m;
+ $y = (int) $y;
+ if (!checkdate($m, $d, $y))
+ form_set_error('completion_date', t('Invalid expected date of completion'));
+ if (mktime(0, 0, 0, $m, $d, $y) <= time())
+ form_set_error('completion_date', t('Expected date of completion should be in future'));
+ /* edition */
+ $cur_year = date('Y');
+ if (!preg_match('/^[A-Za-z]/', $form_state['values']['book1']))
+ form_set_error('book1', t('Invalid book name for Book Preference 1'));
+ if (!preg_match('/^[A-Za-z]/', $form_state['values']['author1']))
+ if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn1']))
+ form_set_error('isbn1', t('Invalid ISBN for Book Preference 1'));
+ if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition1']))
+ form_set_error('edition1', t('Invalid edition for Book Preference 1'));
+ if (!preg_match('/^[1-3][0-9][0-9][0-9]$/', $form_state['values']['year1']))
+ form_set_error('year1', t('Invalid year of pulication for Book Preference 1'));
+ if ((int) $form_state['values']['year1'] > $cur_year)
+ form_set_error('year1', t('Year of pulication should be not in the future for Book Preference 1'));
+ if ($form_state['values']['book1'] && $form_state['values']['author1'])
+ {
+ $bk1 = trim($form_state['values']['book1']);
+ $auth1 = trim($form_state['values']['author1']);
+ //var_dump(_dir_name($bk1, $auth1))
+ $pref_id = NULL;
+ if (_dir_name($bk1, $auth1, $pref_id) != NULL)
+ {
+ $form_state['values']['dir_name1'] = _dir_name($bk1, $auth1, $pref_id);
+ } //_dir_name($bk1, $auth1, $pref_id) != NULL
+ } //$form_state['values']['book1'] && $form_state['values']['author1']
+ /*****************************************************************************
+ if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn2']))
+ form_set_error('isbn2', t('Invalid ISBN for Book Preference 2'));
+ if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition2']))
+ form_set_error('edition2', t('Invalid edition for Book Preference 2'));
+ if (!preg_match('/^[1-3][0-9][0-9][0-9]$/', $form_state['values']['year2']))
+ form_set_error('year2', t('Invalid year of pulication for Book Preference 2'));
+ if ((int) $form_state['values']['year2'] > $cur_year)
+ form_set_error('year2', t('Year of pulication should be not in the future for Book Preference 2'));
+ if ($form_state['values']['book2'] && $form_state['values']['author2']) {
+ $bk2 = trim($form_state['values']['book2']);
+ $auth2 = trim($form_state['values']['author2']);
+ //var_dump(_dir_name($bk1, $auth1))
+ $pref_id = NULL;
+ if (_dir_name($bk2, $auth2, $pref_id) != NULL) {
+ $form_state['values']['dir_name2'] = _dir_name($bk2, $auth2, $pref_id);
+ }
+ /*****************************************************************************
+ }
+ if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn3']))
+ form_set_error('isbn3', t('Invalid ISBN for Book Preference 3'));
+ if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition3']))
+ form_set_error('edition3', t('Invalid edition for Book Preference 3'));
+ if (!preg_match('/^[1-3][0-9][0-9][0-9]$/', $form_state['values']['year3']))
+ form_set_error('year3', t('Invalid year of pulication for Book Preference 3'));
+ if ((int) $form_state['values']['year3'] > $cur_year)
+ form_set_error('year3', t('Year of pulication should be not in the future for Book Preference 3'));
+ if ($form_state['values']['book3'] && $form_state['values']['author3']) {
+ $bk3 = trim($form_state['values']['book3']);
+ $auth3 = trim($form_state['values']['author3']);
+ //var_dump(_dir_name($bk1, $auth1))
+ $pref_id = NULL;
+ if (_dir_name($bk1, $auth1, $pref_id) != NULL) {
+ $form_state['values']['dir_name3'] = _dir_name($bk3, $auth3, $pref_id);
+ }
+ /*****************************************************************************
+
+ }*/
+ if ($form_state['values']['version'] == 'Other version')
+ {
+ if ($form_state['values']['other_version'] == '')
+ {
+ form_set_error('other_version', t('Please provide valid version'));
+ } //$form_state['values']['other_version'] == ''
+ } //$form_state['values']['version'] == 'Other version'
+ if (isset($_FILES['files']))
+ {
+ /* check if atleast one source or result file is uploaded */
+ if (!($_FILES['files']['name']['samplefile1']))
+ form_set_error('samplefile1', t('Please upload sample code main or source file.'));
+ /* check for valid filename extensions */
+ foreach ($_FILES['files']['name'] as $file_form_name => $file_name)
+ {
+ if ($file_name)
+ {
+ /* checking file type */
+ if (strstr($file_form_name, 'sample'))
+ $file_type = 'S';
+ else
+ $file_type = 'U';
+ $allowed_extensions_str = '';
+ switch ($file_type)
+ {
+ case 'S':
+ $allowed_extensions_str = variable_get('textbook_companion_sample_source_extensions', '');
+ break;
+ } //$file_type
+ $allowed_extensions = explode(',', $allowed_extensions_str);
+ $fnames = explode('.', strtolower($_FILES['files']['name'][$file_form_name]));
+ $temp_extension = end($fnames);
+ if (!in_array($temp_extension, $allowed_extensions))
+ form_set_error($file_form_name, t('Only file with ' . $allowed_extensions_str . ' extensions can be uploaded.'));
+ if ($_FILES['files']['size'][$file_form_name] <= 0)
+ form_set_error($file_form_name, t('File size cannot be zero.'));
+ /* check if valid file name */
+ if (!textbook_companion_check_valid_filename($_FILES['files']['name'][$file_form_name]))
+ form_set_error($file_form_name, t('Invalid file name specified. Only alphabets and numbers are allowed as a valid filename.'));
+ } //$file_name
+ } //$_FILES['files']['name'] as $file_form_name => $file_name
+ } //isset($_FILES['files'])
+ if ($form_state['values']['version'] == 'Other version')
+ {
+ if ($form_state['values']['other_version'] == '')
+ {
+ form_set_error('other_version', t('Please provide valid version'));
+ } //$form_state['values']['other_version'] == ''
+ } //$form_state['values']['version'] == 'Other version'
+ return;
+}
+function book_proposal_form_submit($form, &$form_state, $directory_name = NULL)
+{
+ global $user;
+ $root_path = textbook_companion_samplecode_path();
+ $selections = variable_get("aicte_" . $user->uid, "");
+ if (!$user->uid)
+ {
+ drupal_set_message('It is mandatory to login on this website to access the proposal form', 'error');
+ return;
+ } //!$user->uid
+ /* completion date to timestamp */
+ list($d, $m, $y) = explode('-', $form_state['values']['completion_date']);
+ $completion_date_timestamp = mktime(0, 0, 0, $m, $d, $y);
+ $r_version = $form_state['values']['version'];
+ if ($form_state['values']['version'] == 'Other version')
+ {
+ $form_state['values']['version'] = $form_state['values']['other_version'];
+ } //$form_state['values']['version'] == 'Other version'
+ if ($form_state['values']['country'] == 'other')
+ {
+ $form_state['values']['country'] = trim($form_state['values']['other_country']);
+ $form_state['values']['all_state'] = trim($form_state['values']['other_state']);
+ } //$form_state['values']['country'] == 'other'
+ if (isset($_POST['reason']))
+ {
+ if (!($form_state['values']['other_reason']))
+ {
+ $my_reason = implode(", ", $_POST['reason']);
+ } //!($form_state['values']['other_reason'])
+ else
+ {
+ $my_reason = implode(", ", $_POST['reason']);
+ $my_reason = $my_reason . "-" . " " . $form_state['values']['other_reason'];
+ }
+ $form_state['values']['reason'] = $my_reason;
+ } //isset($_POST['reason'])
+ $query = "INSERT INTO {textbook_companion_proposal}
+ (uid, approver_uid, full_name, mobile, gender, how_project, course, branch, university,city,pincode,state,country, faculty, reviewer,reference, completion_date, creation_date, approval_date, proposal_status, r_version, operating_system, teacher_email,reason,samplefilepath,proposal_type,proposed_completion_date) VALUES (:uid, :approver_uid, :full_name, :mobile, :gender, :how_project, :course, :branch, :university, :city,:pincode,:state,:country, :faculty, :reviewer,:reference, :completion_date,
+ :creation_date, :approval_date, :proposal_status, :r_version, :operating_system,
+:teacher_email,:reason,:samplefilepath,:proposal_type, :proposed_completion_date)";
+ $args = array(
+ ":uid" => $user->uid,
+ ":approver_uid" => 0,
+ ":full_name" => trim(ucwords(strtolower($form_state['values']['full_name']))),
+ ":mobile" => trim($form_state['values']['mobile']),
+ ":gender" => $form_state['values']['gender'],
+ ":how_project" => $form_state['values']['how_project'],
+ ":course" => trim($form_state['values']['course']),
+ ":branch" => $form_state['values']['branch'],
+ ":university" => trim($form_state['values']['university']),
+ ":city" => trim($form_state['values']['city']),
+ ":pincode" => $form_state['values']['pincode'],
+ ":state" => trim($form_state['values']['all_state']),
+ ":country" => $form_state['values']['country'],
+ ":faculty" => ucwords(strtolower($form_state['values']['faculty'])),
+ ":reviewer" => ucwords(strtolower($form_state['values']['reviewer'])),
+ ":reference" => trim($form_state['values']['reference']),
+ ":completion_date" => $completion_date_timestamp,
+ ":creation_date" => time(),
+ ":approval_date" => 0,
+ ":proposal_status" => 0,
+ ":r_version" => trim($form_state['values']['version']),
+ ":operating_system" => trim($form_state['values']['operating_system']),
+ ":teacher_email" => $form_state['values']['faculty_email'],
+ ":reason" => $form_state['values']['reason'],
+ ":samplefilepath" => "",
+ ":proposal_type" => 0,
+ ":proposed_completion_date" => $completion_date_timestamp
+ );
+ $result = db_query($query, $args, array(
+ 'return' => Database::RETURN_INSERT_ID
+ ));
+ $dest_path = $result . '/';
+ if (!is_dir($root_path . $dest_path))
+ mkdir($root_path . $dest_path);
+ /* uploading files */
+ foreach ($_FILES['files']['name'] as $file_form_name => $file_name)
+ {
+ if ($file_name)
+ {
+ /* checking file type */
+ $file_type = 'S';
+ if (file_exists($root_path . $dest_path . $_FILES['files']['name'][$file_form_name]))
+ {
+ // drupal_set_message(t("Error uploading file. File !filename already exists.", array('!filename' => $_FILES['files']['name'][$file_form_name])), 'error');
+ unlink($root_path . $dest_path . $_FILES['files']['name'][$file_form_name]);
+ } //file_exists($root_path . $dest_path . $_FILES['files']['name'][$file_form_name])
+ /* uploading file */
+ if (move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $dest_path . $_FILES['files']['name'][$file_form_name]))
+ {
+ $query = "UPDATE {textbook_companion_proposal} SET samplefilepath = :samplefilepath WHERE id = :id";
+ $args = array(
+ ":samplefilepath" => $dest_path . $_FILES['files']['name'][$file_form_name],
+ ":id" => $result
+ );
+ $updateresult = db_query($query, $args);
+ drupal_set_message($file_name . ' uploaded successfully.', 'status');
+ } //move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $dest_path . $_FILES['files']['name'][$file_form_name])
+ else
+ {
+ drupal_set_message('Error uploading file : ' . $dest_path . '/' . $file_name, 'error');
+ }
+ } //$file_name
+ } //$_FILES['files']['name'] as $file_form_name => $file_name
+ if (!$result)
+ {
+ drupal_set_message(t('Error receiving your proposal. Please try again.'), 'error');
+ return;
+ } //!$result
+ /* proposal id */
+ $proposal_id = $result;
+ /* inserting first book preference */
+ if ($form_state['values']['book1'])
+ {
+ /*$result = db_query("INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES
+ (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)",
+ $proposal_id,
+ 1,
+ ucwords(strtolower($form_state['values']['book1'])),
+ ucwords(strtolower($form_state['values']['author1'])),
+ $form_state['values']['isbn1'],
+ ucwords(strtolower($form_state['values']['publisher1'])),
+ $form_state['values']['edition1'],
+ $form_state['values']['year1'],
+ 0,
+ 0
+ );*/
+ $bk1 = trim($form_state['values']['book1']);
+ $auth1 = trim($form_state['values']['author1']);
+ $pref_id = NULL;
+ $directory_name = _dir_name($bk1, $auth1, $pref_id);
+ $query = "INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status, directory_name) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status, :directory_name)
+ ";
+ $args = array(
+ ":proposal_id" => $proposal_id,
+ ":pref_number" => 1,
+ ":book" => trim(ucwords(strtolower($form_state['values']['book1']))),
+ ":author" => trim(ucwords(strtolower($form_state['values']['author1']))),
+ ":isbn" => trim($form_state['values']['isbn1']),
+ ":publisher" => trim(ucwords(strtolower($form_state['values']['publisher1']))),
+ ":edition" => trim($form_state['values']['edition1']),
+ ":year" => trim($form_state['values']['year1']),
+ ":category" => 0,
+ ":approval_status" => 0,
+ ":directory_name" => $form_state['values']['dir_name1']
+ );
+ $result = db_query($query, $args, array(
+ 'return' => Database::RETURN_INSERT_ID
+ ));
+ if (!$result)
+ {
+ drupal_set_message(t('Error receiving your first book preference.'), 'error');
+ } //!$result
+ } //$form_state['values']['book1']
+ /*******************************************************/
+ /* if ($form_state['values']['book2']) {
+ /*$result = db_query("INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES
+ (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)",
+ $proposal_id,
+ 1,
+ ucwords(strtolower($form_state['values']['book1'])),
+ ucwords(strtolower($form_state['values']['author1'])),
+ $form_state['values']['isbn1'],
+ ucwords(strtolower($form_state['values']['publisher1'])),
+ $form_state['values']['edition1'],
+ $form_state['values']['year1'],
+ 0,
+ 0
+ );*/
+ /**$bk2 = trim($form_state['values']['book2']);
+ $auth2 = trim($form_state['values']['author2']);
+ $pref_id = NULL;
+ $directory_name = _dir_name($bk2, $auth2, $pref_id);
+ $query = "INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status, directory_name) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status, :directory_name)
+ ";
+ $args = array(
+ ":proposal_id" => $proposal_id,
+
+
+ ":pref_number" => 2,
+ ":book" => trim(ucwords(strtolower($form_state['values']['book2']))),
+ ":author" => trim(ucwords(strtolower($form_state['values']['author2']))),
+ ":isbn" => trim($form_state['values']['isbn2']),
+ ":publisher" => trim(ucwords(strtolower($form_state['values']['publisher2']))),
+ ":edition" => trim($form_state['values']['edition2']),
+ ":year" => trim($form_state['values']['year2']),
+ ":category" => 0,
+ ":approval_status" => 0,
+ ":directory_name" => $form_state['values']['dir_name2']
+ );
+ $result = db_query($query, $args, array(
+ 'return' => Database::RETURN_INSERT_ID
+ ));
+ if (!$result) {
+ drupal_set_message(t('Error receiving your second book preference.'), 'error');
+ }
+ }**/
+ /*******************************************************/
+ /**if ($form_state['values']['book3']) {
+ /*$result = db_query("INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES
+ (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)",
+ $proposal_id,
+ 1,
+ ucwords(strtolower($form_state['values']['book1'])),
+ ucwords(strtolower($form_state['values']['author1'])),
+ $form_state['values']['isbn1'],
+ ucwords(strtolower($form_state['values']['publisher1'])),
+ $form_state['values']['edition1'],
+ $form_state['values']['year1'],
+ 0,
+ 0
+ );*/
+ /** $bk3 = trim($form_state['values']['book3']);
+ $auth3 = trim($form_state['values']['author3']);
+ $pref_id = NULL;
+ $directory_name = _dir_name($bk3, $auth3, $pref_id);
+ $query = "INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status, directory_name) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status, :directory_name)
+ ";
+ $args = array(
+ ":proposal_id" => $proposal_id,
+ ":pref_number" => 3,
+ ":book" => trim(ucwords(strtolower($form_state['values']['book3']))),
+ ":author" => trim(ucwords(strtolower($form_state['values']['author3']))),
+ ":isbn" => trim($form_state['values']['isbn3']),
+ ":publisher" => trim(ucwords(strtolower($form_state['values']['publisher3']))),
+ ":edition" => trim($form_state['values']['edition3']),
+ ":year" => trim($form_state['values']['year3']),
+ ":category" => 0,
+ ":approval_status" => 0,
+ ":directory_name" => $form_state['values']['dir_name3']
+ );
+ $result = db_query($query, $args, array(
+ 'return' => Database::RETURN_INSERT_ID
+ ));
+ if (!$result) {
+ drupal_set_message(t('Error receiving your third book preference.'), 'error');
+ }
+
+ }**/
+ /*******************************************************/
+ /* sending email */
+ $email_to = $user->mail;
+ $from = variable_get('textbook_companion_from_email', '');
+ $bcc = variable_get('textbook_companion_emails', '');
+ $cc = variable_get('textbook_companion_cc_emails', '');
+ $params['proposal_received']['proposal_id'] = $proposal_id;
+ $params['proposal_received']['user_id'] = $user->uid;
+ $params['proposal_received']['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('textbook_companion', 'proposal_received', $email_to, language_default(), $params, $from, TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ drupal_set_message(t('We have received you book proposal. We will get back to you soon.'), 'status');
+ drupal_goto('');
+}
+/**
+ * Implementation of hook_mail().
+ */
+function textbook_companion_mail($key, &$message, $params)
+{
+ global $user;
+ // $language = $message['lianguage'];
+ $tbc_bcc_emails = array(
+ 'Bcc' => variable_get('textbook_companion_emails', '')
+ );
+ switch ($key)
+ {
+ case 'proposal_received':
+
+ /* initializing data */
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $params['proposal_received']['proposal_id']);
+ $proposal_data = db_fetch_object($proposal_q);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('id', $params['proposal_received']['proposal_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $proposal_data = $result->fetchObject();
+ $samplecodefilename = "";
+ if (strlen($proposal_data->samplefilepath) >= 5)
+ {
+ $samplecodefilename = substr($proposal_data->samplefilepath, strrpos($proposal_data->samplefilepath, '/') + 1);
+ } //strlen($proposal_data->samplefilepath) >= 5
+ else
+ {
+ $samplecodefilename = "Not provided";
+ }
+ /*$preference1_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_received']['proposal_id'], 1);
+ $preference1_data = db_fetch_object($preference1_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['proposal_received']['proposal_id']);
+ $query->condition('pref_number', 1);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference1_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['proposal_received']['proposal_id']);
+ $query->condition('pref_number', 2);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference2_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['proposal_received']['proposal_id']);
+ $query->condition('pref_number', 3);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference3_data = $result->fetchObject();
+ $user_data = user_load($params['proposal_received']['user_id']);
+ $message['headers'] = $params['proposal_received']['headers'];
+ $message['subject'] = t('[!site_name] Your textbook companion book proposal has been received', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We have received your proposal for R Textbook Companion with the following details:
+
+Full Name : ' . $proposal_data->full_name . '
+Email : ' . $user_data->mail . '
+Mobile : ' . $proposal_data->mobile . '
+Course : ' . $proposal_data->course . '
+Department/Branch : ' . $proposal_data->branch . '
+University/Institute : ' . $proposal_data->university . '
+City : ' . $proposal_data->city . '
+State : ' . $proposal_data->state . '
+Expected date of completion : ' . date('d-m-Y', $proposal_data->completion_date) . '
+
+
+Your Book Preferences :
+
+Book Preference :-
+Title of the book : ' . $preference1_data->book . '
+Author name : ' . $preference1_data->author . '
+ISBN No. : ' . $preference1_data->isbn . '
+Publisher and Place : ' . $preference1_data->publisher . '
+Edition : ' . $preference1_data->edition . '
+Year of publication : ' . $preference1_data->year . '
+
+
+
+
+Your proposal is under review. You will soon receive an email when your proposal has been approved/ disapproved. Thank you for your submission.
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ break;
+ case 'proposal_disapproved':
+
+ /* initializing data */
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $params['proposal_disapproved']['proposal_id']);
+ $proposal_data = db_fetch_object($proposal_q);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('id', $params['proposal_disapproved']['proposal_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $proposal_data = $result->fetchObject();
+ /*$preference1_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_disapproved']['proposal_id'], 1);
+ $preference1_data = db_fetch_object($preference1_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['proposal_disapproved']['proposal_id']);
+ $query->condition('pref_number', 1);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference1_data = $result->fetchObject();
+ $user_data = user_load($params['proposal_disapproved']['user_id']);
+ $message['headers'] = $params['proposal_disapproved']['headers'];
+ $message['subject'] = t('[!site_name] Your textbook companion book proposal has been disapproved', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We regret to inform you that all the uploaded examples including the book
+with following details have been deleted permanently.
+
+Full Name : ' . $proposal_data->full_name . '
+Email : ' . $user_data->mail . '
+Mobile : ' . $proposal_data->mobile . '
+Course : ' . $proposal_data->course . '
+Department/Branch : ' . $proposal_data->branch . '
+University/Institute : ' . $proposal_data->university . '
+City : ' . $proposal_data->city . '
+State : ' . $proposal_data->state . '
+
+Expected date of completion : ' . date('d-m-Y', $proposal_data->completion_date) . '
+
+Reason : ' . $proposal_data->reason . '
+
+
+Reference : ' . $proposal_data->reference . '
+
+Your Book Preferences :
+
+Book Preference 1 :-
+Title of the book : ' . $preference1_data->book . '
+Author name : ' . $preference1_data->author . '
+ISBN No. : ' . $preference1_data->isbn . '
+Publisher and Place : ' . $preference1_data->publisher . '
+Edition : ' . $preference1_data->edition . '
+Year of publication : ' . $preference1_data->year . '
+
+Reason for disapproval: ' . $proposal_data->message . '
+
+You are welcome to submit a new proposal.
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'proposal_approved':
+
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $params['proposal_approved']['proposal_id']);
+ $proposal_data = db_fetch_object($proposal_q);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('id', $params['proposal_approved']['proposal_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $proposal_data = $result->fetchObject();
+ /* $approved_preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $params['proposal_approved']['proposal_id']);
+ $approved_preference_data = db_fetch_object($approved_preference_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['proposal_approved']['proposal_id']);
+ $query->condition('approval_status', 1);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $approved_preference_data = $result->fetchObject();
+ $user_data = user_load($params['proposal_approved']['user_id']);
+ $message['headers'] = $params['proposal_approved']['headers'];
+ $message['subject'] = t('[!site_name] Your book proposal has been approved', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+Congratulations! Your proposal for R Textbook Companion with the following details is approved.
+
+Full Name : ' . $proposal_data->full_name . '
+Email : ' . $user_data->mail . '
+Mobile : ' . $proposal_data->mobile . '
+Course : ' . $proposal_data->course . '
+Department/Branch : ' . $proposal_data->branch . '
+University/Institute : ' . $proposal_data->university . '
+College Teacher / Professor : ' . $proposal_data->faculty . '
+Reviewer : ' . $proposal_data->reviewer . '
+Expected date of completion : ' . date('d-m-Y', $proposal_data->completion_date) . '
+
+Reason : ' . $proposal_data->reason . '
+
+Reference : ' . $proposal_data->reference . '
+
+Title of the book : ' . $approved_preference_data->book . '
+Author name : ' . $approved_preference_data->author . '
+ISBN No. : ' . $approved_preference_data->isbn . '
+Publisher and Place : ' . $approved_preference_data->publisher . '
+Edition : ' . $approved_preference_data->edition . '
+Year of publication : ' . $approved_preference_data->year . '
+
+Please ensure that ALL the guidelines for coding are strictly followed:
+
+http://om.fossee.in/textbook-companion/guidelines-coding
+
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'proposal_completed':
+
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $params['proposal_completed']['proposal_id']);
+ $proposal_data = db_fetch_object($proposal_q);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('id', $params['proposal_completed']['proposal_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $proposal_data = $result->fetchObject();
+ /*$approved_preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $params['proposal_completed']['proposal_id']);
+ $approved_preference_data = db_fetch_object($approved_preference_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['proposal_completed']['proposal_id']);
+ $query->condition('approval_status', 1);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $approved_preference_data = $result->fetchObject();
+ $user_data = user_load($params['proposal_completed']['user_id']);
+ $message['headers'] = $params['proposal_completed']['headers'];
+ $message['subject'] = t('[!site_name] Congratulations on the completion of the Textbook Companion.', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+The textbook companion on the following book has been completed successfully by you:
+
+Full Name : ' . $proposal_data->full_name . '
+Email : ' . $user_data->mail . '
+Mobile : ' . $proposal_data->mobile . '
+Course : ' . $proposal_data->course . '
+Department/Branch : ' . $proposal_data->branch . '
+University/Institute : ' . $proposal_data->university . '
+College Teacher / Professor : ' . $proposal_data->faculty . '
+Reviewer : ' . $proposal_data->reviewer . '
+Expected date of completion : ' . date('d-m-Y', $proposal_data->completion_date) . '
+
+
+Title of the book : ' . $approved_preference_data->book . '
+Author name : ' . $approved_preference_data->author . '
+ISBN No. : ' . $approved_preference_data->isbn . '
+Publisher and Place : ' . $approved_preference_data->publisher . '
+Edition : ' . $approved_preference_data->edition . '
+Year of publication : ' . $approved_preference_data->year . '
+
+Your book is now available at following link to download.
+
+http://om.fossee.in/textbook-companion/textbook-run/' . $approved_preference_data->id . '
+
+Now you should be able to propose a new book.
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ /***********************************************************************************************/
+ case 'all_code_submitted':
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $params['proposal_completed']['proposal_id']);
+ $proposal_data = db_fetch_object($proposal_q);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('id', $params['all_code_submitted']['proposal_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $proposal_data = $result->fetchObject();
+ /*$approved_preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $params['proposal_completed']['proposal_id']);
+ $approved_preference_data = db_fetch_object($approved_preference_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['all_code_submitted']['proposal_id']);
+ $query->condition('approval_status', 1);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $approved_preference_data = $result->fetchObject();
+ $user_data = user_load($params['all_code_submitted']['user_id']);
+ $message['headers'] = $params['all_code_submitted']['headers'];
+ $message['subject'] = t('[!site_name][Textbook Companion] You have marked to submited code for all examples.', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+You have submitted codes for all examples:
+
+Full Name : ' . $proposal_data->full_name . '
+Email : ' . $user_data->mail . '
+Mobile : ' . $proposal_data->mobile . '
+Course : ' . $proposal_data->course . '
+Department/Branch : ' . $proposal_data->branch . '
+University/Institute : ' . $proposal_data->university . '
+College Teacher / Professor : ' . $proposal_data->faculty . '
+Reviewer : ' . $proposal_data->reviewer . '
+Expected date of completion : ' . date('d-m-Y', $proposal_data->completion_date) . '
+
+
+Title of the book : ' . $approved_preference_data->book . '
+Author name : ' . $approved_preference_data->author . '
+ISBN No. : ' . $approved_preference_data->isbn . '
+Publisher and Place : ' . $approved_preference_data->publisher . '
+Edition : ' . $approved_preference_data->edition . '
+Year of publication : ' . $approved_preference_data->year . '
+
+You shall be notified after the code is reviewed.
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'all_code_submitted_status_changed':
+
+ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $params['proposal_completed']['proposal_id']);
+ $proposal_data = db_fetch_object($proposal_q);*/
+ $query = db_select('textbook_companion_proposal');
+ $query->fields('textbook_companion_proposal');
+ $query->condition('id', $params['all_code_submitted_status_changed']['proposal_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $proposal_data = $result->fetchObject();
+ /*$approved_preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $params['proposal_completed']['proposal_id']);
+ $approved_preference_data = db_fetch_object($approved_preference_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('proposal_id', $params['all_code_submitted_status_changed']['proposal_id']);
+ $query->condition('approval_status', 1);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $approved_preference_data = $result->fetchObject();
+ $user_data = user_load($params['all_code_submitted_status_changed']['user_id']);
+ $message['headers'] = $params['all_code_submitted_status_changed']['headers'];
+ $message['subject'] = t('[!site_name][Textbook Companion] Your interface for code submission has been enabled by the reviewer', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+Your interface for code submission has been enabled by the reviewer, you can now able to send more code for this book.
+
+Full Name : ' . $proposal_data->full_name . '
+Email : ' . $user_data->mail . '
+Mobile : ' . $proposal_data->mobile . '
+Course : ' . $proposal_data->course . '
+Department/Branch : ' . $proposal_data->branch . '
+University/Institute : ' . $proposal_data->university . '
+College Teacher / Professor : ' . $proposal_data->faculty . '
+Reviewer : ' . $proposal_data->reviewer . '
+Expected date of completion : ' . date('d-m-Y', $proposal_data->completion_date) . '
+
+
+Title of the book : ' . $approved_preference_data->book . '
+Author name : ' . $approved_preference_data->author . '
+ISBN No. : ' . $approved_preference_data->isbn . '
+Publisher and Place : ' . $approved_preference_data->publisher . '
+Edition : ' . $approved_preference_data->edition . '
+Year of publication : ' . $approved_preference_data->year . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ /*****************************************************************************************/
+ case 'example_uploaded':
+
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d LIMIT 1", $params['example_uploaded']['example_id']);
+ $example_data = db_fetch_object($example_q);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_example');
+ $query->condition('id', $params['example_uploaded']['example_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $example_data = $result->fetchObject();
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $example_data->chapter_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $chapter_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('id', $chapter_data->preference_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference_data = $result->fetchObject();
+ $user_data = user_load($params['example_uploaded']['user_id']);
+ $message['headers'] = $params['example_uploaded']['headers'];
+ $message['subject'] = t('[!site_name] You have uploaded example for Textbook Companion', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+You have uploaded the following solution :
+
+Title of the book : ' . $preference_data->book . '
+Title of the chapter : ' . $chapter_data->name . '
+Example number : ' . $example_data->number . '
+Caption : ' . $example_data->caption . '
+
+You shall be notified after the solution is reviewed
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'example_updated':
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d LIMIT 1", $params['example_updated']['example_id']);
+ $example_data = db_fetch_object($example_q);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_example');
+ $query->condition('id', $params['example_updated']['example_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $example_data = $result->fetchObject();
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $example_data->chapter_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $chapter_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('id', $chapter_data->preference_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference_data = $result->fetchObject();
+ $user_data = user_load($params['example_updated']['user_id']);
+ $message['headers'] = $params['example_updated']['headers'];
+ $message['subject'] = t('[!site_name] You have updated example for Textbook Companion', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+You have updated the following example:
+
+Title of the book : ' . $preference_data->book . '
+Title of the chapter : ' . $chapter_data->name . '
+Example number : ' . $example_data->number . '
+Caption : ' . $example_data->caption . '
+
+The example is still under review. You will be notified when it has been approved.
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'example_updated_admin':
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d LIMIT 1", $params['example_updated_admin']['example_id']);
+ $example_data = db_fetch_object($example_q);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_example');
+ $query->condition('id', $params['example_updated_admin']['example_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $example_data = $result->fetchObject();
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $example_data->chapter_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $chapter_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('id', $chapter_data->preference_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference_data = $result->fetchObject();
+ $user_data = user_load($params['example_updated_admin']['user_id']);
+ $message['headers'] = $params['example_updated_admin']['headers'];
+ $message['subject'] = t('[!site_name] Reviewer have updated example for Textbook Companion ', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+Reviewer have updated the following example:
+
+Title of the book : ' . $preference_data->book . '
+Title of the chapter : ' . $chapter_data->name . '
+Example number : ' . $example_data->number . '
+Caption : ' . $example_data->caption . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'example_approved':
+
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d LIMIT 1", $params['example_approved']['example_id']);
+ $example_data = db_fetch_object($example_q);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_example');
+ $query->condition('id', $params['example_approved']['example_id']);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $example_data = $result->fetchObject();
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $example_data->chapter_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $chapter_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('id', $chapter_data->preference_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference_data = $result->fetchObject();
+ $user_data = user_load($params['example_approved']['user_id']);
+ $message['headers'] = $params['example_approved']['headers'];
+ $message['subject'] = t('[!site_name] Your uploaded example has been approved for Textbook Companion', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+Your example for R Textbook Companion with the following details is approved.
+
+Title of the book : ' . $preference_data->book . '
+Title of the chapter : ' . $chapter_data->name . '
+Example number : ' . $example_data->number . '
+Caption : ' . $example_data->caption . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'example_disapproved':
+
+ $user_data = user_load($params['example_disapproved']['user_id']);
+ $preference_id = $params['example_disapproved']['preference_id'];
+ $chapter_id = $params['example_disapproved']['chapter_id'];
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $chapter_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $chapter_data = $result->fetchObject();
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('id', $preference_id);
+ $query->range(0, 1);
+ $result = $query->execute();
+ $preference_data = $result->fetchObject();
+ $message['headers'] = $params['example_disapproved']['headers'];
+ $message['subject'] = t('[!site_name] Your uploaded example has been disapproved for Textbook Companion', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+Your following example has been disapproved:
+
+Title of the book : ' . $preference_data->book . '
+Title of the chapter : ' . $chapter_data->name . '
+Example number : ' . $params['example_disapproved']['example_number'] . '
+Caption : ' . $params['example_disapproved']['example_caption'] . '
+
+Reason for dis-approval : ' . $params['example_disapproved']['message'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'example_deleted_user':
+
+ $user_data = user_load($params['example_deleted_user']['user_id']);
+ $message['headers'] = $params['example_deleted_user']['headers'];
+ $message['subject'] = t('[!site_name] User has deleted pending example for Textbook Companion', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+Your following pending example has been deleted :
+
+Title of the Book : ' . $params['example_deleted_user']['book_title'] . '
+Title of the Chapter : ' . $params['example_deleted_user']['chapter_title'] . '
+Example number : ' . $params['example_deleted_user']['example_number'] . '
+Caption : ' . $params['example_deleted_user']['example_caption'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'dependency_uploaded':
+ // bcc to textbook_companion_emails
+ $user_data = user_load($params['dependency_uploaded']['user_id']);
+ $message['headers'] = $params['dependency_uploaded']['headers'];
+ $dependency_files = implode(',', $params['dependency_uploaded']['dependency_names']);
+ $message['subject'] = t('[!site_name] You have uploaded dependency file', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+You have uploaded following dependency files :
+ ' . $dependency_files . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'feedback_received':
+
+ $user_data = user_load($params['feedback_received']['user_id']);
+ $message['headers'] = $params['feedback_received']['headers'];
+ $message['subject'] = t('[!site_name] We have received your feedback', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We have received your following feedback
+
+Title of the Book: ' . $params['feedback_received']['book_title'] . '
+Title of the Chapter: ' . $params['feedback_received']['chapter_number'] . ' ' . $params['feedback_received']['chapter_title'] . '
+Example No.: ' . $params['feedback_received']['example_no'] . '
+
+Your feedback :
+' . $params['feedback_received']['feedback'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'internshipform':
+
+ $user_data = user_load($params['internshipform']['user_id']);
+ $message['headers'] = $params['internshipform']['headers'];
+ $message['subject'] = t('[!site_name] We have received your feedback', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We have received your Internship Form Application for the book
+
+Title of the Book: ' . $params['internshipform']['book_title'] . '
+Title of the Chapter: ' . $params['internshipform']['chapter_number'] . ' ' . $params['internshipform']['chapter_title'] . '
+Example No.: ' . $params['internshipform']['example_no'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'copyrighttransferform':
+
+ $user_data = user_load($params['copyrighttransferform']['user_id']);
+ $message['headers'] = $params['copyrighttransferform']['headers'];
+ $message['subject'] = t('[!site_name] We have received your feedback', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We have received your Copyright Form Application for the book
+
+Title of the Book: ' . $params['copyrighttransferform']['book_title'] . '
+Title of the Chapter: ' . $params['copyrighttransferform']['chapter_number'] . ' ' . $params['copyrighttransferform']['chapter_title'] . '
+Example No.: ' . $params['copyrighttransferform']['example_no'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'undertakingform':
+ $user_data = user_load($params['undertakingform']['user_id']);
+ $message['headers'] = $params['undertakingform']['headers'];
+ $message['subject'] = t('[!site_name] We have received your feedback', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We have received your Undertaking Form Application for the book
+
+Title of the Book: ' . $params['undertakingform']['book_title'] . '
+Title of the Chapter: ' . $params['undertakingform']['chapter_number'] . ' ' . $params['undertakingform']['chapter_title'] . '
+Example No.: ' . $params['undertakingform']['example_no'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'remark':
+ $user_data = user_load($params['remark']['user_id']);
+ $message['headers'] = $params['remark']['headers'];
+ $message['subject'] = t('[!site_name] A remark has been given.Please check your contact detail form', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+A Remark has been given.Please check your Contact Detail Form
+
+Title of the Book: ' . $params['internshipform']['book_title'] . '
+Title of the Chapter: ' . $params['internshipform']['chapter_number'] . ' ' . $params['internshipform']['chapter_title'] . '
+Example No.: ' . $params['internshipform']['example_no'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'cheque_sent':
+
+ $user_data = user_load($params['cheque_sent']['user_id']);
+ $message['headers'] = $params['cheque_sent']['headers'];
+ $message['subject'] = t('[!site_name] We have received your feedback', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $message['body'] = array(
+ 'body' => t('
+Dear !user_name,
+
+We have Sent Cheque for the following book proposed
+
+Title of the Book: ' . $params['cheque_sent']['book_title'] . '
+Title of the Chapter: ' . $params['cheque_sent']['chapter_number'] . ' ' . $params['cheque_sent']['chapter_title'] . '
+Example No.: ' . $params['cheque_sent']['example_no'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ break;
+ case 'standard':
+ // bcc to textbook_companion_emails
+ $message['headers'] = $params['standard']['headers'];
+ $message['subject'] = $params['standard']['subject'];
+ $message['body'] = $params['standard']['body'];
+ break;
+ } //$key
+}
+/* AJAX CALLS */
+function textbook_companion_ajax()
+{
+ $query_type = arg(2);
+ if ($query_type == 'chapter_title')
+ {
+ $chapter_number = arg(3);
+ $preference_id = arg(4);
+ /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE number = %d AND preference_id = %d LIMIT 1", $chapter_number, $preference_id);*/
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_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;
+ } //$chapter_data = $chapter_q->fetchObject()
+ } //$query_type == 'chapter_title'
+ else if ($query_type == 'example_exists')
+ {
+ $chapter_number = arg(3);
+ $preference_id = arg(4);
+ $example_number = arg(5);
+ $chapter_id = 0;
+ /* $chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE number = %d AND preference_id = %d LIMIT 1", $chapter_number, $preference_id);*/
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_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;
+ } //!$chapter_data = $chapter_q->fetchObject()
+ else
+ {
+ $chapter_id = $chapter_data->id;
+ }
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d AND number = '%s' LIMIT 1", $chapter_id, $example_number);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_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! Example already approved. You cannot upload the same example again.';
+ else
+ echo 'Warning! Example already uploaded. Delete the example and reupload it.';
+ return;
+ } //$example_data = $example_q->fetchObject()
+ } //$query_type == 'example_exists'
+ echo '';
+}
+/*************************** VALIDATION FUNCTIONS *****************************/
+function textbook_companion_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 check_name($name = '')
+{
+ if (!preg_match('/^[0-9a-zA-Z\ ]+$/', $name))
+ return FALSE;
+ else
+ return TRUE;
+}
+function check_chapter_number($name = '')
+{
+ if (!preg_match('/^([0-9])+(\.([0-9a-zA-Z])+)+$/', $name))
+ return FALSE;
+ else
+ return TRUE;
+}
+function textbook_companion_path()
+{
+ return $_SERVER['DOCUMENT_ROOT'] . base_path() . 'r_uploads/tbc_uploads/';
+}
+function textbook_companion_temp_path()
+{
+ return $_SERVER['DOCUMENT_ROOT'] . base_path() . 'r_uploads/';
+}
+function textbook_companion_samplecode_path()
+{
+ return $_SERVER['DOCUMENT_ROOT'] . base_path() . 'r_uploads/tbc_sample_code/';
+}
+/****************************** DELETION FUNCTIONS ****************************/
+function delete_example($example_id)
+{
+ global $user;
+ $root_path = textbook_companion_path();
+ $status = TRUE;
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d", $example_id);
+ $example_data = db_fetch_object($example_q);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_example');
+ $query->condition('id', $example_id);
+ $example_q = $query->execute();
+ $example_data = $example_q->fetchObject();
+ if (!$example_data)
+ {
+ drupal_set_message(t('Invalid example.'), 'error');
+ return FALSE;
+ } //!$example_data
+ /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d", $example_data->chapter_id);
+ $chapter_data = db_fetch_object($chapter_q);*/
+ $chapter_q = db_query("SELECT tcp.id as pref_id, tcp.directory_name, tcc.*
+FROM textbook_companion_preference tcp
+JOIN textbook_companion_chapter tcc
+ON tcp.id= tcc.preference_id
+WHERE tcc.id = :chapter_id", array(
+ ":chapter_id" => $example_data->chapter_id
+ ));
+ /*$query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $example_data->chapter_id);
+ $chapter_q = $query->execute();*/
+ $chapter_data = $chapter_q->fetchObject();
+ if (!$chapter_data)
+ {
+ drupal_set_message(t('Invalid example chapter.'), 'error');
+ return FALSE;
+ } //!$chapter_data
+ /* deleting example files */
+ /*$examples_files_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE example_id = %d", $example_id);*/
+ $query = db_select('textbook_companion_example_files');
+ $query->fields('textbook_companion_example_files');
+ $query->condition('example_id', $example_id);
+ $examples_files_q = $query->execute();
+ while ($examples_files_data = $examples_files_q->fetchObject())
+ {
+ if (!file_exists($root_path . $chapter_data->directory_name . '/' . $examples_files_data->filepath))
+ {
+ $status = FALSE;
+ var_dump($root_path . $chapter_data->directory_name . '/' . $examples_files_data->filepath);
+ die;
+ drupal_set_message(t('Error deleting !file. File does not exists.', array(
+ '!file' => $examples_files_data->filepath
+ )), 'error');
+ continue;
+ } //!file_exists($root_path . $chapter_data->directory_name . '/' . $examples_files_data->filepath)
+ /* removing example file */
+ if (!unlink($root_path . $chapter_data->directory_name . '/' . $examples_files_data->filepath))
+ {
+ $status = FALSE;
+ drupal_set_message(t('Error deleting !file', array(
+ '!file' => $examples_files_data->filepath
+ )), 'error');
+ /* sending email to admins */
+ $email_to = variable_get('textbook_companion_emails', '');
+ $params['standard']['subject'] = "[ERROR] Error deleting example file";
+ $params['standard']['body'] = "Error deleting example files by " . $user->uid . " at " . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . " :
+ example id : " . $example_id . "
+ file id : " . $examples_files_data->id . "
+ file path : " . $examples_files_data->filepath;
+ if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ } //!unlink($root_path . $chapter_data->directory_name . '/' . $examples_files_data->filepath)
+ else
+ {
+ /* deleting example files database entries */
+ /*db_query("DELETE FROM {textbook_companion_example_files} WHERE id = %d", $examples_files_data->id);*/
+ $query = db_delete('textbook_companion_example_files');
+ $query->condition('id', $examples_files_data->id);
+ $num_deleted = $query->execute();
+ }
+ } //$examples_files_data = $examples_files_q->fetchObject()
+ if (!$status)
+ return FALSE;
+ /* removing example folder */
+ $ex_path = $chapter_data->directory_name . '/' . 'CH' . $chapter_data->number . '/' . 'EX' . $example_data->number;
+ $dir_path = $root_path . $ex_path;
+ if (is_dir($dir_path))
+ {
+ if (!rmdir($dir_path))
+ {
+ drupal_set_message(t('Error deleting folder !folder', array(
+ '!folder' => $dir_path
+ )), 'error');
+ /* sending email to admins */
+ $email_to = variable_get('textbook_companion_emails', '');
+ $params['standard']['subject'] = "[ERROR] Error deleting folder";
+ $params['standard']['body'] = "Error deleting folder " . $dir_path . " by " . $user->uid . " at " . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+ if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ return FALSE;
+ } //!rmdir($dir_path)
+ } //is_dir($dir_path)
+ else
+ {
+ drupal_set_message(t('Cannot delete example folder. !folder does not exists.', array(
+ '!folder' => $dir_path
+ )), 'error');
+ return FALSE;
+ }
+ /* deleting example dependency and exmaple database entries */
+ /*db_query("DELETE FROM {textbook_companion_example_dependency} WHERE example_id = %d", $example_id);*/
+ //$query = db_delete('textbook_companion_example_dependency');
+ //$query->condition('example_id', $example_id);
+ //$num_deleted = $query->execute();
+ /*db_query("DELETE FROM {textbook_companion_example} WHERE id = %d", $example_id);*/
+ $query = db_delete('textbook_companion_example');
+ $query->condition('id', $example_id);
+ $num_deleted = $query->execute();
+ return $status;
+}
+function delete_chapter($chapter_id)
+{
+ $status = TRUE;
+ $root_path = textbook_companion_path();
+ /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d", $chapter_id);
+ $chapter_data = db_fetch_object($chapter_q);*/
+ /*$query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('id', $chapter_id);
+ $chapter_q = $query->execute();
+ $chapter_data = $chapter_q->fetchObject();*/
+ $chapter_q = db_query("SELECT tcp.id as pref_id, tcp.directory_name, tcc.*
+FROM textbook_companion_preference tcp
+JOIN textbook_companion_chapter tcc
+ON tcp.id= tcc.preference_id
+WHERE tcc.id = :chapter_id", array(
+ ":chapter_id" => $chapter_id
+ ));
+ $chapter_data = $chapter_q->fetchObject();
+ if (!$chapter_data)
+ {
+ drupal_set_message('Invalid chapter.', 'error');
+ return FALSE;
+ } //!$chapter_data
+ /* deleting examples */
+ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d", $chapter_id);*/
+ $query = db_select('textbook_companion_example');
+ $query->fields('textbook_companion_example');
+ $query->condition('chapter_id', $chapter_id);
+ $example_q = $query->execute();
+ while ($example_data = $example_q->fetchObject())
+ {
+ if (!delete_example($example_data->id))
+ $status = FALSE;
+ } //$example_data = $example_q->fetchObject()
+ if ($status)
+ {
+ $dir_path = $root_path . $chapter_data->directory_name . '/CH' . $chapter_data->number;
+ if (is_dir($dir_path))
+ {
+ $res = rmdir($dir_path);
+ if (!$res)
+ {
+ drupal_set_message(t('Error deleting chapter folder !folder', array(
+ '!folder' => $dir_path
+ )), 'error');
+ /* sending email to admins */
+ $email_to = variable_get('textbook_companion_emails', '');
+ $params['standard']['subject'] = "[ERROR] Error deleting folder";
+ $params['standard']['body'] = "Error deleting folder " . $dir_path;
+ if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ return FALSE;
+ } //!$res
+ else
+ {
+ /* deleting chapter details from database */
+ /*db_query("DELETE FROM {textbook_companion_chapter} WHERE id = %d", $chapter_id);*/
+ $query = db_delete('textbook_companion_chapter');
+ $query->condition('id', $chapter_id);
+ $num_deleted = $query->execute();
+ return TRUE;
+ }
+ } //is_dir($dir_path)
+ else
+ {
+ drupal_set_message(t('Cannot delete chapter folder. !folder does not exists.', array(
+ '!folder' => $dir_path
+ )), 'error');
+ return FALSE;
+ }
+ } //$status
+ return FALSE;
+}
+function delete_book($book_id)
+{
+ $status = TRUE;
+ $root_path = textbook_companion_path();
+ /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $book_id);
+ $preference_data = db_fetch_object($preference_q);*/
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('id', $book_id);
+ $preference_q = $query->execute();
+ $preference_data = $preference_q->fetchObject();
+ if (!$preference_data)
+ {
+ drupal_set_message('Invalid book.', 'error');
+ return FALSE;
+ } //!$preference_data
+ /* delete chapters */
+ /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d", $preference_data->id);*/
+ $query = db_select('textbook_companion_chapter');
+ $query->fields('textbook_companion_chapter');
+ $query->condition('preference_id', $preference_data->id);
+ $chapter_q = $query->execute();
+ while ($chapter_data = $chapter_q->fetchObject())
+ {
+ if (!delete_chapter($chapter_data->id))
+ {
+ $status = FALSE;
+ } //!delete_chapter($chapter_data->id)
+ } //$chapter_data = $chapter_q->fetchObject()
+ return $status;
+}
+function delete_file($file_id)
+{
+ $root_path = textbook_companion_path();
+ /*$file_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE id = %d LIMIT 1", $file_id);*/
+ $file_q = db_query("SELECT * FROM textbook_companion_preference tcp JOIN textbook_companion_chapter tcc ON tcp.id = tcc.preference_id JOIN textbook_companion_example tce ON tcc.id=tce.chapter_id JOIN textbook_companion_example_files tcef on tce.id = tcef.example_id WHERE tcef.id = :example_id", array(
+ ':example_id' => $file_id
+ ));
+ /*$query = db_select('textbook_companion_example_files');
+ $query->fields('textbook_companion_example_files');
+ $query->condition('id', $file_id);
+ $query->range(0, 1);
+ $file_q = $query->execute();*/
+ $file_data = $file_q->fetchObject();
+ if (!$file_data)
+ {
+ drupal_set_message('Invalid file specified.', 'error');
+ return FALSE;
+ } //!$file_data
+ if (!file_exists($root_path . $file_data->directory_name . '/' . $file_data->filepath))
+ {
+ drupal_set_message(t('Error deleting !file. File does not exists.', array(
+ '!file' => $file_data->filepath
+ )), 'error');
+ return FALSE;
+ } //!file_exists($root_path . $file_data->directory_name . '/' . $file_data->filepath)
+ /* removing example file */
+ if (!unlink($root_path . $file_data->directory_name . '/' . $file_data->filepath))
+ {
+ drupal_set_message(t('Error deleting !file', array(
+ '!file' => $file_data->filepath
+ )), 'error');
+ /* sending email to admins */
+ $email_to = variable_get('textbook_companion_emails', '');
+ $params['standard']['subject'] = "[ERROR] Error deleting file";
+ $params['standard']['body'] = "Error deleting file by " . $user->uid . " at " . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . " :
+ file id : " . $file_id . "
+ file path : " . $file_data->directory_name . '/' . $file_data->filepath;
+ if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ return FALSE;
+ } //!unlink($root_path . $file_data->directory_name . '/' . $file_data->filepath)
+ else
+ {
+ /* deleting example files database entries */
+ /*db_query("DELETE FROM {textbook_companion_example_files} WHERE id = %d", $file_id);*/
+ $query = db_delete('textbook_companion_example_files');
+ $query->condition('id', $file_id);
+ $num_deleted = $query->execute();
+ return TRUE;
+ }
+}
+//Non aicte book proposal form
+function book_proposal_nonaicte_form($form, &$form_state)
+{
+ global $user;
+ $form = array();
+ $form['imp_notice'] = array(
+ '#type' => 'item',
+ '#markup' => '<font color="red"><b>Please fill up this form carefully as the details entered here will be exactly written in the Textbook Companion and also follow the additional guidelines.</b></font>'
+ );
+ $form['guidelines'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Guidelines'),
+ '#attributes' => array(
+ 'style' => 'font-weight: bold'
+ ),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['guidelines']['book'] = array(
+ '#type' => 'item',
+ '#required' => TRUE,
+ '#markup' => '<ul style="list-style-type:disc;font-weight: normal">
+ <li>All the fields are compulsory</li>
+ <li>Proof (example: syllabus) to the usage/ popularity of the textbook must be provided in the references box below</li>
+ <li>Please make sure that the book proposed by you has <b>at least 80</b> examples which include numerical computations and which can be coded in R</li>
+ <li>If the book has less than 80 examples the <a href="tbc_honorarium" target="_blank">honorarium</a> will be provided on a pro-rata basis </li>
+ <li>Make sure the book you propose is not already an <a href="aicte_proposal" target="_blank">AICTE recommended book</a>, <a href="Completed_Books" target="_blank">completed book</a>
+ or a <a href="Books_Progress" target="_blank">book in progress</a> </li>
+ <li>You will be intimated about the approval or rejection of your suggestion via e-mail</li>
+
+</ul> '
+ );
+ $form['full_name'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Full Name'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ );
+ $form['email_id'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Email'),
+ '#size' => 30,
+ '#value' => $user->mail,
+ '#disabled' => TRUE
+ );
+ $form['mobile'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Mobile No.'),
+ '#size' => 30,
+ '#maxlength' => 15,
+ '#required' => TRUE
+ );
+ $form['gender'] = array(
+ '#type' => 'radios',
+ '#title' => t('Gender'),
+ '#options' => array(
+ 'M' => 'Male',
+ 'F' => 'Female'
+ ),
+ '#required' => TRUE
+ );
+ $form['how_project'] = array(
+ '#type' => 'select',
+ '#title' => t('How did you come to know about this project'),
+ '#options' => array(
+ 'R Website' => 'R Website',
+ 'Friend' => 'Friend',
+ 'Professor/Teacher' => 'Professor/Teacher',
+ 'Mailing List' => 'Mailing List',
+ 'Poster in my/other college' => 'Poster in my/other college',
+ 'Others' => 'Others'
+ ),
+ '#required' => TRUE
+ );
+ $form['course'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Course'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ );
+ $form['department'] = array(
+ '#type' => 'select',
+ '#title' => t('Department/Branch'),
+ '#options' => _list_of_departments(),
+ '#required' => TRUE
+ );
+ $form['university'] = array(
+ '#type' => 'textfield',
+ '#title' => t('University/ Institute'),
+ '#size' => 80,
+ '#maxlength' => 200,
+ '#required' => TRUE,
+ '#attributes' => array(
+ 'placeholder' => 'Insert full name of your institute/ university.... '
+ )
+ );
+ $form['country'] = array(
+ '#type' => 'select',
+ '#title' => t('Country'),
+ '#options' => array(
+ 'India' => 'India',
+ 'Others' => 'Others'
+ ),
+ '#required' => TRUE
+ //'#tree' => TRUE,
+ // '#validated' => TRUE,
+ );
+ $form['other_country'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Other than India'),
+ '#size' => 100,
+ '#attributes' => array(
+ 'placeholder' => t('Enter your country name')
+ ),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'Others'
+ )
+ )
+ )
+ );
+ $form['other_state'] = array(
+ '#type' => 'textfield',
+ '#title' => t('State other than India'),
+ '#size' => 100,
+ '#attributes' => array(
+ 'placeholder' => t('Enter your state/region name')
+ ),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'Others'
+ )
+ )
+ )
+ );
+ $form['other_city'] = array(
+ '#type' => 'textfield',
+ '#title' => t('City other than India'),
+ '#size' => 100,
+ '#attributes' => array(
+ 'placeholder' => t('Enter your city name')
+ ),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'Others'
+ )
+ )
+ )
+ );
+ $form['all_state'] = array(
+ '#type' => 'select',
+ '#title' => t('State'),
+ '#options' => _list_of_states(),
+ '#validated' => TRUE,
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'India'
+ )
+ )
+ )
+ );
+ $form['city'] = array(
+ '#type' => 'select',
+ '#title' => t('City'),
+ '#options' => _list_of_cities(),
+ '#states' => array(
+ 'visible' => array(
+ ':input[name="country"]' => array(
+ 'value' => 'India'
+ )
+ )
+ )
+ );
+ $form['pincode'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Pincode'),
+ '#size' => 30,
+ '#maxlength' => 6,
+ '#required' => False,
+ '#attributes' => array(
+ 'placeholder' => 'Enter pincode....'
+ )
+ );
+ /***************************************************************************/
+ $form['hr'] = array(
+ '#type' => 'item',
+ '#markup' => '<hr>'
+ );
+ $form['faculty'] = array(
+ '#type' => 'hidden',
+ '#value' => 'None',
+ '#title' => t('College Teacher/Professor'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE
+ );
+ $form['faculty_email'] = array(
+ '#type' => 'hidden',
+ '#value' => 'None',
+ '#title' => t('Teacher/Professor Email Id'),
+ '#value' => '@email.com',
+ '#size' => 30,
+ '#maxlength' => 50
+ );
+ $form['reviewer'] = array(
+ '#type' => 'hidden',
+ '#value' => 'R TBC Team',
+ '#title' => t('Reviewer'),
+ '#size' => 30,
+ '#maxlength' => 50
+ );
+ $form['version'] = array(
+ '#type' => 'hidden',
+ '#default_value' => 'Not available'
+ );
+ $form['version'] = array(
+ '#type' => 'select',
+ '#title' => t('Version'),
+ '#options' => _list_of_software_version(),
+ '#required' => TRUE
+ );
+ $form['other_version'] = array(
+ '#type' => 'textfield',
+ '#size' => 30,
+ '#maxlength' => 50,
+ //'#required' => TRUE,
+ '#description' => t('Specify the Older version used')
+ );
+ $form['completion_date'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Expected Date of Completion'),
+ '#description' => t('Input date format should be DD-MM-YYYY. Eg: 23-03-2011'),
+ '#size' => 10,
+ '#maxlength' => 10,
+ '#required' => TRUE
+ );
+ $form['operating_system'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Operating System'),
+ '#required' => TRUE,
+ '#size' => 30,
+ '#maxlength' => 50
+ );
+ $reason = array(
+ 'Used in more than one University' => t('Used in more than one University'),
+ 'The book has multiple editions' => t('The book has multiple editions'),
+ 'Extremely useful' => t('Extremely useful'),
+ 'Other reason' => t('Any other reason state below')
+ );
+ $form['reason'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Reasons'),
+ '#options' => $reason,
+ '#required' => TRUE
+ );
+ $form['other_reason'] = array(
+ '#type' => 'textarea',
+ '#size' => 300,
+ '#maxlength' => 300
+ //'#required' => FALSE,
+ );
+ $form['proposal_type'] = array(
+ '#type' => 'hidden',
+ '#value' => '1',
+ '#required' => FALSE
+ );
+ $form['reference'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Reference'),
+ '#required' => TRUE,
+ '#size' => 500,
+ '#maxlength' => 500,
+ '#attributes' => array(
+ 'placeholder' => 'Links of the syllabus must be provided....'
+ )
+ );
+ $form['preference1'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Book Preference'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['preference1']['book1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Title of the book'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE,
+ '#value' => $row1->book,
+ '#disabled' => ($row1->book ? TRUE : FALSE)
+ );
+ $form['preference1']['author1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Author Name'),
+ '#size' => 30,
+ '#maxlength' => 100,
+ '#required' => TRUE,
+ '#value' => $row1->author,
+ '#disabled' => ($row1->author ? TRUE : FALSE)
+ );
+ $form['preference1']['isbn1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('ISBN No'),
+ '#size' => 30,
+ '#maxlength' => 25,
+ '#required' => TRUE,
+ '#value' => $row1->isbn,
+ '#disabled' => ($row1->isbn ? TRUE : FALSE)
+ );
+ $form['preference1']['publisher1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Publisher & Place'),
+ '#size' => 30,
+ '#maxlength' => 50,
+ '#required' => TRUE,
+ '#value' => $row1->publisher
+ );
+ $form['preference1']['edition1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Edition'),
+ '#size' => 4,
+ '#maxlength' => 2,
+ '#required' => TRUE,
+ '#value' => $row1->edition
+ );
+ $form['preference1']['year1'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Year of publication'),
+ '#size' => 4,
+ '#maxlength' => 4,
+ '#required' => TRUE,
+ '#value' => $row1->year
+ );
+ /*$form['termconditions'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Terms And Conditions'),
+ '#options' => array(
+ 'status' => t('<a href="term-and-conditions" target="_blank">I agree to the Terms and Conditions</a>'),),
+ '#required' => TRUE,
+ );*/
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Submit')
+ );
+ /* #value fix for #default_value bug drupal6
+ foreach(array("preference1") as $preference) {
+ foreach($form[$preference] as $key => $value) {
+ if(!$form[$preference][$key]["#value"]) {
+ unset($form[$preference][$key]["#value"]);
+ }
+ }
+ }*/
+ return $form;
+}
+function book_proposal_nonaicte_form_submit($form, &$form_state)
+{
+ global $user;
+ $selections = variable_get("aicte_" . $user->uid, "");
+ $tbc_to_emails = variable_get("textbook_companion_emails_all");
+ if (!$user->uid)
+ {
+ drupal_set_message('It is mandatory to login on this website to access the proposal form', 'error');
+ return;
+ } //!$user->uid
+ /* completion date to timestamp */
+ list($d, $m, $y) = explode('-', $form_state['values']['completion_date']);
+ $completion_date_timestamp = mktime(0, 0, 0, $m, $d, $y);
+ /* Reasons for suggesting a book*/
+ if (isset($_POST['reason']))
+ {
+ if (!($form_state['values']['other_reason']))
+ {
+ $my_reason = implode(", ", $_POST['reason']);
+ } //!($form_state['values']['other_reason'])
+ else
+ {
+ $my_reason = implode(", ", $_POST['reason']);
+ $my_reason = $my_reason . "-" . " " . $form_state['values']['other_reason'];
+ }
+ $form_state['values']['other_reason'] = $my_reason;
+ } //isset($_POST['reason'])
+ /************************************/
+ $r_version = $form_state['values']['version'];
+ if ($form_state['values']['version'] == 'Other version')
+ {
+ $r_version = $form_state['values']['other_version'];
+ } //$form_state['values']['version'] == 'Other version'
+ $form_state['values']['version'] = $r_version;
+ $query = "INSERT INTO {textbook_companion_proposal}
+ (uid, approver_uid, full_name, mobile, gender, how_project, course, branch, university,city,pincode,state,faculty, reviewer, reference, completion_date, creation_date,approval_date, proposal_status, version, operating_system, teacher_email, proposal_type, reason, proposed_completion_date) VALUES (:uid, :approver_uid, :full_name, :mobile, :gender, :how_project, :course, :branch, :university,:city,:pincode,:state, :faculty, :reviewer, :reference,
+:expected_completion_date, :actual_completion_date,:creation_date,:message, :approval_date, :proposal_status, :r_version, :operating_system, :teacher_email,
+:proposal_type, :reason, :proposed_completion_date)";
+ $args = array(
+ "uid" => $user->uid,
+ "approver_uid" => 0,
+ "full_name" => ucwords(strtolower($form_state['values']['full_name'])),
+ "mobile" => $form_state['values']['mobile'],
+ "gender" => $form_state['values']['gender'],
+ "how_project" => $form_state['values']['how_project'],
+ "course" => $form_state['values']['course'],
+ "branch" => $form_state['values']['branch'],
+ "university" => $form_state['values']['university'],
+ ":city" => $form_state['values']['city'],
+ ":pincode" => $form_state['values']['pincode'],
+ ":state" => $form_state['values']['all_state'],
+ "faculty" => ucwords(strtolower($form_state['values']['faculty'])),
+ "reviewer" => $form_state['values']['reviewer'],
+ "reference" => strtolower($form_state['values']['reference']),
+ "completion_date" => "------",
+ "creation_date" => time(),
+ "approval_date" => time(),
+ "proposal_status" => 0,
+ "r_version" => $r_version,
+ "operating_system" => $form_state['values']['operating_system'],
+ "teacher_email" => $form_state['values']['faculty_email'],
+ "proposal_type" => $form_state['values']['proposal_type'],
+ "reason" => $my_reason,
+ ":proposed_completion_date" => $completion_date_timestamp
+ );
+ $result = db_query($query, $args, array(
+ 'return' => Database::RETURN_INSERT_ID
+ ));
+ if (!$result)
+ {
+ drupal_set_message(t('Error receiving your proposal. Please try again.'), 'error');
+ return;
+ } //!$result
+ /* proposal id */
+ $proposal_id = db_last_insert_id('textbook_companion_proposal', 'id');
+ /* inserting first book preference */
+ if ($form_state['values']['book1'])
+ {
+ /*$result = db_query("INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status, nonaicte_book) VALUES
+ (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d)",
+ $proposal_id,
+ 1,
+ ucwords(strtolower($form_state['values']['book1'])),
+ ucwords(strtolower($form_state['values']['author1'])),
+ $form_state['values']['isbn1'],
+ ucwords(strtolower($form_state['values']['publisher1'])),
+ $form_state['values']['edition1'],
+ $form_state['values']['year1'],
+ 0,
+ 0,
+ 1
+ );*/
+ $query = "INSERT INTO {textbook_companion_preference}
+ (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status, nonaicte_book) VALUES
+ (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status, :nonaicte_book)";
+ $args = array(
+ ":proposal_id" => $proposal_id,
+ ":pref_number" => 1,
+ ":book" => ucwords(strtolower($form_state['values']['book1'])),
+ ":author" => ucwords(strtolower($form_state['values']['author1'])),
+ ":isbn" => $form_state['values']['isbn1'],
+ ":publisher" => ucwords(strtolower($form_state['values']['publisher1'])),
+ ":edition" => $form_state['values']['edition1'],
+ ":year" => $form_state['values']['year1'],
+ ":category" => 0,
+ ":approval_status" => 0,
+ ":nonaicte_book" => 1
+ );
+ $result = db_query($query, $args, array(
+ 'return' => Database::RETURN_INSERT_ID
+ ));
+ if (!$result)
+ {
+ drupal_set_message(t('Error receiving your first book preference.'), 'error');
+ } //!$result
+ } //$form_state['values']['book1']
+ /* sending email */
+ $email_to = $user->mail;
+ $from = variable_get('textbook_companion_from_email', '');
+ $bcc = variable_get('textbook_companion_emails', '');
+ $cc = variable_get('textbook_companion_cc_emails', '');
+ $params['nonaicte_proposal_received']['proposal_id'] = $proposal_id;
+ $params['nonaicte_proposal_received']['user_id'] = $user->uid;
+ $params['nonaicte_proposal_received']['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('textbook_companion', 'nonaicte_proposal_received', $email_to, language_default(), $params, $from, TRUE))
+ drupal_set_message('Error sending email message.', 'error');
+ drupal_set_message(t('We have received your book proposal. We will get back to you soon.'), 'status');
+ drupal_goto('');
+}
+//
+function del_book_pdf($book_id)
+{
+ $root_path = textbook_companion_path();
+ $dir_path = $root_path . "latex/";
+ $pdf_filename = "book_" . $book_id . ".pdf";
+ if (file_exists($dir_path . $pdf_filename))
+ unlink($dir_path . $pdf_filename);
+}
+function _list_of_software_version()
+{
+ $software_version = array();
+ $query = db_select('r_software_version');
+ $query->fields('r_software_version');
+ $query->orderBy('r_version', 'ASC');
+ $software_version_list = $query->execute();
+ while ($software_version_list_data = $software_version_list->fetchObject())
+ {
+ $software_version[$software_version_list_data->r_version] = $software_version_list_data->r_version;
+ } //$software_version_list_data = $software_version_list->fetchObject()
+ return $software_version;
+}
+function _list_of_departments()
+{
+ $department = array();
+ $query = db_select('list_of_departments');
+ $query->fields('list_of_departments');
+ $query->orderBy('id', 'DESC');
+ $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_states()
+{
+ $states = array(
+ '' => '-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 _list_of_cities()
+{
+ $city = array(
+ '' => '-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 To convert only first charater of string in uppercase ****/
+/*************************************************************************/
+function ucname($string)
+{
+ $string = ucwords(strtolower($string));
+ foreach (array(
+ '-',
+ '\''
+ ) as $delimiter)
+ {
+ if (strpos($string, $delimiter) !== false)
+ {
+ $string = implode($delimiter, array_map('ucfirst', explode($delimiter, $string)));
+ } //strpos($string, $delimiter) !== false
+ } //array( '-', '\'' ) as $delimiter
+ return $string;
+}
+function _dir_name($book, $author, $pref_id)
+{
+ if (!$pref_id)
+ {
+ $book_title = ucname($book);
+ $author = ucname($author);
+ $dir_name = $book_title . " " . "by" . " " . $author;
+ $directory_name = str_replace("__", "_", str_replace(" ", "_", $dir_name));
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('directory_name', $directory_name);
+ $query->condition('approval_status', 1);
+ $result = $query->execute()->rowCount();
+ if ($result > 0)
+ {
+ //var_dump('this');die;
+ form_set_error('', t('Book is already allotted. Please try another book or contact to administrator'));
+ return;
+ } //$result > 0
+ } //!$pref_id
+ else
+ {
+ $book_title = ucname($book);
+ $author = ucname($author);
+ $dir_name = $book_title . " " . "by" . " " . $author;
+ $directory_name = str_replace("__", "_", str_replace(" ", "_", $dir_name));
+ $query = db_select('textbook_companion_preference');
+ $query->fields('textbook_companion_preference');
+ $query->condition('directory_name', $directory_name);
+ $query->condition('id', $pref_id);
+ $result = $query->execute()->rowCount();
+ if ($result > 1)
+ {
+ form_set_error('', t('Book is already present. Please try another book or contact to administrator'));
+ return;
+ } //$result > 1
+ }
+ return $directory_name;
+}