diff options
author | prashantsinalkar | 2016-08-18 12:53:01 +0530 |
---|---|---|
committer | prashantsinalkar | 2016-08-18 12:53:01 +0530 |
commit | f2f2be3d281f610952dc3d67ec936b5206b6c2dc (patch) | |
tree | 16b66b82fe2373b6efdfa706000a48f67bb29d9d | |
parent | 42fbc9c9ec1481f6743d71ababe6eb37e316c68e (diff) | |
download | scilab_textbook_companion-f2f2be3d281f610952dc3d67ec936b5206b6c2dc.tar.gz scilab_textbook_companion-f2f2be3d281f610952dc3d67ec936b5206b6c2dc.tar.bz2 scilab_textbook_companion-f2f2be3d281f610952dc3d67ec936b5206b6c2dc.zip |
seperated the proposal form from textbook_companion.module to proposal.inc
-rw-r--r-- | proposal.inc | 3230 | ||||
-rwxr-xr-x | textbook_companion.module | 3256 |
2 files changed, 3246 insertions, 3240 deletions
diff --git a/proposal.inc b/proposal.inc new file mode 100644 index 0000000..d78921e --- /dev/null +++ b/proposal.inc @@ -0,0 +1,3230 @@ +<?php +/* Aicte books pickup before the proposal form */ +function textbook_companion_aicte_proposal_form($form, &$form_state) +{ + /*********** fetch aicte book data ********************/ + $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 = $result->rowCount(); + 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}"; + } //$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 + $form["wrapper"][$row->id] = array( + "#type" => "checkbox", + "#title" => $title, + "#prefix" => "<div class='title'>", + "#suffix" => "</div>" + ); + } //$row = $result->fetchObject() + } //$num_rows > 0 + $form["submit"] = array( + "#type" => "submit", + "#value" => "Submit Book Selections" + ); + return $form; +} +function textbook_companion_aicte_proposal_form_validate($form, &$form_state) +{ + $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); + } //$form_state["values"][$row->id] == 1 + } //$row = $result->fetchObject() + /* 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>"); + } //$count != 3 + else + { + $form_state["values"]["selections"] = $selections; + } +} +/* AICTE Book list proposal form submit */ +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"); +} +/************* AICTE book report form **************/ +function textbook_companion_aicte_report_form($from, $form_state) +{ + $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})"; + } //$row = $result->fetchObject() + $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; +} +/************* AICTE book report form submit **************/ +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 (: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"); +} +/************* AICTE book list selection **************/ +function textbook_companion_aicte_proposal_all() +{ + global $user; + $page_content = ""; + if (!$user->uid) + { + $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 .= "<li>Unable to propose particular book: <a id='aicte-report' href='#'>Click here</a></li>"; + //$page_content .= "<li>Do not wish to propose any of the below books: <a id='aicte-report' href='http://fossee.in/feedback/scilab-aicte' target = _blank>Click here</a></li>"; + $page_content .= "</ul>"; + $page_content .= "Search : <input type='text' id='searchtext' onkeyup='searchbookFunction()' 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 */ + $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 .= "Unable to propose particular book: <a id='aicte-report' href='#'>Click here</a></br></br>"; + //$page_content .= "Do not wish to propose any of the below books: <a id='aicte-report' href='http://fossee.in/feedback/scilab-aicte' target = _blank>Click here</a></br></br>"; + $page_content .= "Search : <input type='text' id='searchtext' style='width:82%'/>"; + $page_content .= "<input type='button' value ='clear' id='search_clear'/>"; + $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; + 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'); + // return; + // } + /************* check if user has already submitted a proposal **************/ + $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 + $selections = variable_get("aicte_" . $user->uid, ""); + if ($selections) + { + $query = db_select('textbook_companion_aicte'); + $query->fields('textbook_companion_aicte'); + $query->condition('id', $selections[0]); + $result1 = $query->execute(); + $row1 = $result1->fetchObject(); + $query = db_select('textbook_companion_aicte'); + $query->fields('textbook_companion_aicte'); + $query->condition('id', $selections[1]); + $result2 = $query->execute(); + $row2 = $result2->fetchObject(); + $query = db_select('textbook_companion_aicte'); + $query->fields('textbook_companion_aicte'); + $query->condition('id', $selections[2]); + $result3 = $query->execute(); + $row3 = $result3->fetchObject(); + $book_proposal_form = drupal_get_form("book_proposal_form", $row1, $row2, $row3); + $page_content .= drupal_render($book_proposal_form); + } //$selections + else + { + // $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, $row1 = NULL, $row2 = NULL, $row3 = NULL) +{ + 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('Scilab Website' => 'Scilab 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' => _tbc_list_of_departments(), + '#required' => TRUE + ); + $form['university'] = array( + '#type' => 'textfield', + '#title' => t('University/Institute'), + '#size' => 30, + '#maxlength' => 50, + '#required' => TRUE + ); + $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' => _tbc_list_of_states(), + '#validated' => TRUE, + '#states' => array( + 'visible' => array( + ':input[name="country"]' => array( + 'value' => 'India' + ) + ) + ) + ); + $form['city'] = array( + '#type' => 'select', + '#title' => t('City'), + '#options' => _tbc_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['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'), + '#default_value' => '@email.com', + '#size' => 30, + '#maxlength' => 50 + ); + $form['reviewer'] = array( + '#type' => 'hidden', + '#value' => 'None', + '#title' => t('Reviewer'), + '#size' => 30, + '#maxlength' => 50 + ); + $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 + ); + $form['version'] = array( + '#type' => 'textfield', + '#title' => t('Scilab Version'), + '#description' => t('Input version format should be like 5.4 or 5.4.1'), + '#size' => 10, + '#required' => TRUE, + '#maxlength' => 20 + ); + $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, + '#default_value' => $row1->book, + '#disabled' => ($row1->book ? TRUE : FALSE) + ); + $form['preference1']['author1'] = array( + '#type' => 'textfield', + '#title' => t('Author Name'), + '#size' => 30, + '#maxlength' => 100, + '#required' => TRUE, + '#default_value' => $row1->author, + '#disabled' => ($row1->author ? TRUE : FALSE) + ); + $form['preference1']['isbn1'] = array( + '#type' => 'textfield', + '#title' => t('ISBN No'), + '#size' => 30, + '#maxlength' => 25, + '#required' => TRUE, + '#default_value' => $row1->isbn, + '#disabled' => ($row1->isbn ? TRUE : FALSE) + ); + $form['preference1']['publisher1'] = array( + '#type' => 'textfield', + '#title' => t('Publisher & Place'), + '#size' => 30, + '#maxlength' => 50, + '#required' => TRUE, + '#default_value' => $row1->publisher + ); + $form['preference1']['edition1'] = array( + '#type' => 'textfield', + '#title' => t('Edition'), + '#size' => 4, + '#maxlength' => 2, + '#required' => TRUE, + '#default_value' => $row1->edition + ); + $form['preference1']['year1'] = array( + '#type' => 'textfield', + '#title' => t('Year of pulication'), + '#size' => 4, + '#maxlength' => 4, + '#required' => TRUE, + '#default_value' => $row1->year + ); + $form['preference1']['book_category_1'] = array( + '#type' => 'select', + '#title' => t('Category'), + '#options' => _tbc_list_of_category(), + '#required' => TRUE + ); + $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, + '#default_value' => $row2->book, + '#disabled' => ($row2->book ? TRUE : FALSE) + ); + $form['preference2']['author2'] = array( + '#type' => 'textfield', + '#title' => t('Author Name'), + '#size' => 30, + '#maxlength' => 100, + '#required' => TRUE, + '#default_value' => $row2->author, + '#disabled' => ($row2->author ? TRUE : FALSE) + ); + $form['preference2']['isbn2'] = array( + '#type' => 'textfield', + '#title' => t('ISBN No'), + '#size' => 30, + '#maxlength' => 25, + '#required' => TRUE, + '#default_value' => $row2->isbn, + '#disabled' => ($row2->isbn ? TRUE : FALSE) + ); + $form['preference2']['publisher2'] = array( + '#type' => 'textfield', + '#title' => t('Publisher & Place'), + '#size' => 30, + '#maxlength' => 50, + '#required' => TRUE, + '#default_value' => $row2->publisher + ); + $form['preference2']['edition2'] = array( + '#type' => 'textfield', + '#title' => t('Edition'), + '#size' => 4, + '#maxlength' => 2, + '#required' => TRUE, + '#default_value' => $row2->edition + ); + $form['preference2']['year2'] = array( + '#type' => 'textfield', + '#title' => t('Year of pulication'), + '#size' => 4, + '#maxlength' => 4, + '#required' => TRUE, + '#default_value' => $row2->year + ); + $form['preference2']['book_category_2'] = array( + '#type' => 'select', + '#title' => t('Category'), + '#options' => _tbc_list_of_category(), + '#required' => TRUE + ); + $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, + '#default_value' => $row3->book, + '#disabled' => ($row3->book ? TRUE : FALSE) + ); + $form['preference3']['author3'] = array( + '#type' => 'textfield', + '#title' => t('Author Name'), + '#size' => 30, + '#maxlength' => 100, + '#required' => TRUE, + '#default_value' => $row3->author, + '#disabled' => ($row3->author ? TRUE : FALSE) + ); + $form['preference3']['isbn3'] = array( + '#type' => 'textfield', + '#title' => t('ISBN No'), + '#size' => 30, + '#maxlength' => 25, + '#required' => TRUE, + '#default_value' => $row3->isbn, + '#disabled' => ($row3->isbn ? TRUE : FALSE) + ); + $form['preference3']['publisher3'] = array( + '#type' => 'textfield', + '#title' => t('Publisher & Place'), + '#size' => 30, + '#maxlength' => 50, + '#required' => TRUE, + '#default_value' => $row3->publisher + ); + $form['preference3']['edition3'] = array( + '#type' => 'textfield', + '#title' => t('Edition'), + '#size' => 4, + '#maxlength' => 2, + '#required' => TRUE, + '#default_value' => $row3->edition + ); + $form['preference3']['year3'] = array( + '#type' => 'textfield', + '#title' => t('Year of pulication'), + '#size' => 4, + '#maxlength' => 4, + '#required' => TRUE, + '#default_value' => $row3->year + ); + $form['preference3']['book_category_3'] = array( + '#type' => 'select', + '#title' => t('Category'), + '#options' => _tbc_list_of_category(), + '#required' => TRUE + ); + $form['samplefile'] = array( + '#type' => 'fieldset', + '#title' => t('<span class="form-required form-item" title="This field is required.">Sample Source Files *</span>'), + '#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_file_extensions', '') . '</span>' + ); + $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') + ); + return $form; +} +/******************** AICTE book proposal from validate *****************************/ +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 */ + 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-9][0-9]{0,1}$/', $form_state['values']['edition2'])) + form_set_error('edition2', t('Invalid edition for Book Preference 2')); + if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition3'])) + form_set_error('edition3', t('Invalid edition for Book Preference 3')); + /* year of publication */ + 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 (!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 (!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')); + /* year of publication */ + $cur_year = date('Y'); + 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 ((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 ((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')); + /* isbn */ + if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn1'])) + form_set_error('isbn1', t('Invalid ISBN for Book Preference 1')); + if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn2'])) + form_set_error('isbn2', t('Invalid ISBN for Book Preference 2')); + if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn3'])) + form_set_error('isbn3', t('Invalid ISBN for Book Preference 3')); + /* version */ + if (!preg_match('/^\d+(?:\.\d+)+/', $form_state['values']['version'])) + form_set_error('version', t('Please enter correct version in given format')); + /* country */ + if ($form_state['values']['country'] == 'Others') + { + if ($form_state['values']['other_country'] == '') + { + form_set_error('other_country', t('Enter country name')); + } //$form_state['values']['other_country'] == '' + else + { + $form_state['values']['country'] = $form_state['values']['other_country']; + } + if ($form_state['values']['other_state'] == '') + { + form_set_error('other_state', t('Enter state name')); + } //$form_state['values']['other_state'] == '' + else + { + $form_state['values']['all_state'] = $form_state['values']['other_state']; + } + if ($form_state['values']['other_city'] == '') + { + form_set_error('other_city', t('Enter city name')); + } //$form_state['values']['other_city'] == '' + else + { + $form_state['values']['city'] = $form_state['values']['other_city']; + } + } //$form_state['values']['country'] == 'Others' + else + { + if ($form_state['values']['country'] == '') + { + form_set_error('country', t('Select country name')); + } //$form_state['values']['country'] == '' + if ($form_state['values']['all_state'] == '') + { + form_set_error('all_state', t('Select state name')); + } //$form_state['values']['all_state'] == '' + if ($form_state['values']['city'] == '') + { + form_set_error('city', t('Select city name')); + } //$form_state['values']['city'] == '' + } + 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_file_extensions', ''); + break; + } //$file_type + $allowed_extensions = explode(',', $allowed_extensions_str); + $allowd_file = strtolower($_FILES['files']['name'][$file_form_name]); + $allowd_files = explode('.', $allowd_file); + $temp_extension = end($allowd_files); + 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']) + return; +} +function book_proposal_form_submit($form, &$form_state) +{ + global $user; + $selections = variable_get("aicte_" . $user->uid, ""); + $root_path = textbook_companion_samplecode_path(); + 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); + $scilab_version = 'scilab ' . $form_state['values']['version']; + $query = "INSERT INTO {textbook_companion_proposal} + (uid, approver_uid, full_name, mobile, gender, how_project, course, branch, university, country, city, pincode, state, faculty, reviewer, completion_date, creation_date, approval_date, proposal_status, scilab_version, operating_system, teacher_email, message, samplefilepath) VALUES (:uid, :approver_uid, :full_name, :mobile, :gender, :how_project, :course, :branch, :university, :country, :city, :pincode, :state, :faculty, :reviewer, :completion_date, + :creation_date, :approval_date, :proposal_status, :scilab_version, :operating_system, +:teacher_email, :message, :samplefilepath)"; + $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" => 'Not available', + ":course" => $form_state['values']['course'], + ":branch" => $form_state['values']['branch'], + ":university" => $form_state['values']['university'], + ":country" => $form_state['values']['country'], + ":city" => $form_state['values']['city'], + ":pincode" => $form_state['values']['pincode'], + ":state" => $form_state['values']['all_state'], + ":faculty" => ucwords(strtolower($form_state['values']['faculty'])), + ":reviewer" => ucwords(strtolower($form_state['values']['reviewer'])), + ":completion_date" => $completion_date_timestamp, + ":creation_date" => time(), + ":approval_date" => 0, + ":proposal_status" => 0, + ":scilab_version" => $scilab_version, + ":operating_system" => $form_state['values']['operating_system'], + ":teacher_email" => $form_state['values']['faculty_email'], + ":message" => 'None', + ":samplefilepath" => "" + ); + $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'); + return; + } //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 = db_last_insert_id('textbook_companion_proposal', 'id'); + $proposal_id = $result; + /* inserting first book preference */ + if ($form_state['values']['book1']) + { + $query = "INSERT INTO {textbook_companion_preference} + (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status) + "; + $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" => $form_state['values']['book_category_1'], + ":approval_status" => 0 + ); + $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 + else + { + //$preference_id = db_last_insert_id("textbook_companion_preference", "id"); + $preference_id = $result; + /*$query = " + UPDATE textbook_companion_aicte + SET preference_id = {$preference_id} + WHERE id = {$selections[0]} + "; + db_query($query);*/ + $query = db_update('textbook_companion_aicte'); + $query->fields(array( + 'preference_id' => $preference_id + )); + $query->condition('id', $selections[0]); + $num_updated = $query->execute(); + } + } //$form_state['values']['book1'] + /* inserting second book preference */ + 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, + 2, + ucwords(strtolower($form_state['values']['book2'])), + ucwords(strtolower($form_state['values']['author2'])), + $form_state['values']['isbn2'], + ucwords(strtolower($form_state['values']['publisher2'])), + $form_state['values']['edition2'], + $form_state['values']['year2'], + 0, + 0 + ); + */ + $query = "INSERT INTO {textbook_companion_preference} + (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status) + "; + $args = array( + ":proposal_id" => $proposal_id, + ":pref_number" => 2, + ":book" => ucwords(strtolower($form_state['values']['book2'])), + ":author" => ucwords(strtolower($form_state['values']['author2'])), + ":isbn" => $form_state['values']['isbn2'], + ":publisher" => ucwords(strtolower($form_state['values']['publisher2'])), + ":edition" => $form_state['values']['edition2'], + ":year" => $form_state['values']['year2'], + ":category" => $form_state['values']['book_category_2'], + ":approval_status" => 0 + ); + $result = db_query($query, $args, array( + 'return' => Database::RETURN_INSERT_ID + )); + if (!$result) + { + drupal_set_message(t('Error receiving your second book preference.'), 'error'); + } //!$result + else + { + //$preference_id = db_last_insert_id("textbook_companion_preference", "id"); + $preference_id = $result; + /*$query = " + UPDATE textbook_companion_aicte + SET preference_id = {$preference_id} + WHERE id = {$selections[1]} + "; + db_query($query);*/ + $query = db_update('textbook_companion_aicte'); + $query->fields(array( + 'preference_id' => $preference_id + )); + $query->condition('id', $selections[1]); + $num_updated = $query->execute(); + } + } //$form_state['values']['book2'] + /* inserting third book preference */ + if ($form_state['values']['book3']) + { + $query = "INSERT INTO {textbook_companion_preference} + (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status) + "; + $args = array( + ":proposal_id" => $proposal_id, + ":pref_number" => 3, + ":book" => ucwords(strtolower($form_state['values']['book3'])), + ":author" => ucwords(strtolower($form_state['values']['author3'])), + ":isbn" => $form_state['values']['isbn3'], + ":publisher" => ucwords(strtolower($form_state['values']['publisher3'])), + ":edition" => $form_state['values']['edition3'], + ":year" => $form_state['values']['year3'], + ":category" => $form_state['values']['book_category_3'], + ":approval_status" => 0 + ); + $result = db_query($query, $args, array( + 'return' => Database::RETURN_INSERT_ID + )); + if (!$result) + { + drupal_set_message(t('Error receiving your third book preference.'), 'error'); + } //!$result + else + { + $preference_id = $result; + /*$query = " + UPDATE textbook_companion_aicte + SET preference_id = {$preference_id} + WHERE id = {$selections[2]} + "; + db_query($query);*/ + $query = db_update('textbook_companion_aicte'); + $query->fields(array( + 'preference_id' => $preference_id + )); + $query->condition('id', $selections[2]); + $num_updated = $query->execute(); + } + /* locking the books in the textbook_companion_aicte table */ + foreach ($selections as $selection) + { + /*$query = " + UPDATE textbook_companion_aicte + SET status = 1, uid = {$user->uid}, proposal_id = {$proposal_id} + WHERE id = {$selection} AND status = 0 + "; + db_query($query);*/ + $query = db_update('textbook_companion_aicte'); + $query->fields(array( + 'status' => 1, + 'uid' => $user->uid, + 'proposal_id' => $proposal_id + )); + $query->condition('id', $selection); + $query->condition('status', 0); + $num_updated = $query->execute(); + } //$selections as $selection + if (!$result) + { + drupal_set_message(t('Error receiving your third book preference.'), 'error'); + } //!$result + } //$form_state['values']['book3'] + /* 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['language']; + /*$tbc_bcc_emails = array( + 'Bcc' => variable_get('textbook_companion_emails', ''), + );*/ + switch ($key) + { + case 'proposal_received': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /* 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 = " + SELECT * FROM list_of_category loc + JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category + WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 + "; + $args = array( + ':proposal_id' => $params['proposal_received']['proposal_id'], + ':pref_number' => 1 + ); + $preference1_q = db_query($query, $args); + $preference1_data = $preference1_q->fetchObject(); + /*$preference2_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_received']['proposal_id'], 2); + $preference2_data = db_fetch_object($preference2_q);*/ + $query = " + SELECT * FROM list_of_category loc + JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category + WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 + "; + $args = array( + ':proposal_id' => $params['proposal_received']['proposal_id'], + ':pref_number' => 2 + ); + $preference2_q = db_query($query, $args); + $preference2_data = $preference2_q->fetchObject(); + $query = " + SELECT * FROM list_of_category loc + JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category + WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 + "; + $args = array( + ':proposal_id' => $params['proposal_received']['proposal_id'], + ':pref_number' => 3 + ); + $preference3_q = db_query($query, $args); + $preference3_data = $preference3_q->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 book proposal has been received', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +We have received your following book proposal: + +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) . ' + +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 . ' +Category : ' . $preference1_data->category_name . ' + +Book Preference 2 :- +Title of the book : ' . $preference2_data->book . ' +Author name : ' . $preference2_data->author . ' +ISBN No. : ' . $preference2_data->isbn . ' +Publisher and Place : ' . $preference2_data->publisher . ' +Edition : ' . $preference2_data->edition . ' +Year of publication : ' . $preference2_data->year . ' +Category : ' . $preference2_data->category_name . ' + +Book Preference 3 :- +Title of the book : ' . $preference3_data->book . ' +Author name : ' . $preference3_data->author . ' +ISBN No. : ' . $preference3_data->isbn . ' +Publisher and Place : ' . $preference3_data->publisher . ' +Edition : ' . $preference3_data->edition . ' +Year of publication : ' . $preference3_data->year . ' +Category : ' . $preference3_data->category_name . ' + + +Uploaded Sample Code :' . $samplecodefilename . ' + + +Your proposal is under review and you will soon receive an email from us regarding the same. + + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'proposal_disapproved': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /* 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(); + /*$preference2_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_disapproved']['proposal_id'], 2); + $preference2_data = db_fetch_object($preference2_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', 2); + $query->range(0, 1); + $result = $query->execute(); + $preference2_data = $result->fetchObject(); + /*$preference3_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_disapproved']['proposal_id'], 3); + $preference3_data = db_fetch_object($preference3_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', 3); + $query->range(0, 1); + $result = $query->execute(); + $preference3_data = $result->fetchObject(); + $user_data = user_load($params['proposal_disapproved']['user_id']); + $message['headers'] = $params['proposal_disapproved']['headers']; + $message['subject'] = t('[!site_name] Your book proposal has been disapproved', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + if ($proposal_data->proposal_type != 1) + { + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Your following book proposal has been disapproved: + +Reason for disapproval: ' . $proposal_data->message . ' + +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) . ' + +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 . ' + +Book Preference 2 :- +Title of the book : ' . $preference2_data->book . ' +Author name : ' . $preference2_data->author . ' +ISBN No. : ' . $preference2_data->isbn . ' +Publisher and Place : ' . $preference2_data->publisher . ' +Edition : ' . $preference2_data->edition . ' +Year of publication : ' . $preference2_data->year . ' + +Book Preference 3 :- +Title of the book : ' . $preference3_data->book . ' +Author name : ' . $preference3_data->author . ' +ISBN No. : ' . $preference3_data->isbn . ' +Publisher and Place : ' . $preference3_data->publisher . ' +Edition : ' . $preference3_data->edition . ' +Year of publication : ' . $preference3_data->year . ' + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + } //$proposal_data->proposal_type != 1 + else + { + //Non AICTE book proposal dissaprove// + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Your following book proposal has been disapproved: + +Reason for disapproval: ' . $proposal_data->message . ' + +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) . ' + +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 . ' + + + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + } + break; + /* Non AICTE Book Proposal */ + case 'nonaicte_proposal_received': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /* 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['nonaicte_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"; + } + $query = " + SELECT * FROM list_of_category loc + JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category + WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 + "; + $args = array( + ':proposal_id' => $params['nonaicte_proposal_received']['proposal_id'], + ':pref_number' => 1 + ); + $preference1_q = db_query($query, $args); + $preference1_data = $preference1_q->fetchObject(); + $user_data = user_load($params['nonaicte_proposal_received']['user_id']); + $message['headers'] = $params['nonaicte_proposal_received']['headers']; + $message['subject'] = t('[!site_name] Your book proposal has been received', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +We have received your following book proposal: + +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) . ' + +Your Non AICTE 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 . ' +Category : ' . $preference1_data->category_name . ' + + +Uploaded Sample Code : ' . $samplecodefilename . ' + +Your proposal is under review and you will soon receive an email from us regarding the same. + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'nonaicte_proposal_to_pi': + /************ fetch proposal data ****************/ + $query = db_select('textbook_companion_proposal'); + $query->fields('textbook_companion_proposal'); + $query->condition('id', $params['nonaicte_proposal_received']['proposal_id']); + $query->range(0, 1); + $result = $query->execute(); + $proposal_data = $result->fetchObject(); + /************ fetch book preference data ****************/ + $query = db_select('textbook_companion_preference'); + $query->fields('textbook_companion_preference'); + $query->condition('proposal_id', $params['nonaicte_proposal_received']['proposal_id']); + $query->condition('pref_number', 1); + $query->range(0, 1); + $result = $query->execute(); + $preference1_data = $result->fetchObject(); + $user_data = user_load($params['nonaicte_proposal_received']['user_id']); + $message['headers'] = $params['nonaicte_proposal_received']['headers']; + $message['subject'] = t('[!site_name] New Non AICTE book suggestion has been received', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + /******************* Email Template for not aicte book suggestion **************************/ + $message['body'] = array( + 'body' => t(' +Dear all, + +We have received following Non AICTE book suggestion: + +Full Name : ' . $proposal_data->full_name . ' +University/Institute :' . $proposal_data->university . ' + + +Reason(s): ' . $proposal_data->reason . ' + + +Your Non AICTE 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 . ' + +Reference :- ' . $proposal_data->reference + //Please click here to provide your feedback: http://scilab.in/comments + . ' + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'proposal_approved': + $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(); + $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', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Your following book proposal has been 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) . ' + +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 . ' + +According the new Textbook Companion procedure, a student doing a textbook companion is not required to have a mentor. For more details check the links given below. +http://scilab.in/tbc_honorarium +http://scilab.in/Textbook_Companion_Internship + +Please contact us by sending an e-mail to textbook@scilab.in in case you wish to cancel this book proposal. + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'proposal_completed': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /*$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 for completion of the book.', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Following book has been completed sucessfully 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://scilab.in/textbook_run/' . $approved_preference_data->id . ' + +Now you should be able to propose a new book... + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'example_uploaded': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /*$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', '') + ), array( + 'language' => $language->language + )); + $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 + ), array( + 'language' => $language->language + )) + ); + break; + case 'example_updated': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /*$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', '') + ), array( + 'language' => $language->language + )); + $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 + ), array( + 'language' => $language->language + )) + ); + break; + case 'example_updated_admin': + // bcc to textbook_companion_emails + $message['headers'] += $tbc_bcc_emails; + /*$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(); + $user_data = user_load($params['example_updated_admin']['user_id']); + $message['subject'] = t('[!site_name] Reviewer have updated example', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Reviewer have updated the following example: + +Example number : ' . $example_data->number . ' +Caption : ' . $example_data->caption . ' + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'example_approved': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + /*$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(); + $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', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Your following example has been approved: + +Example number : ' . $example_data->number . ' +Caption : ' . $example_data->caption . ' + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'example_disapproved': + // bcc to textbook_companion_emails + $message['headers'] += $tbc_bcc_emails; + $user_data = user_load($params['example_disapproved']['user_id']); + $message['subject'] = t('[!site_name] Your uploaded example has been disapproved', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +Your following example has been disapproved: + +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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'example_deleted_user': + // bcc to textbook_companion_emails + // $message['headers'] += $tbc_bcc_emails; + $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', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'dependency_uploaded': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + $user_data = user_load($params['dependency_uploaded']['user_id']); + $message['headers'] = $params['example_deleted_user']['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', '') + ), array( + 'language' => $language->language + )); + $message['body'] = array( + 'body' => t(' +Dear !user_name, + +You have uploaded following dependency files : + ' . $dependency_files . ' + +Best Wishes, + +!site_name', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'feedback_received': + // bcc to textbook_companion_emails + // $message['headers'] += $tbc_bcc_emails; + $message['headers'] = $params['feedback_received']['headers']; + $user_data = user_load($params['feedback_received']['user_id']); + $message['subject'] = t('[!site_name] We have received your feedback', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'internshipform': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + $message['headers'] = $params['internshipform']['headers']; + $user_data = user_load($params['internshipform']['user_id']); + $message['subject'] = t('[!site_name] We have received your feedback', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'copyrighttransferform': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + $message['headers'] = $params['copyrighttransferform']['headers']; + $user_data = user_load($params['copyrighttransferform']['user_id']); + $message['subject'] = t('[!site_name] We have received your feedback', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'undertakingform': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + $message['headers'] = $params['undertakingform']['headers']; + $user_data = user_load($params['undertakingform']['user_id']); + $message['subject'] = t('[!site_name] We have received your feedback', array( + '!site_name' => variable_get('site_name', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'remark': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_emails; + $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', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'cheque_sent': + // bcc to textbook_companion_emails + // $message['headers'] += $tbc_bcc_emails; + $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', '') + ), array( + 'language' => $language->language + )); + $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', array( + '!site_name' => variable_get('site_name', ''), + '!user_name' => $user_data->name + ), array( + 'language' => $language->language + )) + ); + break; + case 'standard': + // bcc to textbook_companion_emails + //$message['headers'] += $tbc_bcc_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() . 'uploads/'; +} +function textbook_companion_samplecode_path() +{ + return $_SERVER['DOCUMENT_ROOT'] . base_path() . '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);*/ + $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 . $examples_files_data->filepath)) + { + $status = FALSE; + drupal_set_message(t('Error deleting !file. File does not exists.', array( + '!file' => $examples_files_data->filepath + )), 'error'); + continue; + } //!file_exists($root_path . $examples_files_data->filepath) + /* removing example file */ + if (!drupal_unlink($root_path . $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'] = array( + 0 => "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(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) + drupal_set_message('Error sending email message.', 'error'); + } //!drupal_unlink($root_path . $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->preference_id . '/' . 'CH' . $chapter_data->number . '/' . 'EX' . $example_data->number; + $dir_path = $root_path . $ex_path; + if (is_dir($dir_path)) + { + if (!drupal_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'] = array( + 0 => "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(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) + drupal_set_message('Error sending email message.', 'error'); + return FALSE; + } //!drupal_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(); + 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->preference_id . '/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(), $params, 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);*/ + $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->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->filepath) + /* removing example file */ + if (!unlink($root_path . $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->filepath; + if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) + drupal_set_message('Error sending email message.', 'error'); + return FALSE; + } //!unlink($root_path . $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 Scilab</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('Scilab Website' => 'Scilab 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' => _tbc_list_of_departments(), + '#required' => TRUE + ); + $form['university'] = array( + '#type' => 'textfield', + '#title' => t('University/Institute'), + '#size' => 30, + '#maxlength' => 50, + '#required' => TRUE + ); + $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' => _tbc_list_of_states(), + '#validated' => TRUE, + '#states' => array( + 'visible' => array( + ':input[name="country"]' => array( + 'value' => 'India' + ) + ) + ) + ); + $form['city'] = array( + '#type' => 'select', + '#title' => t('City'), + '#options' => _tbc_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['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'), + '#default_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' => 'textfield', + '#title' => t('Scilab Version'), + '#description' => t('Input version format should be like 5.4 or 5.4.1'), + '#size' => 10, + '#required' => TRUE, + '#maxlength' => 20 + ); + $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, + '#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' => 1000, + '#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, + '#default_value' => $row1->book, + '#disabled' => ($row1->book ? TRUE : FALSE) + ); + $form['preference1']['author1'] = array( + '#type' => 'textfield', + '#title' => t('Author Name'), + '#size' => 30, + '#maxlength' => 100, + '#required' => TRUE, + '#default_value' => $row1->author, + '#disabled' => ($row1->author ? TRUE : FALSE) + ); + $form['preference1']['isbn1'] = array( + '#type' => 'textfield', + '#title' => t('ISBN No'), + '#size' => 30, + '#maxlength' => 25, + '#required' => TRUE, + '#default_value' => $row1->isbn, + '#disabled' => ($row1->isbn ? TRUE : FALSE) + ); + $form['preference1']['publisher1'] = array( + '#type' => 'textfield', + '#title' => t('Publisher & Place'), + '#size' => 30, + '#maxlength' => 50, + '#required' => TRUE, + '#default_value' => $row1->publisher + ); + $form['preference1']['edition1'] = array( + '#type' => 'textfield', + '#title' => t('Edition'), + '#size' => 4, + '#maxlength' => 2, + '#required' => TRUE, + '#default_value' => $row1->edition + ); + $form['preference1']['year1'] = array( + '#type' => 'textfield', + '#title' => t('Year of pulication'), + '#size' => 4, + '#maxlength' => 4, + '#required' => TRUE, + '#default_value' => $row1->year + ); + $form['preference1']['book_category_1'] = array( + '#type' => 'select', + '#title' => t('Category'), + '#options' => _tbc_list_of_category(), + '#required' => TRUE + ); + $form['samplefile'] = array( + '#type' => 'fieldset', + '#title' => t('<span class="form-required form-item" title="This field is required.">Sample Source Files *</span>'), + '#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_file_extensions', '') . '</span>' + ); + $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') + ); + return $form; +} +function book_proposal_nonaicte_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 */ + if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition1'])) + form_set_error('edition1', t('Invalid edition for Book Preference 1')); + /* year of publication */ + 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')); + /* year of publication */ + $cur_year = date('Y'); + 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')); + /* isbn */ + if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn1'])) + form_set_error('isbn1', t('Invalid ISBN for Book Preference 1')); + if (!preg_match('/^\d+(?:\.\d+)+/', $form_state['values']['version'])) + form_set_error('version', t('Please enter correct version in speacifed format')); + if ($form_state['values']['country'] == 'Others') + { + if ($form_state['values']['other_country'] == '') + { + form_set_error('other_country', t('Enter country name')); + // $form_state['values']['country'] = $form_state['values']['other_country']; + } //$form_state['values']['other_country'] == '' + else + { + $form_state['values']['country'] = $form_state['values']['other_country']; + } + if ($form_state['values']['other_state'] == '') + { + form_set_error('other_state', t('Enter state name')); + // $form_state['values']['country'] = $form_state['values']['other_country']; + } //$form_state['values']['other_state'] == '' + else + { + $form_state['values']['all_state'] = $form_state['values']['other_state']; + } + if ($form_state['values']['other_city'] == '') + { + form_set_error('other_city', t('Enter city name')); + // $form_state['values']['country'] = $form_state['values']['other_country']; + } //$form_state['values']['other_city'] == '' + else + { + $form_state['values']['city'] = $form_state['values']['other_city']; + } + } //$form_state['values']['country'] == 'Others' + else + { + if ($form_state['values']['country'] == '') + { + form_set_error('country', t('Select country name')); + // $form_state['values']['country'] = $form_state['values']['other_country']; + } //$form_state['values']['country'] == '' + if ($form_state['values']['all_state'] == '') + { + form_set_error('all_state', t('Select state name')); + // $form_state['values']['country'] = $form_state['values']['other_country']; + } //$form_state['values']['all_state'] == '' + if ($form_state['values']['city'] == '') + { + form_set_error('city', t('Select city name')); + // $form_state['values']['country'] = $form_state['values']['other_country']; + } //$form_state['values']['city'] == '' + } + 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_file_extensions', ''); + break; + } //$file_type + $allowed_extensions = explode(',', $allowed_extensions_str); + $allowd_file = strtolower($_FILES['files']['name'][$file_form_name]); + $temp_extension = end(explode('.', $allowd_file)); + 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']) + return; +} +function book_proposal_nonaicte_form_submit($form, &$form_state) +{ + global $user; + $root_path = textbook_companion_samplecode_path(); + $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']; + } + } //isset($_POST['reason']) + /************************************/ + $scilab_version = 'scilab ' . $form_state['values']['version']; + $query = " +INSERT INTO {textbook_companion_proposal} + (uid, approver_uid, full_name, mobile, gender, how_project, course, branch, university, country, city, pincode, state, faculty, reviewer, reference, completion_date, creation_date, approval_date, proposal_status, message, scilab_version, operating_system, teacher_email, proposal_type, reason, samplefilepath) VALUES (:uid, :approver_uid, :full_name, :mobile, :gender, :how_project, :course, :branch, :university, :country, :city, :pincode, :state, +:faculty, :reviewer, :reference, :completion_date, :creation_date, :approval_date, :proposal_status, :message, :scilab_version, + :operating_system, :teacher_email, :proposal_type, :reason, :samplefilepath) +"; + // $result = db_query($query); + $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" => 'Not available', + ":course" => $form_state['values']['course'], + ":branch" => $form_state['values']['branch'], + ":university" => $form_state['values']['university'], + ":country" => $form_state['values']['country'], + ":city" => $form_state['values']['city'], + ":pincode" => $form_state['values']['pincode'], + ":state" => $form_state['values']['all_state'], + ":faculty" => ucwords(strtolower($form_state['values']['faculty'])), + ":reviewer" => ucwords(strtolower($form_state['values']['reviewer'])), + ":reference" => strtolower($form_state['values']['reference']), + ":completion_date" => $completion_date_timestamp, + ":creation_date" => time(), + ":approval_date" => time(), + ":proposal_status" => 0, + ":message" => 'None', + ":scilab_version" => $scilab_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, + ":samplefilepath" => "" + ); + //var_dump($args); + $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); + } //!is_dir($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'); + return; + } //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']) + { + $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" => $form_state['values']['book_category_1'], + ":approval_status" => 0, + ":nonaicte_book" => 1 + ); + $result = db_query($query, $args); + 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(''); +} diff --git a/textbook_companion.module b/textbook_companion.module index 3198902..ae950e0 100755 --- a/textbook_companion.module +++ b/textbook_companion.module @@ -15,7 +15,8 @@ function textbook_companion_menu() 'access arguments' => array( 'create book proposal' ), - 'type' => MENU_CALLBACK + 'type' => MENU_CALLBACK, + 'file' => 'proposal.inc' ); $items["aicte_proposal"] = array( "title" => "AICTE Book Proposal", @@ -24,7 +25,18 @@ function textbook_companion_menu() 'access arguments' => array( 'create book proposal' ), - 'type' => MENU_CALLBACK + 'type' => MENU_CALLBACK, + 'file' => 'proposal.inc' + ); + $items["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, + 'file' => 'proposal.inc' ); $items["all_proposal"] = array( "title" => "Book Proposal", @@ -33,7 +45,8 @@ function textbook_companion_menu() 'access arguments' => array( 'create book proposal' ), - 'type' => MENU_CALLBACK + 'type' => MENU_CALLBACK, + 'file' => 'proposal.inc' ); /* for reviewers */ $items['manage_proposal'] = array( @@ -652,15 +665,6 @@ function textbook_companion_menu() 'type' => MENU_CALLBACK, 'file' => 'cheque_contact.inc' ); - $items["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; } /** @@ -759,3235 +763,7 @@ function textbook_companion_permission() ) ); } -/* Aicte books pickup before the proposal form */ -function textbook_companion_aicte_proposal_form($form, &$form_state) -{ - /*********** fetch aicte book data ********************/ - $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 = $result->rowCount(); - 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}"; - } //$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 - $form["wrapper"][$row->id] = array( - "#type" => "checkbox", - "#title" => $title, - "#prefix" => "<div class='title'>", - "#suffix" => "</div>" - ); - } //$row = $result->fetchObject() - } //$num_rows > 0 - $form["submit"] = array( - "#type" => "submit", - "#value" => "Submit Book Selections" - ); - return $form; -} -function textbook_companion_aicte_proposal_form_validate($form, &$form_state) -{ - $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); - } //$form_state["values"][$row->id] == 1 - } //$row = $result->fetchObject() - /* 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>"); - } //$count != 3 - else - { - $form_state["values"]["selections"] = $selections; - } -} -/* AICTE Book list proposal form submit */ -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"); -} -/************* AICTE book report form **************/ -function textbook_companion_aicte_report_form($from, $form_state) -{ - $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})"; - } //$row = $result->fetchObject() - $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; -} -/************* AICTE book report form submit **************/ -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 (: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"); -} -/************* AICTE book list selection **************/ -function textbook_companion_aicte_proposal_all() -{ - global $user; - $page_content = ""; - if (!$user->uid) - { - $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 .= "<li>Unable to propose particular book: <a id='aicte-report' href='#'>Click here</a></li>"; - //$page_content .= "<li>Do not wish to propose any of the below books: <a id='aicte-report' href='http://fossee.in/feedback/scilab-aicte' target = _blank>Click here</a></li>"; - $page_content .= "</ul>"; - $page_content .= "Search : <input type='text' id='searchtext' onkeyup='searchbookFunction()' 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 */ - $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 .= "Unable to propose particular book: <a id='aicte-report' href='#'>Click here</a></br></br>"; - //$page_content .= "Do not wish to propose any of the below books: <a id='aicte-report' href='http://fossee.in/feedback/scilab-aicte' target = _blank>Click here</a></br></br>"; - $page_content .= "Search : <input type='text' id='searchtext' style='width:82%'/>"; - $page_content .= "<input type='button' value ='clear' id='search_clear'/>"; - $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; - 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'); - // return; - // } - /************* check if user has already submitted a proposal **************/ - $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 - $selections = variable_get("aicte_" . $user->uid, ""); - if ($selections) - { - $query = db_select('textbook_companion_aicte'); - $query->fields('textbook_companion_aicte'); - $query->condition('id', $selections[0]); - $result1 = $query->execute(); - $row1 = $result1->fetchObject(); - $query = db_select('textbook_companion_aicte'); - $query->fields('textbook_companion_aicte'); - $query->condition('id', $selections[1]); - $result2 = $query->execute(); - $row2 = $result2->fetchObject(); - $query = db_select('textbook_companion_aicte'); - $query->fields('textbook_companion_aicte'); - $query->condition('id', $selections[2]); - $result3 = $query->execute(); - $row3 = $result3->fetchObject(); - $book_proposal_form = drupal_get_form("book_proposal_form", $row1, $row2, $row3); - $page_content .= drupal_render($book_proposal_form); - } //$selections - else - { - // $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, $row1 = NULL, $row2 = NULL, $row3 = NULL) -{ - 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('Scilab Website' => 'Scilab 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' => _tbc_list_of_departments(), - '#required' => TRUE - ); - $form['university'] = array( - '#type' => 'textfield', - '#title' => t('University/Institute'), - '#size' => 30, - '#maxlength' => 50, - '#required' => TRUE - ); - $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' => _tbc_list_of_states(), - '#validated' => TRUE, - '#states' => array( - 'visible' => array( - ':input[name="country"]' => array( - 'value' => 'India' - ) - ) - ) - ); - $form['city'] = array( - '#type' => 'select', - '#title' => t('City'), - '#options' => _tbc_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['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'), - '#default_value' => '@email.com', - '#size' => 30, - '#maxlength' => 50 - ); - $form['reviewer'] = array( - '#type' => 'hidden', - '#value' => 'None', - '#title' => t('Reviewer'), - '#size' => 30, - '#maxlength' => 50 - ); - $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 - ); - $form['version'] = array( - '#type' => 'textfield', - '#title' => t('Scilab Version'), - '#description' => t('Input version format should be like 5.4 or 5.4.1'), - '#size' => 10, - '#required' => TRUE, - '#maxlength' => 20 - ); - $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, - '#default_value' => $row1->book, - '#disabled' => ($row1->book ? TRUE : FALSE) - ); - $form['preference1']['author1'] = array( - '#type' => 'textfield', - '#title' => t('Author Name'), - '#size' => 30, - '#maxlength' => 100, - '#required' => TRUE, - '#default_value' => $row1->author, - '#disabled' => ($row1->author ? TRUE : FALSE) - ); - $form['preference1']['isbn1'] = array( - '#type' => 'textfield', - '#title' => t('ISBN No'), - '#size' => 30, - '#maxlength' => 25, - '#required' => TRUE, - '#default_value' => $row1->isbn, - '#disabled' => ($row1->isbn ? TRUE : FALSE) - ); - $form['preference1']['publisher1'] = array( - '#type' => 'textfield', - '#title' => t('Publisher & Place'), - '#size' => 30, - '#maxlength' => 50, - '#required' => TRUE, - '#default_value' => $row1->publisher - ); - $form['preference1']['edition1'] = array( - '#type' => 'textfield', - '#title' => t('Edition'), - '#size' => 4, - '#maxlength' => 2, - '#required' => TRUE, - '#default_value' => $row1->edition - ); - $form['preference1']['year1'] = array( - '#type' => 'textfield', - '#title' => t('Year of pulication'), - '#size' => 4, - '#maxlength' => 4, - '#required' => TRUE, - '#default_value' => $row1->year - ); - $form['preference1']['book_category_1'] = array( - '#type' => 'select', - '#title' => t('Category'), - '#options' => _tbc_list_of_category(), - '#required' => TRUE - ); - $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, - '#default_value' => $row2->book, - '#disabled' => ($row2->book ? TRUE : FALSE) - ); - $form['preference2']['author2'] = array( - '#type' => 'textfield', - '#title' => t('Author Name'), - '#size' => 30, - '#maxlength' => 100, - '#required' => TRUE, - '#default_value' => $row2->author, - '#disabled' => ($row2->author ? TRUE : FALSE) - ); - $form['preference2']['isbn2'] = array( - '#type' => 'textfield', - '#title' => t('ISBN No'), - '#size' => 30, - '#maxlength' => 25, - '#required' => TRUE, - '#default_value' => $row2->isbn, - '#disabled' => ($row2->isbn ? TRUE : FALSE) - ); - $form['preference2']['publisher2'] = array( - '#type' => 'textfield', - '#title' => t('Publisher & Place'), - '#size' => 30, - '#maxlength' => 50, - '#required' => TRUE, - '#default_value' => $row2->publisher - ); - $form['preference2']['edition2'] = array( - '#type' => 'textfield', - '#title' => t('Edition'), - '#size' => 4, - '#maxlength' => 2, - '#required' => TRUE, - '#default_value' => $row2->edition - ); - $form['preference2']['year2'] = array( - '#type' => 'textfield', - '#title' => t('Year of pulication'), - '#size' => 4, - '#maxlength' => 4, - '#required' => TRUE, - '#default_value' => $row2->year - ); - $form['preference2']['book_category_2'] = array( - '#type' => 'select', - '#title' => t('Category'), - '#options' => _tbc_list_of_category(), - '#required' => TRUE - ); - $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, - '#default_value' => $row3->book, - '#disabled' => ($row3->book ? TRUE : FALSE) - ); - $form['preference3']['author3'] = array( - '#type' => 'textfield', - '#title' => t('Author Name'), - '#size' => 30, - '#maxlength' => 100, - '#required' => TRUE, - '#default_value' => $row3->author, - '#disabled' => ($row3->author ? TRUE : FALSE) - ); - $form['preference3']['isbn3'] = array( - '#type' => 'textfield', - '#title' => t('ISBN No'), - '#size' => 30, - '#maxlength' => 25, - '#required' => TRUE, - '#default_value' => $row3->isbn, - '#disabled' => ($row3->isbn ? TRUE : FALSE) - ); - $form['preference3']['publisher3'] = array( - '#type' => 'textfield', - '#title' => t('Publisher & Place'), - '#size' => 30, - '#maxlength' => 50, - '#required' => TRUE, - '#default_value' => $row3->publisher - ); - $form['preference3']['edition3'] = array( - '#type' => 'textfield', - '#title' => t('Edition'), - '#size' => 4, - '#maxlength' => 2, - '#required' => TRUE, - '#default_value' => $row3->edition - ); - $form['preference3']['year3'] = array( - '#type' => 'textfield', - '#title' => t('Year of pulication'), - '#size' => 4, - '#maxlength' => 4, - '#required' => TRUE, - '#default_value' => $row3->year - ); - $form['preference3']['book_category_3'] = array( - '#type' => 'select', - '#title' => t('Category'), - '#options' => _tbc_list_of_category(), - '#required' => TRUE - ); - $form['samplefile'] = array( - '#type' => 'fieldset', - '#title' => t('<span class="form-required form-item" title="This field is required.">Sample Source Files *</span>'), - '#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_file_extensions', '') . '</span>' - ); - $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') - ); - return $form; -} -/******************** AICTE book proposal from validate *****************************/ -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 */ - 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-9][0-9]{0,1}$/', $form_state['values']['edition2'])) - form_set_error('edition2', t('Invalid edition for Book Preference 2')); - if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition3'])) - form_set_error('edition3', t('Invalid edition for Book Preference 3')); - /* year of publication */ - 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 (!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 (!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')); - /* year of publication */ - $cur_year = date('Y'); - 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 ((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 ((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')); - /* isbn */ - if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn1'])) - form_set_error('isbn1', t('Invalid ISBN for Book Preference 1')); - if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn2'])) - form_set_error('isbn2', t('Invalid ISBN for Book Preference 2')); - if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn3'])) - form_set_error('isbn3', t('Invalid ISBN for Book Preference 3')); - /* version */ - if (!preg_match('/^\d+(?:\.\d+)+/', $form_state['values']['version'])) - form_set_error('version', t('Please enter correct version in given format')); - /* country */ - if ($form_state['values']['country'] == 'Others') - { - if ($form_state['values']['other_country'] == '') - { - form_set_error('other_country', t('Enter country name')); - } //$form_state['values']['other_country'] == '' - else - { - $form_state['values']['country'] = $form_state['values']['other_country']; - } - if ($form_state['values']['other_state'] == '') - { - form_set_error('other_state', t('Enter state name')); - } //$form_state['values']['other_state'] == '' - else - { - $form_state['values']['all_state'] = $form_state['values']['other_state']; - } - if ($form_state['values']['other_city'] == '') - { - form_set_error('other_city', t('Enter city name')); - } //$form_state['values']['other_city'] == '' - else - { - $form_state['values']['city'] = $form_state['values']['other_city']; - } - } //$form_state['values']['country'] == 'Others' - else - { - if ($form_state['values']['country'] == '') - { - form_set_error('country', t('Select country name')); - } //$form_state['values']['country'] == '' - if ($form_state['values']['all_state'] == '') - { - form_set_error('all_state', t('Select state name')); - } //$form_state['values']['all_state'] == '' - if ($form_state['values']['city'] == '') - { - form_set_error('city', t('Select city name')); - } //$form_state['values']['city'] == '' - } - 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_file_extensions', ''); - break; - } //$file_type - $allowed_extensions = explode(',', $allowed_extensions_str); - $allowd_file = strtolower($_FILES['files']['name'][$file_form_name]); - $allowd_files = explode('.', $allowd_file); - $temp_extension = end($allowd_files); - 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']) - return; -} -function book_proposal_form_submit($form, &$form_state) -{ - global $user; - $selections = variable_get("aicte_" . $user->uid, ""); - $root_path = textbook_companion_samplecode_path(); - 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); - $scilab_version = 'scilab ' . $form_state['values']['version']; - $query = "INSERT INTO {textbook_companion_proposal} - (uid, approver_uid, full_name, mobile, gender, how_project, course, branch, university, country, city, pincode, state, faculty, reviewer, completion_date, creation_date, approval_date, proposal_status, scilab_version, operating_system, teacher_email, message, samplefilepath) VALUES (:uid, :approver_uid, :full_name, :mobile, :gender, :how_project, :course, :branch, :university, :country, :city, :pincode, :state, :faculty, :reviewer, :completion_date, - :creation_date, :approval_date, :proposal_status, :scilab_version, :operating_system, -:teacher_email, :message, :samplefilepath)"; - $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" => 'Not available', - ":course" => $form_state['values']['course'], - ":branch" => $form_state['values']['branch'], - ":university" => $form_state['values']['university'], - ":country" => $form_state['values']['country'], - ":city" => $form_state['values']['city'], - ":pincode" => $form_state['values']['pincode'], - ":state" => $form_state['values']['all_state'], - ":faculty" => ucwords(strtolower($form_state['values']['faculty'])), - ":reviewer" => ucwords(strtolower($form_state['values']['reviewer'])), - ":completion_date" => $completion_date_timestamp, - ":creation_date" => time(), - ":approval_date" => 0, - ":proposal_status" => 0, - ":scilab_version" => $scilab_version, - ":operating_system" => $form_state['values']['operating_system'], - ":teacher_email" => $form_state['values']['faculty_email'], - ":message" => 'None', - ":samplefilepath" => "" - ); - $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'); - return; - } //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 = db_last_insert_id('textbook_companion_proposal', 'id'); - $proposal_id = $result; - /* inserting first book preference */ - if ($form_state['values']['book1']) - { - $query = "INSERT INTO {textbook_companion_preference} - (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status) - "; - $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" => $form_state['values']['book_category_1'], - ":approval_status" => 0 - ); - $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 - else - { - //$preference_id = db_last_insert_id("textbook_companion_preference", "id"); - $preference_id = $result; - /*$query = " - UPDATE textbook_companion_aicte - SET preference_id = {$preference_id} - WHERE id = {$selections[0]} - "; - db_query($query);*/ - $query = db_update('textbook_companion_aicte'); - $query->fields(array( - 'preference_id' => $preference_id - )); - $query->condition('id', $selections[0]); - $num_updated = $query->execute(); - } - } //$form_state['values']['book1'] - /* inserting second book preference */ - 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, - 2, - ucwords(strtolower($form_state['values']['book2'])), - ucwords(strtolower($form_state['values']['author2'])), - $form_state['values']['isbn2'], - ucwords(strtolower($form_state['values']['publisher2'])), - $form_state['values']['edition2'], - $form_state['values']['year2'], - 0, - 0 - ); - */ - $query = "INSERT INTO {textbook_companion_preference} - (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status) - "; - $args = array( - ":proposal_id" => $proposal_id, - ":pref_number" => 2, - ":book" => ucwords(strtolower($form_state['values']['book2'])), - ":author" => ucwords(strtolower($form_state['values']['author2'])), - ":isbn" => $form_state['values']['isbn2'], - ":publisher" => ucwords(strtolower($form_state['values']['publisher2'])), - ":edition" => $form_state['values']['edition2'], - ":year" => $form_state['values']['year2'], - ":category" => $form_state['values']['book_category_2'], - ":approval_status" => 0 - ); - $result = db_query($query, $args, array( - 'return' => Database::RETURN_INSERT_ID - )); - if (!$result) - { - drupal_set_message(t('Error receiving your second book preference.'), 'error'); - } //!$result - else - { - //$preference_id = db_last_insert_id("textbook_companion_preference", "id"); - $preference_id = $result; - /*$query = " - UPDATE textbook_companion_aicte - SET preference_id = {$preference_id} - WHERE id = {$selections[1]} - "; - db_query($query);*/ - $query = db_update('textbook_companion_aicte'); - $query->fields(array( - 'preference_id' => $preference_id - )); - $query->condition('id', $selections[1]); - $num_updated = $query->execute(); - } - } //$form_state['values']['book2'] - /* inserting third book preference */ - if ($form_state['values']['book3']) - { - $query = "INSERT INTO {textbook_companion_preference} - (proposal_id, pref_number, book, author, isbn, publisher, edition, year, category, approval_status) VALUES (:proposal_id, :pref_number, :book, :author, :isbn, :publisher, :edition, :year, :category, :approval_status) - "; - $args = array( - ":proposal_id" => $proposal_id, - ":pref_number" => 3, - ":book" => ucwords(strtolower($form_state['values']['book3'])), - ":author" => ucwords(strtolower($form_state['values']['author3'])), - ":isbn" => $form_state['values']['isbn3'], - ":publisher" => ucwords(strtolower($form_state['values']['publisher3'])), - ":edition" => $form_state['values']['edition3'], - ":year" => $form_state['values']['year3'], - ":category" => $form_state['values']['book_category_3'], - ":approval_status" => 0 - ); - $result = db_query($query, $args, array( - 'return' => Database::RETURN_INSERT_ID - )); - if (!$result) - { - drupal_set_message(t('Error receiving your third book preference.'), 'error'); - } //!$result - else - { - $preference_id = $result; - /*$query = " - UPDATE textbook_companion_aicte - SET preference_id = {$preference_id} - WHERE id = {$selections[2]} - "; - db_query($query);*/ - $query = db_update('textbook_companion_aicte'); - $query->fields(array( - 'preference_id' => $preference_id - )); - $query->condition('id', $selections[2]); - $num_updated = $query->execute(); - } - /* locking the books in the textbook_companion_aicte table */ - foreach ($selections as $selection) - { - /*$query = " - UPDATE textbook_companion_aicte - SET status = 1, uid = {$user->uid}, proposal_id = {$proposal_id} - WHERE id = {$selection} AND status = 0 - "; - db_query($query);*/ - $query = db_update('textbook_companion_aicte'); - $query->fields(array( - 'status' => 1, - 'uid' => $user->uid, - 'proposal_id' => $proposal_id - )); - $query->condition('id', $selection); - $query->condition('status', 0); - $num_updated = $query->execute(); - } //$selections as $selection - if (!$result) - { - drupal_set_message(t('Error receiving your third book preference.'), 'error'); - } //!$result - } //$form_state['values']['book3'] - /* 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['language']; - /*$tbc_bcc_emails = array( - 'Bcc' => variable_get('textbook_companion_emails', ''), - );*/ - switch ($key) - { - case 'proposal_received': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /* 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 = " - SELECT * FROM list_of_category loc - JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category - WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 - "; - $args = array( - ':proposal_id' => $params['proposal_received']['proposal_id'], - ':pref_number' => 1 - ); - $preference1_q = db_query($query, $args); - $preference1_data = $preference1_q->fetchObject(); - /*$preference2_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_received']['proposal_id'], 2); - $preference2_data = db_fetch_object($preference2_q);*/ - $query = " - SELECT * FROM list_of_category loc - JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category - WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 - "; - $args = array( - ':proposal_id' => $params['proposal_received']['proposal_id'], - ':pref_number' => 2 - ); - $preference2_q = db_query($query, $args); - $preference2_data = $preference2_q->fetchObject(); - $query = " - SELECT * FROM list_of_category loc - JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category - WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 - "; - $args = array( - ':proposal_id' => $params['proposal_received']['proposal_id'], - ':pref_number' => 3 - ); - $preference3_q = db_query($query, $args); - $preference3_data = $preference3_q->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 book proposal has been received', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -We have received your following book proposal: - -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) . ' - -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 . ' -Category : ' . $preference1_data->category_name . ' - -Book Preference 2 :- -Title of the book : ' . $preference2_data->book . ' -Author name : ' . $preference2_data->author . ' -ISBN No. : ' . $preference2_data->isbn . ' -Publisher and Place : ' . $preference2_data->publisher . ' -Edition : ' . $preference2_data->edition . ' -Year of publication : ' . $preference2_data->year . ' -Category : ' . $preference2_data->category_name . ' - -Book Preference 3 :- -Title of the book : ' . $preference3_data->book . ' -Author name : ' . $preference3_data->author . ' -ISBN No. : ' . $preference3_data->isbn . ' -Publisher and Place : ' . $preference3_data->publisher . ' -Edition : ' . $preference3_data->edition . ' -Year of publication : ' . $preference3_data->year . ' -Category : ' . $preference3_data->category_name . ' - - -Uploaded Sample Code :' . $samplecodefilename . ' - - -Your proposal is under review and you will soon receive an email from us regarding the same. - - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'proposal_disapproved': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /* 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(); - /*$preference2_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_disapproved']['proposal_id'], 2); - $preference2_data = db_fetch_object($preference2_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', 2); - $query->range(0, 1); - $result = $query->execute(); - $preference2_data = $result->fetchObject(); - /*$preference3_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND pref_number = %d LIMIT 1", $params['proposal_disapproved']['proposal_id'], 3); - $preference3_data = db_fetch_object($preference3_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', 3); - $query->range(0, 1); - $result = $query->execute(); - $preference3_data = $result->fetchObject(); - $user_data = user_load($params['proposal_disapproved']['user_id']); - $message['headers'] = $params['proposal_disapproved']['headers']; - $message['subject'] = t('[!site_name] Your book proposal has been disapproved', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - if ($proposal_data->proposal_type != 1) - { - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Your following book proposal has been disapproved: - -Reason for disapproval: ' . $proposal_data->message . ' - -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) . ' - -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 . ' - -Book Preference 2 :- -Title of the book : ' . $preference2_data->book . ' -Author name : ' . $preference2_data->author . ' -ISBN No. : ' . $preference2_data->isbn . ' -Publisher and Place : ' . $preference2_data->publisher . ' -Edition : ' . $preference2_data->edition . ' -Year of publication : ' . $preference2_data->year . ' - -Book Preference 3 :- -Title of the book : ' . $preference3_data->book . ' -Author name : ' . $preference3_data->author . ' -ISBN No. : ' . $preference3_data->isbn . ' -Publisher and Place : ' . $preference3_data->publisher . ' -Edition : ' . $preference3_data->edition . ' -Year of publication : ' . $preference3_data->year . ' - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - } //$proposal_data->proposal_type != 1 - else - { - //Non AICTE book proposal dissaprove// - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Your following book proposal has been disapproved: - -Reason for disapproval: ' . $proposal_data->message . ' - -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) . ' - -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 . ' - - - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - } - break; - /* Non AICTE Book Proposal */ - case 'nonaicte_proposal_received': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /* 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['nonaicte_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"; - } - $query = " - SELECT * FROM list_of_category loc - JOIN textbook_companion_preference tcp ON loc.category_id = tcp.category - WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1 - "; - $args = array( - ':proposal_id' => $params['nonaicte_proposal_received']['proposal_id'], - ':pref_number' => 1 - ); - $preference1_q = db_query($query, $args); - $preference1_data = $preference1_q->fetchObject(); - $user_data = user_load($params['nonaicte_proposal_received']['user_id']); - $message['headers'] = $params['nonaicte_proposal_received']['headers']; - $message['subject'] = t('[!site_name] Your book proposal has been received', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -We have received your following book proposal: - -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) . ' - -Your Non AICTE 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 . ' -Category : ' . $preference1_data->category_name . ' - - -Uploaded Sample Code : ' . $samplecodefilename . ' - -Your proposal is under review and you will soon receive an email from us regarding the same. - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'nonaicte_proposal_to_pi': - /************ fetch proposal data ****************/ - $query = db_select('textbook_companion_proposal'); - $query->fields('textbook_companion_proposal'); - $query->condition('id', $params['nonaicte_proposal_received']['proposal_id']); - $query->range(0, 1); - $result = $query->execute(); - $proposal_data = $result->fetchObject(); - /************ fetch book preference data ****************/ - $query = db_select('textbook_companion_preference'); - $query->fields('textbook_companion_preference'); - $query->condition('proposal_id', $params['nonaicte_proposal_received']['proposal_id']); - $query->condition('pref_number', 1); - $query->range(0, 1); - $result = $query->execute(); - $preference1_data = $result->fetchObject(); - $user_data = user_load($params['nonaicte_proposal_received']['user_id']); - $message['headers'] = $params['nonaicte_proposal_received']['headers']; - $message['subject'] = t('[!site_name] New Non AICTE book suggestion has been received', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - /******************* Email Template for not aicte book suggestion **************************/ - $message['body'] = array( - 'body' => t(' -Dear all, - -We have received following Non AICTE book suggestion: - -Full Name : ' . $proposal_data->full_name . ' -University/Institute :' . $proposal_data->university . ' - - -Reason(s): ' . $proposal_data->reason . ' - -Your Non AICTE 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 . ' - -Reference :- ' . $proposal_data->reference - //Please click here to provide your feedback: http://scilab.in/comments - . ' - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'proposal_approved': - $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(); - $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', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Your following book proposal has been 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) . ' - -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 . ' - -According the new Textbook Companion procedure, a student doing a textbook companion is not required to have a mentor. For more details check the links given below. -http://scilab.in/tbc_honorarium -http://scilab.in/Textbook_Companion_Internship - -Please contact us by sending an e-mail to textbook@scilab.in in case you wish to cancel this book proposal. - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'proposal_completed': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /*$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 for completion of the book.', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Following book has been completed sucessfully 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://scilab.in/textbook_run/' . $approved_preference_data->id . ' - -Now you should be able to propose a new book... - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'example_uploaded': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /*$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', '') - ), array( - 'language' => $language->language - )); - $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 - ), array( - 'language' => $language->language - )) - ); - break; - case 'example_updated': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /*$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', '') - ), array( - 'language' => $language->language - )); - $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 - ), array( - 'language' => $language->language - )) - ); - break; - case 'example_updated_admin': - // bcc to textbook_companion_emails - $message['headers'] += $tbc_bcc_emails; - /*$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(); - $user_data = user_load($params['example_updated_admin']['user_id']); - $message['subject'] = t('[!site_name] Reviewer have updated example', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Reviewer have updated the following example: - -Example number : ' . $example_data->number . ' -Caption : ' . $example_data->caption . ' - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'example_approved': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - /*$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(); - $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', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Your following example has been approved: - -Example number : ' . $example_data->number . ' -Caption : ' . $example_data->caption . ' - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'example_disapproved': - // bcc to textbook_companion_emails - $message['headers'] += $tbc_bcc_emails; - $user_data = user_load($params['example_disapproved']['user_id']); - $message['subject'] = t('[!site_name] Your uploaded example has been disapproved', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -Your following example has been disapproved: - -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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'example_deleted_user': - // bcc to textbook_companion_emails - // $message['headers'] += $tbc_bcc_emails; - $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', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'dependency_uploaded': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - $user_data = user_load($params['dependency_uploaded']['user_id']); - $message['headers'] = $params['example_deleted_user']['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', '') - ), array( - 'language' => $language->language - )); - $message['body'] = array( - 'body' => t(' -Dear !user_name, - -You have uploaded following dependency files : - ' . $dependency_files . ' - -Best Wishes, - -!site_name', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'feedback_received': - // bcc to textbook_companion_emails - // $message['headers'] += $tbc_bcc_emails; - $message['headers'] = $params['feedback_received']['headers']; - $user_data = user_load($params['feedback_received']['user_id']); - $message['subject'] = t('[!site_name] We have received your feedback', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'internshipform': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - $message['headers'] = $params['internshipform']['headers']; - $user_data = user_load($params['internshipform']['user_id']); - $message['subject'] = t('[!site_name] We have received your feedback', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'copyrighttransferform': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - $message['headers'] = $params['copyrighttransferform']['headers']; - $user_data = user_load($params['copyrighttransferform']['user_id']); - $message['subject'] = t('[!site_name] We have received your feedback', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'undertakingform': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - $message['headers'] = $params['undertakingform']['headers']; - $user_data = user_load($params['undertakingform']['user_id']); - $message['subject'] = t('[!site_name] We have received your feedback', array( - '!site_name' => variable_get('site_name', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'remark': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_emails; - $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', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'cheque_sent': - // bcc to textbook_companion_emails - // $message['headers'] += $tbc_bcc_emails; - $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', '') - ), array( - 'language' => $language->language - )); - $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', array( - '!site_name' => variable_get('site_name', ''), - '!user_name' => $user_data->name - ), array( - 'language' => $language->language - )) - ); - break; - case 'standard': - // bcc to textbook_companion_emails - //$message['headers'] += $tbc_bcc_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() . 'uploads/'; -} -function textbook_companion_samplecode_path() -{ - return $_SERVER['DOCUMENT_ROOT'] . base_path() . '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);*/ - $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 . $examples_files_data->filepath)) - { - $status = FALSE; - drupal_set_message(t('Error deleting !file. File does not exists.', array( - '!file' => $examples_files_data->filepath - )), 'error'); - continue; - } //!file_exists($root_path . $examples_files_data->filepath) - /* removing example file */ - if (!drupal_unlink($root_path . $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'] = array( - 0 => "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(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) - drupal_set_message('Error sending email message.', 'error'); - } //!drupal_unlink($root_path . $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->preference_id . '/' . 'CH' . $chapter_data->number . '/' . 'EX' . $example_data->number; - $dir_path = $root_path . $ex_path; - if (is_dir($dir_path)) - { - if (!drupal_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'] = array( - 0 => "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(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) - drupal_set_message('Error sending email message.', 'error'); - return FALSE; - } //!drupal_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(); - 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->preference_id . '/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(), $params, 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);*/ - $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->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->filepath) - /* removing example file */ - if (!unlink($root_path . $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->filepath; - if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) - drupal_set_message('Error sending email message.', 'error'); - return FALSE; - } //!unlink($root_path . $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 Scilab</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('Scilab Website' => 'Scilab 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' => _tbc_list_of_departments(), - '#required' => TRUE - ); - $form['university'] = array( - '#type' => 'textfield', - '#title' => t('University/Institute'), - '#size' => 30, - '#maxlength' => 50, - '#required' => TRUE - ); - $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' => _tbc_list_of_states(), - '#validated' => TRUE, - '#states' => array( - 'visible' => array( - ':input[name="country"]' => array( - 'value' => 'India' - ) - ) - ) - ); - $form['city'] = array( - '#type' => 'select', - '#title' => t('City'), - '#options' => _tbc_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['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'), - '#default_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' => 'textfield', - '#title' => t('Scilab Version'), - '#description' => t('Input version format should be like 5.4 or 5.4.1'), - '#size' => 10, - '#required' => TRUE, - '#maxlength' => 20 - ); - $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, - '#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' => 1000, - '#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, - '#default_value' => $row1->book, - '#disabled' => ($row1->book ? TRUE : FALSE) - ); - $form['preference1']['author1'] = array( - '#type' => 'textfield', - '#title' => t('Author Name'), - '#size' => 30, - '#maxlength' => 100, - '#required' => TRUE, - '#default_value' => $row1->author, - '#disabled' => ($row1->author ? TRUE : FALSE) - ); - $form['preference1']['isbn1'] = array( - '#type' => 'textfield', - '#title' => t('ISBN No'), - '#size' => 30, - '#maxlength' => 25, - '#required' => TRUE, - '#default_value' => $row1->isbn, - '#disabled' => ($row1->isbn ? TRUE : FALSE) - ); - $form['preference1']['publisher1'] = array( - '#type' => 'textfield', - '#title' => t('Publisher & Place'), - '#size' => 30, - '#maxlength' => 50, - '#required' => TRUE, - '#default_value' => $row1->publisher - ); - $form['preference1']['edition1'] = array( - '#type' => 'textfield', - '#title' => t('Edition'), - '#size' => 4, - '#maxlength' => 2, - '#required' => TRUE, - '#default_value' => $row1->edition - ); - $form['preference1']['year1'] = array( - '#type' => 'textfield', - '#title' => t('Year of pulication'), - '#size' => 4, - '#maxlength' => 4, - '#required' => TRUE, - '#default_value' => $row1->year - ); - $form['preference1']['book_category_1'] = array( - '#type' => 'select', - '#title' => t('Category'), - '#options' => _tbc_list_of_category(), - '#required' => TRUE - ); - $form['samplefile'] = array( - '#type' => 'fieldset', - '#title' => t('<span class="form-required form-item" title="This field is required.">Sample Source Files *</span>'), - '#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_file_extensions', '') . '</span>' - ); - $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') - ); - return $form; -} -function book_proposal_nonaicte_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 */ - if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition1'])) - form_set_error('edition1', t('Invalid edition for Book Preference 1')); - /* year of publication */ - 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')); - /* year of publication */ - $cur_year = date('Y'); - 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')); - /* isbn */ - if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn1'])) - form_set_error('isbn1', t('Invalid ISBN for Book Preference 1')); - if (!preg_match('/^\d+(?:\.\d+)+/', $form_state['values']['version'])) - form_set_error('version', t('Please enter correct version in speacifed format')); - if ($form_state['values']['country'] == 'Others') - { - if ($form_state['values']['other_country'] == '') - { - form_set_error('other_country', t('Enter country name')); - // $form_state['values']['country'] = $form_state['values']['other_country']; - } //$form_state['values']['other_country'] == '' - else - { - $form_state['values']['country'] = $form_state['values']['other_country']; - } - if ($form_state['values']['other_state'] == '') - { - form_set_error('other_state', t('Enter state name')); - // $form_state['values']['country'] = $form_state['values']['other_country']; - } //$form_state['values']['other_state'] == '' - else - { - $form_state['values']['all_state'] = $form_state['values']['other_state']; - } - if ($form_state['values']['other_city'] == '') - { - form_set_error('other_city', t('Enter city name')); - // $form_state['values']['country'] = $form_state['values']['other_country']; - } //$form_state['values']['other_city'] == '' - else - { - $form_state['values']['city'] = $form_state['values']['other_city']; - } - } //$form_state['values']['country'] == 'Others' - else - { - if ($form_state['values']['country'] == '') - { - form_set_error('country', t('Select country name')); - // $form_state['values']['country'] = $form_state['values']['other_country']; - } //$form_state['values']['country'] == '' - if ($form_state['values']['all_state'] == '') - { - form_set_error('all_state', t('Select state name')); - // $form_state['values']['country'] = $form_state['values']['other_country']; - } //$form_state['values']['all_state'] == '' - if ($form_state['values']['city'] == '') - { - form_set_error('city', t('Select city name')); - // $form_state['values']['country'] = $form_state['values']['other_country']; - } //$form_state['values']['city'] == '' - } - 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_file_extensions', ''); - break; - } //$file_type - $allowed_extensions = explode(',', $allowed_extensions_str); - $allowd_file = strtolower($_FILES['files']['name'][$file_form_name]); - $temp_extension = end(explode('.', $allowd_file)); - 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']) - return; -} -function book_proposal_nonaicte_form_submit($form, &$form_state) -{ - global $user; - $root_path = textbook_companion_samplecode_path(); - $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']; - } - } //isset($_POST['reason']) - /************************************/ - $scilab_version = 'scilab ' . $form_state['values']['version']; - $query = " -INSERT INTO {textbook_companion_proposal} - (uid, approver_uid, full_name, mobile, gender, how_project, course, branch, university, country, city, pincode, state, faculty, reviewer, reference, completion_date, creation_date, approval_date, proposal_status, message, scilab_version, operating_system, teacher_email, proposal_type, reason, samplefilepath) VALUES (:uid, :approver_uid, :full_name, :mobile, :gender, :how_project, :course, :branch, :university, :country, :city, :pincode, :state, -:faculty, :reviewer, :reference, :completion_date, :creation_date, :approval_date, :proposal_status, :message, :scilab_version, - :operating_system, :teacher_email, :proposal_type, :reason, :samplefilepath) -"; - // $result = db_query($query); - $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" => 'Not available', - ":course" => $form_state['values']['course'], - ":branch" => $form_state['values']['branch'], - ":university" => $form_state['values']['university'], - ":country" => $form_state['values']['country'], - ":city" => $form_state['values']['city'], - ":pincode" => $form_state['values']['pincode'], - ":state" => $form_state['values']['all_state'], - ":faculty" => ucwords(strtolower($form_state['values']['faculty'])), - ":reviewer" => ucwords(strtolower($form_state['values']['reviewer'])), - ":reference" => strtolower($form_state['values']['reference']), - ":completion_date" => $completion_date_timestamp, - ":creation_date" => time(), - ":approval_date" => time(), - ":proposal_status" => 0, - ":message" => 'None', - ":scilab_version" => $scilab_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, - ":samplefilepath" => "" - ); - //var_dump($args); - $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); - } //!is_dir($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'); - return; - } //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']) - { - $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" => $form_state['values']['book_category_1'], - ":approval_status" => 0, - ":nonaicte_book" => 1 - ); - $result = db_query($query, $args); - 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(); |