'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;
}