diff options
Diffstat (limited to 'general.inc')
-rwxr-xr-x | general.inc | 558 |
1 files changed, 387 insertions, 171 deletions
diff --git a/general.inc b/general.inc index 2e36eae..5c79e92 100755 --- a/general.inc +++ b/general.inc @@ -1,192 +1,408 @@ <?php // $Id$ - function list_chapters() -{ - global $user; - - /************************ start approve book details ************************/ - $proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid); - $proposal_data = db_fetch_object($proposal_q); - if (!$proposal_data) { - drupal_set_message("Please submit a " . l('proposal', 'proposal') . ".", 'error'); - drupal_goto(''); - } - if ($proposal_data->proposal_status != 1) - { - switch ($proposal_data->proposal_status ) - { - case 0: - drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status'); - drupal_goto(''); - return; - break; - case 2: - drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal ' . l('here', 'proposal') . '.'), 'error'); - drupal_goto(''); - return; - break; - case 3: - drupal_set_message(t('Congratulations! You have completed your last book proposal. You have to create another proposal ' . l('here', 'proposal') . '.'), 'status'); + global $user; + /************************ start approve book details ************************/ + /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid); + $proposal_data = db_fetch_object($proposal_q);*/ + $query = db_select('textbook_companion_proposal'); + $query->fields('textbook_companion_proposal'); + $query->condition('uid', $user->uid); + $query->orderBy('id', 'DESC'); + $query->range(0, 1); + $result = $query->execute(); + $proposal_data = $result->fetchObject(); + if (!$proposal_data) + { + drupal_set_message("Please submit a " . l('proposal', 'textbook-companion/proposal') . ".", 'error'); + drupal_goto(''); + } + if ($proposal_data->proposal_status != 1 && $proposal_data->proposal_status != 4) + { + switch ($proposal_data->proposal_status) + { + case 0: + drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status'); + drupal_goto(''); + return; + break; + case 2: + drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal ' . l('here', 'textbook-companion/proposal') . '.'), 'error'); + drupal_goto(''); + return; + break; + case 3: + drupal_set_message(t('Congratulations! You have completed your last book proposal. You have to create another proposal ' . l('here', 'textbook-companion/proposal') . '.'), 'status'); + drupal_goto(''); + return; + break; +case 5: + drupal_set_message(t('You have submitted your all examples.'), 'status'); drupal_goto(''); return; - break; - default: - drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error'); - drupal_goto(''); - return; - break; - } + default: + drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error'); + drupal_goto(''); + return; + break; + } + } + + + /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $proposal_data->id); + $preference_data = db_fetch_object($preference_q);*/ + $query = db_select('textbook_companion_preference'); + $query->fields('textbook_companion_preference'); + $query->condition('proposal_id', $proposal_data->id); + $query->condition('approval_status', 1); + $query->range(0, 1); + $result = $query->execute(); + $preference_data = $result->fetchObject(); + if (!$preference_data) + { + drupal_set_message(t('Invalid Book Preference status. Please contact site administrator for further information.'), 'error'); + drupal_goto(''); + return; + } + /************************ end approve book details **************************/ + $return_html = '<br />'; + $return_html .= '<strong>Title of the Book:</strong><br />' . $preference_data->book . '<br /><br />'; + $return_html .= '<strong>Contributor Name:</strong><br />' . $proposal_data->full_name . '<br /><br />'; + $return_html .= l('Upload Example Code', 'textbook-companion/code/upload') . '<br />'; + /* get chapter list */ + $chapter_rows = array(); + /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number ASC", $preference_data->id);*/ + $query = db_select('textbook_companion_chapter'); + $query->fields('textbook_companion_chapter'); + $query->condition('preference_id', $preference_data->id); + $query->orderBy('number', 'ASC'); + $chapter_q = $query->execute(); + while ($chapter_data = $chapter_q->fetchObject()) + { + /* get example list */ + /* $example_q = db_query("SELECT count(*) as example_count FROM {textbook_companion_example} WHERE chapter_id = %d", $chapter_data->id); + $example_data = db_fetch_object($example_q);*/ + $query = db_select('textbook_companion_example'); + $query->addExpression('count(*)', 'example_count'); + $query->condition('chapter_id', $chapter_data->id); + $result = $query->execute(); + $example_data = $result->fetchObject(); + $chapter_rows[] = array( + $chapter_data->number, + $chapter_data->name . ' (' . l('Edit', 'textbook-companion/code/chapter/edit/' . $chapter_data->id) . ')', + $example_data->example_count, + l('View', 'textbook-companion/code/list-examples/' . $chapter_data->id) + ); + } + /* check if there are any chapters */ + if (!$chapter_rows) + { + drupal_set_message(t('No uploads found.'), 'status'); + return $return_html; + } + $chapter_header = array( + 'Chapter No.', + 'Title of the Chapter', + 'Uploaded Examples', + 'Actions' + ); + $return_html .= theme('table', array( + 'header' => $chapter_header, + 'rows' => $chapter_rows + )); + $submit_all_code_form = drupal_get_form('submit_all_code_form',$proposal_data->id, $preference_data->id); + $return_html .= drupal_render($submit_all_code_form); + return $return_html; } - - $preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $proposal_data->id); - $preference_data = db_fetch_object($preference_q); - if (!$preference_data) +function list_examples() { - drupal_set_message(t('Invalid Book Preference status. Please contact site administrator for further information.'), 'error'); - drupal_goto(''); - return; - } - /************************ end approve book details **************************/ - - $return_html = '<br />'; - $return_html .= '<strong>Title of the Book:</strong><br />' . $preference_data->book . '<br /><br />'; - $return_html .= '<strong>Contributor Name:</strong><br />' . $proposal_data->full_name . '<br /><br />'; - $return_html .= l('Upload Example Code', 'textbook_companion/code/upload') . '<br />'; + global $user; + /************************ start approve book details ************************/ + /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid); + $proposal_data = db_fetch_object($proposal_q);*/ + $query = db_select('textbook_companion_proposal'); + $query->fields('textbook_companion_proposal'); + $query->condition('uid', $user->uid); + $query->orderBy('id', 'DESC'); + $query->range(0, 1); + $result = $query->execute(); + $proposal_data = $result->fetchObject(); + if (!$proposal_data) + { + drupal_set_message("Please submit a " . l('proposal', 'textbook-companion/proposal') . ".", 'error'); + drupal_goto(''); + } + if ($proposal_data->proposal_status != 1 && $proposal_data->proposal_status != 4) + { + switch ($proposal_data->proposal_status) + { + case 0: + drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status'); + drupal_goto(''); + return; + break; + case 2: + drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal ' . l('here', 'textbook-companion/proposal') . '.'), 'error'); + drupal_goto(''); + return; + break; + case 3: + drupal_set_message(t('Congratulations! You have completed your last book proposal. You have to create another proposal ' . l('here', 'textbook-companion/proposal') . '.'), 'status'); + drupal_goto(''); + return; + break; +case 5: + drupal_set_message(t('You have submitted your all codes.'), 'status'); + drupal_goto(''); + return; - /* get chapter list */ - $chapter_rows = array(); - $chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number ASC", $preference_data->id); - while ($chapter_data = db_fetch_object($chapter_q)) - { + default: + drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error'); + drupal_goto(''); + return; + break; + } + } + /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $proposal_data->id); + $preference_data = db_fetch_object($preference_q);*/ + $query = db_select('textbook_companion_preference'); + $query->fields('textbook_companion_preference'); + $query->condition('proposal_id', $proposal_data->id); + $query->condition('approval_status', 1); + $query->range(0, 1); + $result = $query->execute(); + $preference_data = $result->fetchObject(); + if (!$preference_data) + { + drupal_set_message(t('Invalid Book Preference status. Please contact site administrator for further information.'), 'error'); + drupal_goto(''); + return; + } + /************************ end approve book details **************************/ + /* get chapter details */ + $chapter_id = arg(3); + /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d AND preference_id = %d LIMIT 1", $chapter_id, $preference_data->id);*/ + $query = db_select('textbook_companion_chapter'); + $query->fields('textbook_companion_chapter'); + $query->condition('id', $chapter_id); + $query->condition('preference_id', $preference_data->id); + $query->range(0, 1); + $chapter_q = $query->execute(); + if ($chapter_data = $chapter_q->fetchObject()) + { + $return_html = '<br />'; + $return_html .= '<strong>Title of the Book:</strong><br />' . $preference_data->book . '<br /><br />'; + $return_html .= '<strong>Contributor Name:</strong><br />' . $proposal_data->full_name . '<br /><br />'; + $return_html .= '<strong>Chapter Number:</strong><br />' . $chapter_data->number . '<br /><br />'; + $return_html .= '<strong>Title of the Chapter:</strong><br />' . $chapter_data->name . '<br />'; + } + else + { + drupal_set_message(t('Invalid chapter.'), 'error'); + drupal_goto('textbook-companion/code'); + return; + } + $return_html .= '<br />' . l('Back to Chapter List', 'textbook-companion/code'); /* get example list */ - $example_q = db_query("SELECT count(*) as example_count FROM {textbook_companion_example} WHERE chapter_id = %d", $chapter_data->id); - $example_data = db_fetch_object($example_q); - $chapter_rows[] = array($chapter_data->number, $chapter_data->name . ' (' . l('Edit', 'textbook_companion/code/chapter/edit/' . $chapter_data->id) . ')', $example_data->example_count, l('View', 'textbook_companion/code/list_examples/' . $chapter_data->id)); - } - - /* check if there are any chapters */ - if (!$chapter_rows) - { - drupal_set_message(t('No uploads found.'), 'status'); + $example_rows = array(); + $query = db_select('textbook_companion_example'); + $query->fields('textbook_companion_example'); + $query->condition('chapter_id', $chapter_id); + $example_q = $query->execute(); + while ($example_data = $example_q->fetchObject()) + { + /* approval status */ + $approval_status = ''; + switch ($example_data->approval_status) + { + case 0: + $approval_status = 'Pending'; + break; + case 1: + $approval_status = 'Approved'; + break; + case 2: + $approval_status = 'Rejected'; + break; + } + /* example files */ + $example_files = ''; + /*$example_files_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE example_id = %d ORDER BY filetype", $example_data->id);*/ + $query = db_select('textbook_companion_example_files'); + $query->fields('textbook_companion_example_files'); + $query->condition('example_id', $example_data->id); + $query->orderBy('filetype', 'ASC'); + $example_files_q = $query->execute(); + while ($example_files_data = $example_files_q->fetchObject()) + { + $file_type = ''; + switch ($example_files_data->filetype) + { + case 'S': + $file_type = 'Main or Source'; + break; + case 'R': + $file_type = 'Result'; + break; + case 'X': + $file_type = 'xcos'; + break; + default: + } + $example_files .= l($example_files_data->filename, 'textbook-companion/download/file/' . $example_files_data->id) . ' (' . $file_type . ')<br />'; + } + if ($example_data->approval_status == 0) + { + $example_rows[] = array( + 'data' => array( + $example_data->number, + $example_data->caption, + $approval_status, + $example_files, + l('Edit', 'textbook-companion/code/edit/' . $example_data->id) . ' | ' . l('Delete', 'textbook-companion/code/delete/' . $example_data->id, array( + 'attributes' => array( + 'onClick' => 'return confirm("Are you sure you want to delete the example?")' + ) + )) + ), + 'valign' => 'top' + ); + } + else + { + $example_rows[] = array( + 'data' => array( + $example_data->number, + $example_data->caption, + $approval_status, + $example_files, + l('Download', 'textbook-companion/download/example/' . $example_data->id) + ), + 'valign' => 'top' + ); + } + } + $example_header = array( + 'Example No.', + 'Caption', + 'Status', + 'Files', + 'Action' + ); + $return_html .= theme('table', array( + 'header' => $example_header, + 'rows' => $example_rows + )); + return $return_html; } - - $chapter_header = array('Chapter No.', 'Title of the Chapter', 'Uploaded Examples', 'Actions'); - $return_html .= theme_table($chapter_header, $chapter_rows); - return $return_html; +/*function all_example_submitted_check_form($form,$form_state,$preference_id){ + $form = array(); + $form['all_example_submitted'] = array( + '#type' => 'checkbox', + '#title' => t('I have submitted codes for all the examples'), + '#description' => 'Once you have submited this option you are not able to upload more examples.', + '#required' => TRUE, + ); + $form['hidden_preference_id'] = array( + '#type' => 'hidden', + '#value' => $preference_id + ); + $form['submit'] = array( + '#type' => 'submit', + '#value' => t('Submit') + ); + return $form; } +*/ -function list_examples() -{ - global $user; - - /************************ start approve book details ************************/ - $proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE uid = %d ORDER BY id DESC LIMIT 1", $user->uid); - $proposal_data = db_fetch_object($proposal_q); - if (!$proposal_data) - { - drupal_set_message("Please submit a " . l('proposal', 'proposal') . ".", 'error'); - drupal_goto(''); - } - if ($proposal_data->proposal_status != 1) - { - switch ($proposal_data->proposal_status ) - { - case 0: - drupal_set_message(t('We have already received your proposal. We will get back to you soon.'), 'status'); - drupal_goto(''); - return; - break; - case 2: - drupal_set_message(t('Your proposal has been dis-approved. Please create another proposal ' . l('here', 'proposal') . '.'), 'error'); - drupal_goto(''); - return; - break; - case 3: - drupal_set_message(t('Congratulations! You have completed your last book proposal. You have to create another proposal ' . l('here', 'proposal') . '.'), 'status'); - drupal_goto(''); - return; - break; - default: - drupal_set_message(t('Invalid proposal state. Please contact site administrator for further information.'), 'error'); - drupal_goto(''); - return; - break; - } - } +function all_example_submitted_check_form_submit($form,$form_state){ +global $user; +if ($form_state['values']['all_example_submitted'] == 1) { +db_query('UPDATE textbook_companion_preference SET submited_all_examples_code = 1 WHERE id = :preference_id',array(':preference_id' => $form_state['values']['hidden_preference_id'])); + /* sending email */ + $query = ("SELECT proposal_id FROM textbook_companion_preference WHERE id= :preference_id"); + $args = array(":preference_id" => $form_state['values']['hidden_preference_id']); + $proposal_data = db_query($query,$args); + $proposal_data_result = $proposal_data->fetchObject(); - $preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = %d AND approval_status = 1 LIMIT 1", $proposal_data->id); - $preference_data = db_fetch_object($preference_q); - if (!$preference_data) - { - drupal_set_message(t('Invalid Book Preference status. Please contact site administrator for further information.'), 'error'); - drupal_goto(''); - return; - } - /************************ end approve book details **************************/ + $email_to = $user->mail; + $from = variable_get('textbook_companion_from_email', ''); + $bcc = variable_get('textbook_companion_emails', ''); + $cc = variable_get('textbook_companion_cc_emails', ''); + $param['all_code_submitted']['proposal_id'] = $proposal_data_result->proposal_id; + $param['all_code_submitted']['user_id'] = $user->uid; + $param['all_code_submitted']['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('textbook_companion', 'all_code_submitted', $email_to, language_default(), $param, $from, TRUE)) + drupal_set_message('Error sending email message.', 'error'); +} +} - /* get chapter details */ - $chapter_id = arg(3); - $chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d AND preference_id = %d LIMIT 1", $chapter_id, $preference_data->id); - if ($chapter_data = db_fetch_object($chapter_q)) - { - $return_html = '<br />'; - $return_html .= '<strong>Title of the Book:</strong><br />' . $preference_data->book . '<br /><br />'; - $return_html .= '<strong>Contributor Name:</strong><br />' . $proposal_data->full_name . '<br /><br />'; - $return_html .= '<strong>Chapter Number:</strong><br />' . $chapter_data->number . '<br /><br />'; - $return_html .= '<strong>Title of the Chapter:</strong><br />' . $chapter_data->name . '<br />'; - } else { - drupal_set_message(t('Invalid chapter.'), 'error'); - drupal_goto('textbook_companion/code'); - return; - } +function submit_all_code_form($form,&$form_state,$proposal_id,$preference_id){ +$form = array(); +$form['submit_all_code'] = array( + '#type' => 'checkbox', + '#title' => t('I have uploaded all the codes'), + '#description' => 'Once you have submited this option you are not able to upload more examples.', + '#required' => TRUE, +); +$form['prop_id'] = array( + '#type' => 'hidden', + '#value' => $proposal_id +); +$form['pref_id'] = array( + '#type' => 'hidden', + '#value' => $preference_id +); - $return_html .= '<br />' . l('Back to Chapter List', 'textbook_companion/code'); +$form['submit'] = array( + '#type' => 'submit', + '#value' => t('Submit') + ); - /* get example list */ - $example_rows = array(); - $example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d 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); - while ($example_data = db_fetch_object($example_q)) - { - /* approval status */ - $approval_status = ''; - switch ($example_data->approval_status) - { - case 0: $approval_status = 'Pending'; break; - case 1: $approval_status = 'Approved'; break; - case 2: $approval_status = 'Rejected'; break; - } + $form['cancel'] = array( + '#type' => 'markup', + '#value' => l(t('Cancel'), 'textbook-companion/code'), + ); + return $form; +} - /* example files */ - $example_files = ''; - $example_files_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE example_id = %d ORDER BY filetype", $example_data->id); - while ($example_files_data = db_fetch_object($example_files_q)) - { - $file_type = ''; - switch ($example_files_data->filetype) - { - case 'S': $file_type = 'Main or Source'; break; - case 'R': $file_type = 'Result'; break; - case 'X': $file_type = 'xcos'; break; - default: - } - $example_files .= l($example_files_data->filename, 'download/file/' . $example_files_data->id) . ' (' . $file_type . ')<br />'; - } +function submit_all_code_form_submit($form,&$form_state){ +global $user; +if($form_state['values']['submit_all_code']== 1){ +db_query('UPDATE textbook_companion_proposal SET proposal_status = 5 WHERE id = :id', array(":id" =>$form_state['values']['prop_id'])); +/* sending email */ + $query = ("SELECT proposal_id FROM textbook_companion_preference WHERE id= :preference_id"); + $args = array(":preference_id" => $form_state['values']['pref_id']); + $proposal_data = db_query($query,$args); + $proposal_data_result = $proposal_data->fetchObject(); - if ($example_data->approval_status == 0) - { - $example_rows[] = array('data' => array($example_data->number, $example_data->caption, $approval_status, $example_files, l('Edit', 'textbook_companion/code/edit/' . $example_data->id) . ' | ' . l('Delete', 'textbook_companion/code/delete/' . $example_data->id, array('attributes' => array('onClick' => 'return confirm("Are you sure you want to delete the example?")')))), 'valign' => 'top'); - } else { - $example_rows[] = array('data' => array($example_data->number, $example_data->caption, $approval_status, $example_files, l('Download', 'download/example/' . $example_data->id)), 'valign' => 'top'); - } - } + $email_to = $user->mail; + $from = variable_get('textbook_companion_from_email', ''); + $bcc = variable_get('textbook_companion_emails', ''); + $cc = variable_get('textbook_companion_cc_emails', ''); + $params['all_code_submitted']['proposal_id'] = $proposal_data_result->proposal_id; + $params['all_code_submitted']['user_id'] = $user->uid; + $params['all_code_submitted']['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('textbook_companion', 'all_code_submitted', $email_to, language_default(), $params, $from, TRUE)) + drupal_set_message('Error sending email message.', 'error'); +} - $example_header = array('Example No.', 'Caption', 'Status', 'Files', 'Action'); - $return_html .= theme_table($example_header, $example_rows); - return $return_html; -} +} |