From 8e79990ff3a8394af4e587b1d8082f4801827eb4 Mon Sep 17 00:00:00 2001 From: Jayaram Pai Date: Tue, 4 Feb 2014 23:20:25 +0530 Subject: initial commit --- .gitignore | 37 ++++++++++++++++ tbc_external_review.info | 3 ++ tbc_external_review.module | 102 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 .gitignore create mode 100644 tbc_external_review.info create mode 100644 tbc_external_review.module diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a14c765 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# Ignore configuration files that may contain sensitive information. +sites/*/*settings*.php + +# Ignore paths that contain generated content. +cache/ +files/ +sites/*/files +sites/*/private + +# Ignore default text files +robots.txt +/CHANGELOG.txt +/COPYRIGHT.txt +/INSTALL*.txt +/LICENSE.txt +/MAINTAINERS.txt +/UPGRADE.txt +/README.txt +sites/all/README.txt +sites/all/modules/README.txt +sites/all/themes/README.txt + +# Ignore everything but the "sites" folder ( for non core developer ) +.htaccess +web.config +authorize.php +cron.php +index.php +install.php +update.php +xmlrpc.php +/includes +/misc +/modules +/profiles +/scripts +/themes diff --git a/tbc_external_review.info b/tbc_external_review.info new file mode 100644 index 0000000..85d9d44 --- /dev/null +++ b/tbc_external_review.info @@ -0,0 +1,3 @@ +name = Tbc external review +description = Module for the tbc external review +core = 6.x 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 @@ + "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("All the available books have been selected. Please wait for more updates.", "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 {$remaining} 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("Your selections have been updated sucessfully.", "status"); + } + + function tbc_external_review_all() { + global $user; + $page_content = ""; + + $remaining = remaining_books_count(); + if($remaining > 0) { + $page_content = "You have {$remaining} 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; + } +?> -- cgit