function log_form in Log entity 7
Log Form.
Parameters
array $form: The form array.
array $form_state: The form state array.
Log $log: The log entity.
Return value
array Returns the log form array.
2 string references to 'log_form'
- log_add in ./
log.pages.inc - Add new log page callback.
- log_menu in ./
log.module - Implements hook_menu().
File
- ./
log.pages.inc, line 102 - Log pages.
Code
function log_form(array $form, array &$form_state, Log $log) {
// Store the log entity in the form for use later.
$form['log'] = array(
'#type' => 'value',
'#value' => $log,
);
// Load the log type.
$log_type = log_type_load($log->type);
// Only display the name field if it's editable.
if (!empty($log_type->name_edit)) {
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
'#description' => t('Leave this blank to automatically generate a name. As you type, frequently used log names will be suggested.'),
'#default_value' => $log->name,
'#autocomplete_path' => 'log/autocomplete/' . $log->type,
);
}
// Timestamp.
$timestamp_default = !empty($log->timestamp) ? date('Y-m-d H:i:s', $log->timestamp) : '';
$form['timestamp'] = array(
'#type' => 'date_select',
'#title' => t('Date'),
'#date_format' => 'M j Y H:i:s',
'#date_type' => DATE_FORMAT_UNIX,
'#date_year_range' => '-10:+3',
'#default_value' => $timestamp_default,
'#required' => TRUE,
);
// Additional settings (vertical tabs at the bottom of the form).
$form['additional_settings'] = array(
'#type' => 'vertical_tabs',
'#weight' => 99,
);
// If the log is new, and the log type marks new logs as "done" by default,
// mark the log as done and add some Javascript to auto-check/uncheck based
// on the timestamp.
if (empty($log->id) && !empty($log_type->done)) {
$log->done = TRUE;
drupal_add_js(drupal_get_path('module', 'log') . '/log.done.js');
}
$form['log_status'] = array(
'#type' => 'fieldset',
'#title' => t('Log status'),
'#description' => t('Mark this log as done.'),
'#collapsible' => TRUE,
'#group' => 'additional_settings',
);
$form['log_status']['done'] = array(
'#type' => 'checkbox',
'#title' => t('Done'),
'#default_value' => $log->done,
);
// Log user id.
$form['uid'] = array(
'#type' => 'value',
'#value' => $log->uid,
);
field_attach_form('log', $log, $form, $form_state);
$submit = array();
if (!empty($form['#submit'])) {
$submit += $form['#submit'];
}
$form['actions'] = array(
'#weight' => 100,
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save log'),
'#submit' => $submit + array(
'log_form_submit',
),
);
// Show Delete button if allowed.
$log_id = entity_id('log', $log);
if (!empty($log_id) && log_access('delete', $log)) {
// Get the destination query parameter. If it is the current path, change to
// <front> (because the current path won't exist once the log is deleted).
$destination = drupal_get_destination();
if ($destination['destination'] == current_path()) {
$destination['destination'] = '<front>';
}
$form['actions']['delete'] = array(
'#type' => 'markup',
'#markup' => l(t('Delete'), 'log/' . $log_id . '/delete', array(
'query' => $destination,
)),
);
}
return $form;
}