'fieldset', '#title' => t('Manage Dependency'), '#collapsible' => FALSE, '#collapsed' => FALSE, '#prefix' => '
', '#suffix' => '
', '#tree' => TRUE ); $form['run']['dependency'] = array( '#type' => 'select', '#title' => t('Dependency'), '#options' => _textbook_companion_list_of_dependencies(), '#default_value' => $dependency_default_value, '#tree' => TRUE // '#ahah' => array( // 'event' => 'change', // 'effect' => 'none', // 'path' => ahah_helper_path(array('run')), // 'wrapper' => 'run-wrapper', // 'progress' => array( // 'type' => 'throbber', // 'message' => t(''), // ), // ), ); // $example_list = array(); /************ START OF $_POST **************/ /* if ($_POST) { if ($dependency_default_value > 0) { $example_id_q = db_query("SELECT * FROM {textbook_companion_example_dependency} WHERE dependency_id = %d", $dependency_default_value); while ($example_id_data = db_fetch_object($example_id_q)) { $example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d", $example_id_data->example_id); $example_data = db_fetch_object($example_q); $chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d", $example_data->chapter_id); $chapter_data = db_fetch_object($chapter_q); $preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $chapter_data->preference_id); $preference_data = db_fetch_object($preference_q); $example_list[] = array($example_data->number, $chapter_data->number . ' . ' . $chapter_data->name, $preference_data->book); } $example_list_header = array('Code', 'Chapter', 'Book'); $example = theme_table($example_list_header, $example_list); if ($example_list) { $form['run']['example_dependency'] = array( '#type' => 'item', '#value' => $example, ); $form['run']['example_dependency_message'] = array( '#type' => 'item', '#value' => 'Please unlink the dependency from the above example before deleting it', ); } } } */ /* hidden form elements */ // $form['run']['dependency_hidden'] = array( // '#type' => 'hidden', // '#value' => $form_state['values']['run']['dependency'], // ); // if (!$example_list && $dependency_default_value > 0) // { $form['run']['delete_dependency'] = array( '#type' => 'checkbox', '#title' => t('Delete Dependency') ); $form['run']['submit'] = array( '#type' => 'submit', '#value' => t('Submit') ); // } return $form; } function textbook_companion_dependency_approval_form_submit($form, &$form_state) { global $user; $root_path = textbook_companion_path(); if ($form_state['clicked_button']['#value'] == 'Submit') { if (user_access('bulk manage code')) { if ($form_state['values']['run']['delete_dependency'] == "1") { /*$example_q = db_query("SELECT * FROM {textbook_companion_example_dependency} WHERE dependency_id = %d", $form_state['values']['run']['dependency']);*/ $query = db_select('textbook_companion_example_dependency'); $query->fields('textbook_companion_example_dependency'); $query->condition('dependency_id', $form_state['values']['run']['dependency']); $example_q = $query->execute(); if ($example_data = $example_q->fetchObject()) { /*$example_id_q = db_query("SELECT * FROM {textbook_companion_example_dependency} WHERE dependency_id = %d", $form_state['values']['run']['dependency']);*/ $query = db_select('textbook_companion_example_dependency'); $query->fields('textbook_companion_example_dependency'); $query->condition('dependency_id', $form_state['values']['run']['dependency']); $example_id_q = $query->execute(); while ($example_id_data = $example_id_q->fetchObject()) { /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d", $example_id_data->example_id); $example_data = db_fetch_object($example_q);*/ $query = db_select('textbook_companion_example'); $query->fields('textbook_companion_example'); $query->condition('id', $example_id_data->example_id); $result = $query->execute(); $example_data = $result->fetchObject(); /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d", $example_data->chapter_id); $chapter_data = db_fetch_object($chapter_q);*/ $query = db_select('textbook_companion_chapter'); $query->fields('textbook_companion_chapter'); $query->condition('id', $example_data->chapter_id); $result = $query->execute(); $chapter_data = $result->fetchObject(); /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $chapter_data->preference_id); $preference_data = db_fetch_object($preference_q);*/ $query = db_select('textbook_companion_preference'); $query->fields('textbook_companion_preference'); $query->condition('id', $chapter_data->preference_id); $result = $query->execute(); $preference_data = $result->fetchObject(); $example_list[] = array( $preference_data->book, $chapter_data->number, $example_data->number ); } $example_list_header = array( 'Book', 'Chapter', 'Code' ); $example = theme('table', array( 'headers' => $example_list_header, 'rows' => $example_list )); drupal_set_message('Cannot delete dependency since it is linked with following examples. Delete these examples first before deleting the dependency file :' . $example, 'error'); } else { if (textbook_companion_delete_dependency($form_state['values']['run']['dependency'])) { drupal_set_message('Dependency deleted', 'status'); /* email */ $email_subject = t('Dependency deleted'); $email_body = t('Dependency deleted : .') . $form_state['values']['run']['dependency']; $email_to = $user->mail; $params['standard']['subject'] = $email_subject; $params['standard']['body'] = $email_body; if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE)) drupal_set_message('Error sending email message.', 'error'); } } } } } } function _textbook_companion_list_of_dependencies() { $dependencies = array( '0' => 'Please select...' ); /*$dependency_q = db_query("SELECT * FROM {textbook_companion_dependency_files} ORDER BY filename ASC");*/ $query = db_select('textbook_companion_dependency_files'); $query->fields('textbook_companion_dependency_files'); $query->orderBy('filename', 'ASC'); $dependency_q = $query->execute(); while ($dependency_data = $dependency_q->fetchObject()) { $dependencies[$dependency_data->id] = $dependency_data->filename . ' (' . $dependency_data->filepath . ')'; } return $dependencies; } function textbook_companion_delete_dependency($dependency_id) { global $user; $root_path = textbook_companion_path(); $status = TRUE; /*$dependency_files_q = db_query("SELECT * FROM {textbook_companion_dependency_files} WHERE id = %d", $dependency_id); $dependency_files_data = db_fetch_object($dependency_files_q);*/ $query = db_select('textbook_companion_dependency_files'); $query->fields('textbook_companion_dependency_files'); $query->condition('id', $dependency_id); $result = $query->execute(); $dependency_files_data = $result->fetchObject(); if (!$dependency_files_data) { drupal_set_message(t('Invalid dependency.'), 'error'); return FALSE; } if (!file_exists($root_path . $dependency_files_data->filepath)) { drupal_set_message(t('Error deleting !file. File does not exists.', array( '!file' => $dependency_files_data->filepath )), 'error'); return FALSE; } /* removing dependency file */ if (!unlink($root_path . $dependency_files_data->filepath)) { $status = FALSE; drupal_set_message(t('Error deleting !file', array( '!file' => $dependency_files_data->filepath )), 'error'); /* sending email to admins */ $email_to = variable_get('textbook_companion_emails', ''); $params['standard']['subject'] = "[ERROR] Error deleting dependency file"; $params['standard']['body'] = "Error deleting dependency files by " . $user->uid . " at " . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . " : dependency id : " . $dependency_id . " file id : " . $dependency_files_data->id . " file path : " . $dependency_files_data->filepath; if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $param, variable_get('textbook_companion_from_email', NULL), TRUE)) drupal_set_message('Error sending email message.', 'error'); } else { /* deleting dependency files database entries */ /*db_query("DELETE FROM {textbook_companion_dependency_files} WHERE id = %d", $dependency_id);*/ $query = db_delete('textbook_companion_dependency_files'); $query->condition('id', $dependency_id); $num_deleted = $query->execute(); } return $status; }