"Edit TBC captions",
"page callback" => "R_fixer_caption_all",
"access arguments" => array(
"fix R_code_caption"
),
"type" => MENU_NORMAL_ITEM
);
$items["r_tbc_fixer/code"] = array(
"title" => "Edit TBC code",
"page callback" => "R_fixer_code_all",
"access arguments" => array(
"fix R"
),
"type" => MENU_NORMAL_ITEM
);
$items["r_tbc_fixer/ajax"] = array(
"page callback" => "R_fixer_ajax",
"access callback" => TRUE,
"type" => MENU_CALLBACK
);
$items["r_tbc_fixer/ajax/edit-book-category"] = array(
"page callback" => "r_tbc_fixer_edit_book_category_ajax",
"access callback" => TRUE,
"type" => MENU_CALLBACK,
"file" => "r_tbc_fixer_edit_book_category.inc"
);
/* for admin */
$items['admin/settings/r_tbc_fixer_settings'] = array(
'title' => 'textbook companion fixer Settings',
'description' => 'Textbook Companion Fixer Settings',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'r_tbc_fixer_settings_form'
),
'access arguments' => array(
'administer textbook companion fixer settings'
),
'type' => MENU_NORMAL_ITEM,
'file' => 'r_tbc_fixer_settings.inc'
);
// edit book categoery
$items["r_tbc_fixer/edit_book_category"] = array(
"title" => "Edit Books Category",
"page callback" => "r_tbc_fixer_edit_book_proposal_all",
"access arguments" => array(
"fix R_textbook_category"
),
"type" => MENU_NORMAL_ITEM,
'file' => 'r_tbc_fixer_edit_book_category.inc'
);
$items['r_tbc_fixer/category_edit'] = array(
'title' => 'Categorize',
'description' => 'Edit Completed Books Category',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'r_tbc_fixer_category_edit_form'
),
'access arguments' => array(
'fix R_textbook_category'
),
'type' => MENU_NORMAL_ITEM,
'file' => 'r_tbc_fixer_edit_book_category.inc'
);
return $items;
}
function r_tbc_fixer_permission()
{
return array(
"fix R" => array(
"title" => t("fix R code"),
'restrict access' => TRUE
),
"fix R_code_caption" => array(
"title" => t("fix R code caption"),
'restrict access' => TRUE
),
"administer textbook companion fixer settings" => array(
"title" => t("administer textbook companion fixer settings"),
'restrict access' => TRUE
),
"fix R_textbook_category" => array(
"title" => t("fix R textbook category"),
'restrict access' => TRUE
)
);
}
function R_fixer_caption_form($form, &$form_state)
{
$form = array();
$form["wrapper"] = array(
"#type" => "fieldset",
"#title" => "Caption change form",
"#prefix" => "
",
"#suffix" => "
"
);
$form["wrapper"]["book"] = array(
"#type" => "select",
"#title" => t("Please select the book."),
"#options" => r_get_tbc_books(),
);
$form["wrapper"]["chapter"] = array(
"#type" => "select",
"#title" => t("Please select the chapter"),
"#options" => array(
0 => "Please select a chapter"
),
"#prefix" => "",
"#suffix" => "
"
);
$form["wrapper"]["chapter_name"] = array(
"#type" => "textfield",
"#title" => t("Enter new chapter name"),
"#size" => 255,
"#maxlength" => 255,
"#attributes" => array(
"Style" => "width:100%"
),
"#prefix" => "",
"#suffix" => "
"
);
$form["wrapper"]["example"] = array(
"#type" => "select",
"#title" => t("Please select the example"),
"#description" => t("*Double click on example caption you want to edit"),
"#options" => array(
0 => "Please select a example"
),
"#prefix" => "",
"#suffix" => "
"
);
$form["wrapper"]["caption"] = array(
"#type" => "textfield",
"#title" => t("Enter new caption"),
"#attributes" => array(
"Style" => "width:100%"
),
"#size" => 255,
"#maxlength" => 255,
"#prefix" => "",
"#suffix" => "
"
);
$form["wrapper"]["chapter_example"] = array(
"#markup" => "
Update Chapter caption
Update Example caption",
"#prefix" => "",
"#suffix" => "
"
);
$form["wrapper"]["submit"] = array(
"#type" => "submit",
"#value" => "Update",
"#prefix" => "",
"#suffix" => "
"
);
$form["wrapper"]["code_wrapper"] = array(
"#type" => "fieldset",
"#description" => t("No code to display"),
"#attributes" => array(
"onclick" => "return check();"
),
"#prefix" => ""
);
return $form;
}
function R_fixer_caption_all()
{
$page_content = "";
$page_content .= "";
$page_content .= "
Updating...";
$page_content .= "Done.";
$R_fixer_caption_form = drupal_get_form("R_fixer_caption_form");
$page_content .= drupal_render($R_fixer_caption_form);
$page_content .= "";
$page_content .= "* Selecting text from above code-area with mouse will add it to the caption textbox.";
return $page_content;
}
function R_fixer_ajax($item, $key)
{
$data = "";
global $user;
if ($item == "category" && $key) {
/* $query = "
SELECT pre.id AS id, pre.book, pre.author FROM textbook_companion_preference pre
LEFT JOIN textbook_companion_proposal pro ON pro.id = pre.proposal_id
WHERE pro.proposal_status = 3 AND pre.approval_status = 1 AND pre.category = %d
ORDER BY pre.book ASC
";
$result = db_query($query, $key);*/
$query = db_select('textbook_companion_preference', 'pre');
$query->fields('pre', array(
'id',
'book',
'author'
));
$query->leftJoin('textbook_companion_proposal', 'pro', 'pro.id = pre.proposal_id');
$query->condition('pro.proposal_status', 3);
$query->condition('pre.approval_status', 1);
$query->condition('pre.category', $key);
$query->orderBy('pre.book', 'ASC');
$result = $query->execute();
$data .= "";
while ($row = $result->fetchObject()) {
$data .= "";
} //$row = $result->fetchObject()
} //$item == "category" && $key
else if ($item == "book" && $key) {
/*$query = "SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number";
$result = db_query($query, $key);*/
$query = db_select('textbook_companion_chapter');
$query->fields('textbook_companion_chapter');
$query->condition('preference_id', $key);
$query->orderBy('number', 'ASC');
$result = $query->execute();
$data .= "";
while ($row = $result->fetchObject()) {
$data .= "";
} //$row = $result->fetchObject()
} //$item == "book" && $key
else if ($item == "chapter" && $key) {
/*$query = "SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d ORDER BY number";
$result = db_query($query, $key);*/
$query = db_select('textbook_companion_example');
$query->fields('textbook_companion_example');
$query->condition('chapter_id', $key);
$query->orderBy('number', 'ASC');
$result = $query->execute();
$data .= "";
while ($row = $result->fetchObject()) {
$data .= "";
} //$row = $result->fetchObject()
} //$item == "chapter" && $key
else if ($item == "example" && $key) {
$result = db_query("select tcp.directory_name, tce.caption, tcef.filepath from textbook_companion_preference tcp join textbook_companion_chapter tcc on tcp.id=tcc.preference_id join textbook_companion_example tce ON tcc.id=tce.chapter_id join textbook_companion_example_files tcef on tce.id=tcef.example_id where tcef.filetype= 'S' AND tcef.example_id= :example_id", array(
':example_id' => $key
));
$row = $result->fetchObject();
/* fetching example file data */
$uploads_dir = $_SERVER['DOCUMENT_ROOT'] . base_path() . "r_uploads/tbc_uploads/";
$example_path = $uploads_dir. $row->directory_name. '/'. $row->filepath;
$example = file_get_contents($example_path);
$data .= "{$row->caption}
";
$data .= "{$example}
";
} //$item == "example" && $key
else if ($item == "update-example") {
$example_id = $_POST["example_id"];
$caption = $_POST["caption"];
/*$query = "
UPDATE textbook_companion_example
SET caption = '%s'
WHERE id = %d
";
$result = db_query($query, $caption, $example_id);*/
$query = db_update('textbook_companion_example');
$query->fields(array(
'caption' => $caption
));
$query->condition('id', $example_id);
$result = $query->execute();
$data .= "Updated";
/* sending email */
$email_to = $user->mail;
$from = variable_get('textbook_companion_from_email', '');
$bcc = variable_get('r_tbc_fixer_bcc_emails', '');
$cc = variable_get('r_tbc_fixer_cc_emails', '');
$params['example_updated']['example_id'] = $example_id;
$params['example_updated']['user_id'] = $user->uid;
$params['example_updated']['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('r_tbc_fixer', 'example_updated', $email_to, language_default(), $params, $from, TRUE)) {
$data .= 'Error sending email message.';
} //!drupal_mail('r_tbc_fixer', 'example_updated', $email_to, language_default(), $params, $from, TRUE)
} //$item == "update-example"
else if ($item == "update-chapter") {
$chapter_id = $_POST["chapter_id"];
$chapter_caption = $_POST["chapter_caption"];
$query_chapter = db_update('textbook_companion_chapter');
$query_chapter->fields(array(
'name' => $chapter_caption
));
$query_chapter->condition('id', $chapter_id);
$result_chapter = $query_chapter->execute();
$data .= "Updated";
/* sending email */
$email_to = $user->mail;
$from = variable_get('textbook_companion_from_email', '');
$bcc = variable_get('r_tbc_fixer_bcc_emails', '');
$cc = variable_get('r_tbc_fixer_cc_emails', '');
$params['chapter_updated']['chapter_id'] = $chapter_id;
$params['chapter_updated']['user_id'] = $user->uid;
$params['chapter_updated']['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('r_tbc_fixer', 'chapter_updated', $email_to, language_default(), $params, $from, TRUE)) {
$data .= 'Error sending email message.';
} //!drupal_mail('r_tbc_fixer', 'chapter_updated', $email_to, language_default(), $params, $from, TRUE)
} //$item == "update-chapter"
else if ($item == "update-both") {
$example_id = $_POST["example_id"];
$caption = $_POST["caption"];
$chapter_id = $_POST["chapter_id"];
$chapter_caption = $_POST["chapter_caption"];
$query_exmaple = db_update('textbook_companion_example');
$query_exmaple->fields(array(
'caption' => $caption
));
$query_exmaple->condition('id', $example_id);
$result_example = $query_exmaple->execute();
$query_chapter = db_update('textbook_companion_chapter');
$query_chapter->fields(array(
'name' => $chapter_caption
));
$query_chapter->condition('id', $chapter_id);
$result_chapter = $query_chapter->execute();
$data .= "Updated";
/* sending email */
$email_to = $user->mail;
$from = variable_get('textbook_companion_from_email', '');
$bcc = variable_get('r_tbc_fixer_bcc_emails', '');
$cc = variable_get('r_tbc_fixer_cc_emails', '');
$params['example_updated']['example_id'] = $example_id;
$params['example_updated']['user_id'] = $user->uid;
$params['example_updated']['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('r_tbc_fixer', 'chapter_example_updated', $email_to, language_default(), $params, $from, TRUE)) {
$data .= 'Error sending email message.';
} //!drupal_mail('r_tbc_fixer', 'chapter_example_updated', $email_to, language_default(), $params, $from, TRUE)
} //$item == "update"
else if ($item == "code" && $key) {
$code = $_POST["code"];
$result = db_query("select * from textbook_companion_preference tcp join textbook_companion_chapter tcc on tcp.id=tcc.preference_id join textbook_companion_example tce ON tcc.id=tce.chapter_id join textbook_companion_example_files tcef on tce.id=tcef.example_id where tcef.filetype= 'S' AND tcef.example_id= :example_id", array(
':example_id' => $key
));
$row = $result->fetchObject();
$uploads_dir = $_SERVER['DOCUMENT_ROOT'] . base_path() . "r_uploads/tbc_uploads/";
$example_path = $uploads_dir. $row->directory_name. '/'. $row->filepath;
file_put_contents($example_path, $code);
$data .= "updated";
} //$item == "code" && $key
else if ($item == "ind-ed" && $key) {
$query = "
UPDATE textbook_companion_aicte
SET ind = !ind
WHERE id = :id
";
$args = array(
":id" => $key
);
db_query($query, $args);
$data .= "updated";
} //$item == "ind-ed" && $key
else {
$data = "";
}
echo $data;
exit();
}
function R_fixer_code_form($form, &$form_state)
{
$form = array();
$form["code_edit"] = array(
"#type" => "fieldset",
"#title" => "Code edit form",
"#prefix" => "",
"#suffix" => "
"
);
$form["code_edit"]["book"] = array(
"#type" => "select",
"#title" => t("Please select the book."),
"#options" => r_get_tbc_books(),
);
$form["code_edit"]["chapter"] = array(
"#type" => "select",
"#title" => t("Please select the chapter"),
"#options" => array(
0 => "Please select a chapter"
),
"#prefix" => "",
"#suffix" => "
"
);
$form["code_edit"]["example"] = array(
"#type" => "select",
"#title" => t("Please select the example"),
"#options" => array(
0 => "Please select a example"
),
"#prefix" => "",
"#suffix" => "
"
);
$form["code_edit"]["code"] = array(
"#type" => "textarea",
"#title" => t("Code Editor"),
'#resizable' => FALSE,
"#prefix" => "",
"#suffix" => "
"
);
$form["code_edit"]["submit"] = array(
"#type" => "submit",
"#value" => "Update",
"#prefix" => "",
"#suffix" => "
"
);
return $form;
}
function R_fixer_code_all()
{
$page_content = "";
$page_content .= "";
$page_content .= "
Updating...";
$page_content .= "Done.";
$R_fixer_code_form = drupal_get_form("R_fixer_code_form");
$page_content .= drupal_render($R_fixer_code_form);
$page_content .= "";
return $page_content;
}
function r_get_tbc_books(){
$query = "
SELECT pre.id AS id, pre.book, pre.author FROM textbook_companion_preference pre
LEFT JOIN textbook_companion_proposal pro ON pro.id = pre.proposal_id
WHERE pro.proposal_status = 3 AND pre.approval_status = 1
ORDER BY pre.book ASC
";
$book_list = db_query($query);
$book[0] = "Select any book";
while ($book_list_data = $book_list->fetchObject())
{
$book[$book_list_data->id] .= $book_list_data->book ." (by " .$book_list_data->author. ")";
}
return $book;
}
function r_tbc_fixer_init()
{
drupal_add_css(drupal_get_path("module", "r_tbc_fixer") . "/css/r_tbc_fixer.css");
drupal_add_js(drupal_get_path("module", "r_tbc_fixer") . "/js/r_tbc_fixer.js");
drupal_add_js(drupal_get_path("module", "r_tbc_fixer") . "/js/r_tbc_fixer_edit_category.js");
drupal_add_js(drupal_get_path("module", "r_tbc_fixer") . "/js/selection.js");
}