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