diff options
author | Jayaram Pai | 2014-02-04 23:20:25 +0530 |
---|---|---|
committer | Jayaram Pai | 2014-02-04 23:20:25 +0530 |
commit | 8e79990ff3a8394af4e587b1d8082f4801827eb4 (patch) | |
tree | 6799fb0b9e98b92f5ff9286212a8c25f2262a322 /tbc_external_review.module | |
download | tbc-external-review-8e79990ff3a8394af4e587b1d8082f4801827eb4.tar.gz tbc-external-review-8e79990ff3a8394af4e587b1d8082f4801827eb4.tar.bz2 tbc-external-review-8e79990ff3a8394af4e587b1d8082f4801827eb4.zip |
initial commit
Diffstat (limited to 'tbc_external_review.module')
-rw-r--r-- | tbc_external_review.module | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/tbc_external_review.module b/tbc_external_review.module new file mode 100644 index 0000000..d22348e --- /dev/null +++ b/tbc_external_review.module @@ -0,0 +1,102 @@ +<?php + function tbc_external_review_menu() { + $items = array(); + + $items["books_external_review"] = array( + "title" => "Books for External Review", + "page callback" => "tbc_external_review_all", + "access arguments" => array("access tbc_external_review"), + "type" => MENU_CALLBACK + ); + return $items; + } + + function tbc_external_review_perm() { + return array("access tbc_external_review"); + } + + function tbc_external_review_form($form_state) { + global $user; + $form = array(); + + /* create multiple checkboxes from database */ + $result = remaining_books(); + $num_rows = mysql_num_rows($result); + if($num_rows > 0) { + while($row = db_fetch_object($result)) { + $form[$row->id] = array( + "#type" => "checkbox", + "#title" => t("{$row->book}"), + ); + } + + $form["submit"] = array( + "#type" => "submit", + "#value" => "Submit", + ); + } else { + drupal_set_message("<strong>All the available books have been selected. Please wait for more updates.</strong>", "status"); + } + return $form; + } + + function tbc_external_review_form_validate($form, &$form_state) { + $result = remaining_books(); + $count = 0; + $selections = array(); + while($row = db_fetch_object($result)) { + if($form_state["values"][$row->id] == 1) { + $count++; + array_push($selections, $row->id); + } + } + $remaining = remaining_books_count(); + if($count > $remaining) { + form_set_error("", "You can select a maximum of <strong>{$remaining}</strong> books."); + } else { + $form_state["values"]["selections"] = $selections; + } + } + + function tbc_external_review_form_submit($form, $form_state) { + global $user; + + $selections = $form_state["values"]["selections"]; + foreach($selections as $selection) { + $query = "update {external_review_details} set uid = {$user->uid}, status = 1 where preference_id = {$selection}"; + db_query($query); + } + drupal_set_message("<strong>Your selections have been updated sucessfully.</strong>", "status"); + } + + function tbc_external_review_all() { + global $user; + $page_content = ""; + + $remaining = remaining_books_count(); + if($remaining > 0) { + $page_content = "You have <strong>{$remaining}</strong> selections remaining:"; + $page_content .= drupal_get_form("tbc_external_review_form"); + } else { + $page_content = "Thanks for your selections. We will get back to you soon."; + } + return $page_content; + } + + /* helper functions */ + function remaining_books_count() { + global $user; + /*finding how many books the user can select */ + $query = "select count(*) from {external_review_details} where uid = {$user->uid}"; + $result = db_query($query); + $row = db_fetch_array($result); + $remaining = 6 - $row["count(*)"]; + return $remaining; + } + + function remaining_books() { + $query = "select * from {textbook_companion_preference} where id in (select preference_id from {external_review_details} where status = 0)"; + $result = db_query($query); + return $result; + } +?> |