category; $book_default_value = $pref_id; } } else { $category_default_value = $form_state['storage']['run']['category']; } /* default value for ahah fields */ if (!isset($form_state['storage']['run']['book'])) { /* get the book id from url */ $url_book_id = (int)arg(1); if ($url_book_id) { /* add javascript for book selected */ $chapter_name_js = " $(document).ready(function() { $('#edit-run-book').val(" . $url_book_id . "); $('#edit-run-book').change(); });"; drupal_add_js($chapter_name_js, 'inline', 'footer'); } } else { $book_default_value = $form_state['storage']['run']['book']; } if (!isset($form_state['storage']['run']['chapter'])) { $chapter_default_value = 0; } else { if ($form_state['values']['run']['book_hidden'] != $form_state['values']['run']['book']) $chapter_default_value = 0; else $chapter_default_value = $form_state['storage']['run']['chapter']; } if (!isset($form_state['storage']['run']['example'])) { $example_default_value = 0; } else { if ($form_state['values']['run']['book_hidden'] != $form_state['values']['run']['book']) $example_default_value = 0; else if ($form_state['values']['run']['chapter_hidden'] != $form_state['values']['run']['chapter']) $example_default_value = 0; else $example_default_value = $form_state['storage']['run']['example']; } $form['run'] = array( '#type' => 'fieldset', '#title' => t('Run Book Example'), '#collapsible' => FALSE, '#collapsed' => FALSE, '#prefix' => '
', '#suffix' => '
', '#tree' => TRUE, ); $form['run']['category'] = array( '#type' => 'select', '#title' => t('Category'), '#options' => array(0 => 'Please select', 1 => 'Fluid Mechanics', 2 => 'Control Theory & Control Systems', 3 => 'Chemical Engineering', 4 => 'Thermodynamics', 5 => 'Mechanical Engineering', 6 => 'Signal Processing', 7 => 'Digital Communications', 8 => 'Electrical Technology', 9 => 'Mathematics & Pure Science', 10 => 'Analog Electronics', 11 => 'Digital Electronics', 12 => 'Computer Programming', 13 => 'Others'), '#default_value' => $category_default_value, '#tree' => TRUE, '#ahah' => array( 'event' => 'change', 'effect' => 'none', 'path' => ahah_helper_path(array('run')), 'wrapper' => 'run-wrapper', 'progress' => array( 'type' => 'throbber', 'message' => t(''), ), ), ); if($category_default_value > 0) { $form['run']['book'] = array( '#type' => 'select', '#title' => t('Title of the Book'), '#options' => _list_of_books($category_default_value), '#default_value' => $book_default_value, '#tree' => TRUE, '#ahah' => array( 'event' => 'change', 'effect' => 'none', 'path' => ahah_helper_path(array('run')), 'wrapper' => 'run-wrapper', 'progress' => array( 'type' => 'throbber', 'message' => t(''), ), ), ); }else { $book_default_value = 0; } /* hidden form elements */ $form['run']['book_hidden'] = array( '#type' => 'hidden', '#value' => $form_state['values']['run']['book'], ); /* hidden form elements */ $form['run']['chapter_hidden'] = array( '#type' => 'hidden', '#value' => $form_state['values']['run']['chapter'], ); if ($book_default_value > 0) { $book_details = _book_information($book_default_value); $form['run']['book_details'] = array( '#type' => 'item', '#value' => '' . '' . '' . '
About the BookAbout the Contributor
    ' . '
  • Author: ' . $book_details->preference_author . '
  • ' . '
  • Title of the Book: ' . $book_details->preference_book . '
  • ' . '
  • Publisher: ' . $book_details->preference_publisher . '
  • ' . '
  • Year: ' . $book_details->preference_year . '
  • ' . '
  • Edition: ' . $book_details->preference_edition . '
  • ' . '
    ' . '
  • Contributor Name: ' . $book_details->proposal_full_name . ', ' . $book_details->proposal_course . ', ' . $book_details->proposal_branch . ', ' . $book_details->proposal_university . '
  • ' . '
  • College Teacher: ' . $book_details->proposal_faculty . '
  • ' . '
  • Reviewer: ' . $book_details->proposal_reviewer . '
  • ' . '
', ); $form['run']['download_book'] = array( '#type' => 'item', '#value' => l('Download', 'download/book/' . $book_default_value) . ' ' . t('(Download the DWSIM codes for all the solved examples)'), ); // $form['run']['chapter'] = array( // '#type' => 'select', // '#title' => t('Title of the Chapter'), // '#options' => _list_of_chapters($book_default_value), // '#default_value' => $chapter_default_value, // '#tree' => TRUE, // '#ahah' => array( // 'event' => 'change', // 'effect' => 'none', // 'path' => ahah_helper_path(array('run')), // 'wrapper' => 'run-wrapper', // 'progress' => array( // 'type' => 'throbber', // 'message' => t(''), // ), // ), // ); if ($chapter_default_value > 0) { $form['run']['download_chapter'] = array( '#type' => 'item', '#value' => l('Download', 'download/chapter/' . $chapter_default_value) . ' ' . t('(Download the DWSIM codes for all the solved examples from the Chapter)'), ); $form['run']['example'] = array( '#type' => 'select', '#title' => t('Example No. (Caption)'), '#options' => _list_of_examples($chapter_default_value), '#default_value' => $example_default_value, '#tree' => TRUE, '#ahah' => array( 'event' => 'change', 'effect' => 'none', 'path' => ahah_helper_path(array('run')), 'wrapper' => 'run-wrapper', 'progress' => array( 'type' => 'throbber', 'message' => t(''), ), ), ); } } /* hidden form elements */ $form['run']['update_book'] = array( '#type' => 'submit', '#value' => t('Update'), '#submit' => array('ahah_helper_generic_submit'), '#attributes' => array('class' => 'no-js'), ); $form['run']['update_chapter'] = array( '#type' => 'submit', '#value' => t('Update'), '#submit' => array('ahah_helper_generic_submit'), '#attributes' => array('class' => 'no-js'), ); /************ START OF $_POST **************/ if ($_POST) { if (($book_default_value > 0) && ($chapter_default_value > 0) && ($example_default_value > 0)) { $example_list_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE example_id = %d", $form_state['values']['run']['example']); if ($example_list_q) { $example_files_rows = array(); while ($example_list_data = db_fetch_object($example_list_q)) { $example_file_type = 'Source or Main file'; $example_files_rows[] = array(l($example_list_data->filename, 'download/file/' . $example_list_data->id), $example_file_type); } /* creating list of files table */ $example_files_header = array('Filename', 'Type'); $example_files = theme_table($example_files_header, $example_files_rows); } $form['run']['download_example'] = array( '#type' => 'item', '#value' => l('Download Example', 'download/example/' . $example_default_value), ); $form['run']['example_files'] = array( '#type' => 'item', '#title' => 'List of example files', '#value' => $example_files, ); //$form['run']['submit'] = array( // '#type' => 'submit', // '#value' => t('Run') //); if (user_access('create feedback')) { $form['run']['feedback'] = array( '#type' => 'textarea', '#title' => t('Feedback on the above example') ); $form['run']['feedback_submit'] = array( '#type' => 'submit', '#value' => t('Submit') ); } } } /************ END OF $_POST **************/ return $form; } function textbook_companion_run_form_submit($form, &$form_state) { global $user; if ($form_state['clicked_button']['#value'] == 'Submit') { if (user_access('create feedback')) { $example_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d", $form_state['values']['run']['example'])); if (!$example_data) { drupal_set_message(t('Invalid example selected'), 'error'); return; } $chapter_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d", $example_data->chapter_id)); if (!$chapter_data) { drupal_set_message(t('Invalid chapter selected'), 'error'); return; } $book_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $chapter_data->preference_id)); if (!$book_data) { drupal_set_message(t('Invalid book selected'), 'error'); return; } $proposal_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d", $book_data->proposal_id)); if (!$proposal_data) { drupal_set_message(t('Invalid proposal selected'), 'error'); return; } db_query("INSERT INTO {textbook_companion_feedback} (example_id, uid, feedback, ip_address, timestamp) VALUES (%d, %d, '%s', '%s', %d)", $example_data->id, $user->uid, $form_state['values']['run']['feedback'], $_SERVER['REMOTE_ADDR'], time()); /* sending email */ $param['feedback_received']['user_id'] = $user->uid; $param['feedback_received']['book_title'] = $book_data->book; $param['feedback_received']['chapter_number'] = $chapter_data->number; $param['feedback_received']['chapter_title'] = $chapter_data->name; $param['feedback_received']['example_no'] = $example_data->number; $param['feedback_received']['feedback'] = $form_state['values']['run']['feedback']; $email_to = $user->mail; // . ', ' . user_load($proposal_data->uid)->mail. ', ' . user_load($example_data->approver_uid)->mail; if (!drupal_mail('textbook_companion', 'feedback_received', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE)) drupal_set_message('Error sending email message.', 'error'); drupal_set_message(t('Thank you for your feedback.'), 'status'); } else { drupal_set_message(t('You do not have permission to submit feeback.'), 'error'); } } } function _list_of_books($category_default_value) { $book_titles = array('0' => 'Please select...'); // $book_titles_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE category=".$category_default_value." AND approval_status = 1 OR approval_status = 3 ORDER BY book ASC"); $book_titles_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE category=".$category_default_value." AND approval_status = 1 AND proposal_id IN (SELECT id FROM textbook_companion_proposal WHERE proposal_status=3) ORDER BY book ASC"); while ($book_titles_data = db_fetch_object($book_titles_q)) { $book_titles[$book_titles_data->id] = $book_titles_data->book . ' (Written by ' . $book_titles_data->author . ')'; } return $book_titles; } function _list_of_chapters($preference_id = 0) { $book_chapters = array('0' => 'Please select...'); $book_chapters_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number ASC", $preference_id); while ($book_chapters_data = db_fetch_object($book_chapters_q)) { $book_chapters[$book_chapters_data->id] = $book_chapters_data->number . '. ' . $book_chapters_data->name; } return $book_chapters; } function _list_of_examples($chapter_id = 0) { $book_examples = array('0' => 'Please select...'); $book_examples_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d AND approval_status = 1 ORDER BY CAST(SUBSTRING_INDEX(number, '.', 1) AS BINARY) ASC, CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(number , '.', 2), '.', -1) AS UNSIGNED) ASC, CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(number , '.', -1), '.', 1) AS UNSIGNED) ASC", $chapter_id); while ($book_examples_data = db_fetch_object($book_examples_q)) { $book_examples[$book_examples_data->id] = $book_examples_data->number . ' (' . $book_examples_data->caption . ')'; } return $book_examples; } function _book_information($preference_id) { $book_data = db_fetch_object(db_query("SELECT preference.book as preference_book, preference.author as preference_author, preference.isbn as preference_isbn, preference.publisher as preference_publisher, preference.edition as preference_edition, preference.year as preference_year, proposal.full_name as proposal_full_name, proposal.faculty as proposal_faculty, proposal.reviewer as proposal_reviewer, proposal.course as proposal_course, proposal.branch as proposal_branch, proposal.university as proposal_university FROM {textbook_companion_proposal} proposal LEFT JOIN {textbook_companion_preference} preference ON proposal.id = preference.proposal_id WHERE preference.id = %d", $preference_id)); return $book_data; }