fields('textbook_companion_preference', array('category'));
$query->condition('id', $url_book_pref_id);
$result = $query->execute()->fetchObject();
$category_default_value = $result->category;
}else{
$category_default_value = 0;
}
if($url_book_pref_id){
$form['category'] = array(
'#type' => 'select',
'#title' => t('Category'),
'#options' => _list_of_category(),
'#default_value' => $category_default_value,
'#ajax' => array(
'callback' => 'ajax_book_list_callback',
),
'#validated' => TRUE,
);
$book_default_value = $url_book_pref_id;
$form['book'] = array(
'#type' => 'select',
'#title' => t('Title of the book'),
'#options' => _list_of_books($category_default_value),
'#default_value' => $book_default_value,
'#prefix' => '
',
'#suffix' => '
',
'#ajax' => array(
'callback' => 'ajax_chapter_list_callback',
),
'#validated' => TRUE,
'#states' => array('invisible' => array(':input[name="category"]' => array('value' => 0),),),
);
/*$form['book_details'] = array(
'#prefix' => '',
'#suffix' => '',
'#markup' => '',
);*/
$form['book_details'] = array(
'#type' => 'item',
'#markup' => ''._html_book_info($book_default_value).'
',
);
$form['download_book'] = array(
'#type' => 'item',
'#markup' => ''.l('Download', 'download/book/' . $book_default_value) . ' ' . t('(Download the Scilab codes for all the solved examples)').'
',
);
$form['download_pdf'] = array(
'#type' => 'item',
'#markup' => ''.l('Download PDF', 'textbook_companion/generate_book/' . $book_default_value) . ' ' . t('(Download the PDF file containing Scilab codes for all the solved examples)').'
',
);
$form['chapter'] = array(
'#type' => 'select',
'#title' => t('Title of the chapter'),
'#options' => _list_of_chapters($book_default_value),
//'#default_value' => isset($form_state['values']['chapter']) ? $form_state['values']['chapter'] : '',
'#prefix' => '',
'#suffix' => '
',
'#ajax' => array(
'callback' => 'ajax_example_list_callback',
),
'#validated' => TRUE,
'#states' => array('invisible' => array(':input[name="category"]' => array('value' => 0),),),
);
$form['download_chapter'] = array(
'#type' => 'item',
'#markup' => '',
);
$example_default_value = isset($form_state['values']['chapter']) ? $form_state['values']['chapter'] : '';
$form['examples'] = array(
'#type' => 'select',
'#title' => t('Example No. (Caption): '),
'#options' => _list_of_examples($example_default_value),
'#default_value' => isset($form_state['values']['examples']) ? $form_state['values']['examples'] : '',
'#prefix' => '',
'#suffix' => '
',
'#ajax' => array(
'callback' => 'ajax_example_files_callback',
),
'#states' => array('invisible' => array(':input[name="chapter"]' => array('value' => 0),),),
);
$form['download_example_code'] = array(
'#type' => 'item',
'#markup' => '',
);
$form['example_files'] = array(
'#type' => 'item',
'#markup' => '',
);
}else{
$form['category'] = array(
'#type' => 'select',
'#title' => t('Category'),
'#options' => _list_of_category(),
'#default_value' => $category_default_value,
'#ajax' => array(
'callback' => 'ajax_book_list_callback',
),
'#validated' => TRUE,
);
$form['book'] = array(
'#type' => 'select',
'#title' => t('Title of the book'),
'#options' => _list_of_books($category_default_value),
//'#default_value' => isset($form_state['values']['book']) ? $form_state['values']['book'] : 0,
'#prefix' => '',
'#suffix' => '
',
'#ajax' => array(
'callback' => 'ajax_chapter_list_callback',
),
'#validated' => TRUE,
'#states' => array('invisible' => array(':input[name="category"]' => array('value' => 0),),),
);
$form['book_details'] = array(
'#type' => 'item',
'#markup' => '',
);
$form['download_book'] = array(
'#type' => 'item',
'#markup' => '',
);
$form['download_pdf'] = array(
'#type' => 'item',
'#markup' => '',
);
$book_default_value = isset($form_state['values']['book']) ? $form_state['values']['book'] : '';
$form['chapter'] = array(
'#type' => 'select',
'#title' => t('Title of the chapter'),
'#options' => _list_of_chapters($book_default_value),
//'#default_value' => isset($form_state['values']['chapter']) ? $form_state['values']['chapter'] : '',
'#prefix' => '',
'#suffix' => '
',
'#ajax' => array(
'callback' => 'ajax_example_list_callback',
),
'#validated' => TRUE,
'#states' => array('invisible' => array(':input[name="category"]' => array('value' => 0),),),
);
$form['download_chapter'] = array(
'#type' => 'item',
'#markup' => '',
);
$example_default_value = isset($form_state['values']['chapter']) ? $form_state['values']['chapter'] : '';
$form['examples'] = array(
'#type' => 'select',
'#title' => t('Example No. (Caption): '),
'#options' => _list_of_examples($example_default_value),
'#default_value' => isset($form_state['values']['examples']) ? $form_state['values']['examples'] : '',
'#prefix' => '',
'#suffix' => '
',
'#ajax' => array(
'callback' => 'ajax_example_files_callback',
),
'#states' => array('invisible' => array(':input[name="category"]' => array('value' => 0),),),
);
$form['download_example_code'] = array(
'#type' => 'item',
'#markup' => '',
);
$form['example_files'] = array(
'#type' => 'item',
'#markup' => '',
);
}
return $form;
}
/********************* Ajax callback ***************************/
function ajax_book_list_callback($form, $form_state) {
$category_default_value = $form_state['values']['category'];
if($category_default_value > 0){
$form['book']['#options'] = _list_of_books($category_default_value);
$commands[] = ajax_command_replace("#ajax-book-list-replace", drupal_render($form['book']));
$commands[] = ajax_command_html("#ajax-chapter-list-replace", '');
$commands[] = ajax_command_html("#ajax-example-list-replace", '');
}else{
$form['book']['#options'] = _list_of_books();
$commands[] = ajax_command_replace("#ajax-book-list-replace", drupal_render($form['book']));
$commands[] = ajax_command_html("#ajax-book-list-replace", '');
$commands[] = ajax_command_html("#ajax-chapter-list-replace", '');
$commands[] = ajax_command_html("#ajax-example-list-replace", '');
$commands[] = ajax_command_html("#ajax-book-details-replace", '');
$commands[] = ajax_command_html("#ajax-download-book-replace", '');
$commands[] = ajax_command_html("#ajax-download-book-pdf-replace", '');
$commands[] = ajax_command_html("#ajax-download-chapter-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-code-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-files-replace", '');
}
return array('#type' => 'ajax', '#commands' => $commands);
}
/*************************************************************************/
function ajax_chapter_list_callback($form, $form_state){
$book_list_default_value = $form_state['values']['book'];
if($book_list_default_value > 0){
$commands[] = ajax_command_html("#ajax-book-details-replace", _html_book_info($book_list_default_value));
$form['chapter']['#options']=_list_of_chapters($book_list_default_value);
$commands[] = ajax_command_html("#ajax-download-book-replace", l('Download', 'download/book/' . $book_list_default_value) . ' ' . t('(Download the Scilab codes for all the solved examples)'));
$commands[] = ajax_command_html("#ajax-download-book-pdf-replace", l('Download PDF', 'textbook_companion/generate_book/' . $book_list_default_value) . ' ' . t('(Download the PDF file containing Scilab codes for all the solved examples)'));
$commands[] = ajax_command_replace("#ajax-chapter-list-replace", drupal_render($form['chapter']));
$commands[] = ajax_command_html("#ajax-example-list-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-code-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-files-replace", '');
$commands[] = ajax_command_html("#ajax-download-chapter-replace",'');
}else{
$commands[] = ajax_command_html("#ajax-book-details-replace", '');
$form['chapter']['#options']=_list_of_chapters();
$commands[] = ajax_command_replace("#ajax-chapter-list-replace", drupal_render($form['chapter']));
$commands[] = ajax_command_html("#ajax-chapter-list-replace", '');
$commands[] = ajax_command_html("#ajax-download-book-replace",'');
$commands[] = ajax_command_html("#ajax-download-chapter-replace",'');
$commands[] = ajax_command_html("#ajax-download-book-pdf-replace", '');
$commands[] = ajax_command_html("#ajax-example-list-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-code-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-files-replace", '');
}
return array('#type' => 'ajax', '#commands' => $commands);
}
function ajax_example_list_callback($form, $form_state){
$chapter_list_default_value = $form_state['values']['chapter'];
if($chapter_list_default_value > 0){
$form['examples']['#options']= _list_of_examples($chapter_list_default_value);
$commands[] = ajax_command_replace("#ajax-example-list-replace", drupal_render($form['examples']));
$commands[] = ajax_command_html("#ajax-download-chapter-replace", l('Download', 'download/chapter/' . $chapter_list_default_value) . ' ' . t('(Download the Scilab codes for all the solved examples from the Chapter)'));
$commands[] = ajax_command_html("#ajax-download-example-code-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-files-replace", '');
}else{
$form['examples']['#options']= _list_of_examples();
$commands[] = ajax_command_replace("#ajax-example-list-replace", drupal_render($form['examples']));
$commands[] = ajax_command_html("#ajax-example-list-replace", '');
$commands[] = ajax_command_html("#ajax-download-chapter-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-code-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-files-replace", '');
}
return array('#type' => 'ajax', '#commands' => $commands);
}
/*****************************************************/
function ajax_example_files_callback($form, $form_state){
$example_list_default_value = $form_state['values']['examples'];
if($example_list_default_value!=0){
// $example_list_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE example_id = %d", $form_state['values']['run']['example']);
$query = db_select('textbook_companion_example_files');
$query->fields('textbook_companion_example_files');
$query->condition('example_id', $example_list_default_value );
$example_list_q = $query->execute();
if ($example_list_q)
{
$example_files_rows = array();
while ($example_list_data = $example_list_q->fetchObject())
{
$example_file_type = '';
switch ($example_list_data->filetype)
{
case 'S' : $example_file_type = 'Source or Main file'; break;
case 'R' : $example_file_type = 'Result file'; break;
case 'X' : $example_file_type = 'xcos file'; break;
default : $example_file_type = 'Unknown'; break;
}
$example_files_rows[] = array(l($example_list_data->filename, 'download/file/' . $example_list_data->id), $example_file_type);
}
/* dependency files */
// $dependency_list_q = db_query("SELECT dependency.id as dependency_id, dependency.filename as dependency_filename, dependency.caption as dependency_caption
// FROM {textbook_companion_example_dependency} example_dependency LEFT JOIN {textbook_companion_dependency_files} dependency
// ON example_dependency.dependency_id = dependency.id
// WHERE example_dependency.example_id = %d", $form_state['values']['run']['example']);
$query = db_select('textbook_companion_example_dependency', 'example_dependency');
$query->fields('dependency', array('id', 'filename', 'caption'));
$query->leftJoin('textbook_companion_dependency_files', 'dependency', 'example_dependency.dependency_id = dependency.id');
$query->condition('example_dependency.example_id', $form_state['values']['example_list']);
$dependency_list_q = $query->execute();
while ($dependency_list_data = $dependency_list_q->fetchObject())
{
$example_file_type = 'Dependency file';
$temp_caption = '';
if ($dependency_list_data->dependency_caption)
$temp_caption = ' (' . $dependency_list_data->dependency_caption . ')';
$example_files_rows[] = array(l($dependency_list_data->dependency_filename, 'download/dependency/' . $dependency_list_data->dependency_id) . $temp_caption, $example_file_type);
}
/* creating list of files table */
$example_files_header = array('Filename', 'Type');
$example_files = theme('table', array('header' => $example_files_header, 'rows' => $example_files_rows));
}
$commands[] = ajax_command_html("#ajax-download-example-code-replace", l('Download Scilab code for the example', 'download/example/' . $example_list_default_value));
$commands[] = ajax_command_html("#ajax-download-example-files-replace", $example_files);
}else{
$commands[] = ajax_command_html("#ajax-download-example-code-replace", '');
$commands[] = ajax_command_html("#ajax-download-example-files-replace", '');
}
return array('#type' => 'ajax', '#commands' => $commands);
}
/*******************************************************************/
function bootstrap_table_format($headers, $rows) {
$thead = "";
$tbody = "";
foreach($headers as $header) {
$thead .= "{$header} | ";
}
foreach($rows as $row) {
$tbody .= "";
foreach($row as $data) {
$tbody .= "{$data} | ";
}
$tbody .= "
";
}
$table = "
";
return $table;
}
/***********************************************************************************/
function _list_of_category()
{
$category_titles = array(0 => 'Please select category ...',
1 => 'Fluid Mechanics',
2 => 'Control Theory & Control Systems',
3 => 'Chemical Engineering',
4 => 'Thermodynamics',
5 => 'Mechanical Engineering',
6 => 'Signal Processing',
7 => 'Digital Communications',
8 => 'Electrical Technology',
9 => 'Mathematics & Pure Science',
10 => 'Analog Electronics',
11 => 'Digital Electronics',
12 => 'Computer Programming',
13 => 'Others'
);
return $category_titles;
}
function _list_of_books($category_default_value)
{
$book_titles = array(0 => 'Please select ...');
// $book_titles_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE category=".$category_default_value." AND approval_status = 1 OR approval_status = 3 ORDER BY book ASC");
// $book_titles_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE category=".$category_default_value." AND approval_status = 1 AND proposal_id IN (SELECT id FROM textbook_companion_proposal WHERE proposal_status=3) ORDER BY book ASC");
// var_dump('ok= '. $category_default_value);
$query = db_select('textbook_companion_preference');
$query->fields('textbook_companion_preference');
$query->condition('category', $category_default_value);
$query->condition('approval_status', 1);
$subquery = db_select('textbook_companion_proposal');
$subquery->fields('textbook_companion_proposal', array('id'));
$subquery->condition('proposal_status', 3);
$query->condition('proposal_id', $subquery, 'IN');
$query->orderBy('book', 'ASC');
$book_titles_q = $query->execute();
while ($book_titles_data = $book_titles_q->fetchObject())
{
$book_titles[$book_titles_data->id] = $book_titles_data->book . ' (Written by ' . $book_titles_data->author . ')';
}
return $book_titles;
}
function _list_of_chapters($preference_id = 0)
{
$book_chapters = array(0 => 'Please select...');
//$book_chapters_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number ASC", $preference_id);
$query = db_select('textbook_companion_chapter');
$query->fields('textbook_companion_chapter');
$query->condition('preference_id', $preference_id);
$query->orderBy('number', 'ASC');
$book_chapters_q = $query->execute();
while ($book_chapters_data = $book_chapters_q->fetchObject())
{
$book_chapters[$book_chapters_data->id] = $book_chapters_data->number . '. ' . $book_chapters_data->name;
}
return $book_chapters;
}
function _list_of_examples($chapter_id = 0)
{
$book_examples = array(0 => 'Please select...');
//$book_examples_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d AND approval_status = 1 ORDER BY
// CAST(SUBSTRING_INDEX(number, '.', 1) AS BINARY) ASC,
// CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(number , '.', 2), '.', -1) AS UNSIGNED) ASC,
// CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(number , '.', -1), '.', 1) AS UNSIGNED) ASC", $chapter_id);
$query = db_select('textbook_companion_example');
$query->fields('textbook_companion_example');
$query->condition('chapter_id', $chapter_id);
$query->condition('approval_status', 1);
//$query->orderBy('', '');
$book_examples_q = $query->execute();
while ($book_examples_data = $book_examples_q->fetchObject())
{
$book_examples[$book_examples_data->id] = $book_examples_data->number . ' (' . $book_examples_data->caption . ')';
}
return $book_examples;
}
function _book_information($preference_id)
{
/*$book_data = db_fetch_object(db_query("SELECT
preference.book as preference_book, preference.author as preference_author, preference.isbn as preference_isbn, preference.publisher as preference_publisher, preference.edition as preference_edition, preference.year as preference_year,
proposal.full_name as proposal_full_name, proposal.faculty as proposal_faculty, proposal.reviewer as proposal_reviewer, proposal.course as proposal_course, proposal.branch as proposal_branch, proposal.university as proposal_university
FROM {textbook_companion_proposal} proposal LEFT JOIN {textbook_companion_preference} preference ON proposal.id = preference.proposal_id WHERE preference.id = %d", $preference_id));*/
$query = db_select('textbook_companion_proposal', 'proposal');
$query->fields('preference', array('book', 'author', 'isbn', 'publisher', 'edition', 'year'));
$query->fields('proposal', array('full_name', 'faculty', 'reviewer', 'course', 'branch', 'university'));
$query->leftJoin('textbook_companion_preference', 'preference', 'proposal.id = preference.proposal_id');
$query->condition('preference.id', $preference_id);
$book_data = $query->execute()->fetchObject();
return $book_data;
}
function _html_book_info($preference_id) {
/*$book_details = db_fetch_object(db_query("SELECT
preference.book as preference_book, preference.author as preference_author, preference.isbn as preference_isbn, preference.publisher as preference_publisher, preference.edition as preference_edition, preference.year as preference_year,
proposal.full_name as proposal_full_name, proposal.faculty as proposal_faculty, proposal.reviewer as proposal_reviewer, proposal.course as proposal_course, proposal.branch as proposal_branch, proposal.university as proposal_university
FROM {textbook_companion_proposal} proposal LEFT JOIN {textbook_companion_preference} preference ON proposal.id = preference.proposal_id WHERE preference.id=".$preference_id));*/
$query = db_select('textbook_companion_proposal', 'proposal');
$query->addField('preference','book','preference_book');
$query->addField('preference','author','preference_author');
$query->addField('preference','isbn','preference_isbn');
$query->addField('preference','publisher','preference_publisher');
$query->addField('preference','edition','preference_edition');
$query->addField('preference','year','preference_year');
$query->addField('proposal','full_name','proposal_full_name');
$query->addField('proposal','faculty','proposal_faculty');
$query->addField('proposal','reviewer','proposal_reviewer');
$query->addField('proposal','course','proposal_course');
$query->addField('proposal','branch','proposal_branch');
$query->addField('proposal','university','proposal_university');
$query->fields('proposal', array('full_name', 'faculty', 'reviewer', 'course', 'branch', 'university'));
$query->leftJoin('textbook_companion_preference', 'preference', 'proposal.id = preference.proposal_id');
$query->fields('preference', array('book', 'author', 'isbn', 'publisher', 'edition', 'year'));
$query->condition('preference.id', $preference_id);
$book_details = $query->execute()->fetchObject();
$html_data = '';
if($book_details) {
$html_data = '' .
'About the Book | About the Contributor | ' .
'
' .
'- Author: ' . $book_details->preference_author . '
' .
'- Title of the Book: ' . $book_details->preference_book . '
' .
'- Publisher: ' . $book_details->preference_publisher . '
' .
'- Year: ' . $book_details->preference_year . '
' .
'- Edition: ' . $book_details->preference_edition . '
' .
' | ' .
'- Contributor Name: ' . $book_details->proposal_full_name . ', ' . $book_details->proposal_course . ', ' . $book_details->proposal_branch . ', ' . $book_details->proposal_university . '
' .
'- College Teacher: ' . $book_details->proposal_faculty . '
' .
'- Reviewer: ' . $book_details->proposal_reviewer . '
' .
' |
' . '
';
}
return $html_data;
}