function datereminder_alter_node_type_form in Date Reminder 6
Same name and namespace in other branches
- 6.2 includes/node_form.inc \datereminder_alter_node_type_form()
- 7 includes/node_form.inc \datereminder_alter_node_type_form()
Implements hook_node_type().
Parameters
array $form: The current form
array $form_state: ...and state
string $nodetype: Type of node
1 call to datereminder_alter_node_type_form()
- datereminder_form_alter in ./
datereminder.module - Implements hook_form_alter().
File
- includes/
node_form.inc, line 89 - Functions that support node type edit forms.
Code
function datereminder_alter_node_type_form(&$form, &$form_state, $nodetype) {
module_load_include('inc', 'datereminder', 'includes/defines');
module_load_include('inc', 'datereminder', 'includes/date');
$thisype = content_types($nodetype);
$datetypes = _datereminder_supported_date_field_types();
$fields = $thisype['fields'];
if (!empty($fields) & is_array($fields)) {
foreach ($thisype['fields'] as $afield) {
if (array_key_exists($afield['type'], $datetypes)) {
$datefields[$afield['field_name']] = $afield['widget']['label'];
$lastkey = $afield['field_name'];
}
}
}
if (count($datefields) == 0) {
$form['datereminder_enabled'] = array(
'#type' => 'hidden',
'#value' => DATEREMINDER_TYPE_DISABLED,
);
}
else {
// What is current setting?
$enabled = _datereminder_type_enabled($nodetype);
$currentfield = variable_get("datereminder_datefield_{$nodetype}", $lastkey);
/*
* One would certainly not expect the following to be necessary.
* It means that the variable is set to something that isn't an
* existing date key. One user reported that this happened. I suspect
* some kind of operator error, but this should clean it up
* if that happens.
*/
if (!in_array($currentfield, $datefields)) {
$currentfield = $lastkey;
}
$form['reminder'] = array(
'#type' => 'fieldset',
'#title' => t('Reminder settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => 20,
);
$radios[DATEREMINDER_TYPE_DISABLED] = t('Disabled');
$radios[DATEREMINDER_TYPE_RETAIN] = t('Disabled, but retain any existing reminders');
$radios[DATEREMINDER_TYPE_ALLOWED] = t('Allowed, off unless explicitly enabled');
$radios[DATEREMINDER_TYPE_ON] = t('Allowed, automatically enabled for new nodes');
$form['reminder']['datereminder_enabled'] = array(
'#type' => 'radios',
'#options' => $radios,
'#default_value' => $enabled,
);
$form['reminder']['datereminder_all_on'] = array(
'#type' => 'checkbox',
'#title' => t('Enable reminders for existing nodes'),
'#description' => t('Check if you want to enable reminders for existing nodes.'),
'#default_value' => FALSE,
);
if (count($datefields) > 1) {
$form['reminder']['datereminder_datefield'] = array(
'#type' => 'select',
'#options' => $datefields,
'#default_value' => $currentfield,
'#description' => t('Select which of several date fields to use for reminders'),
);
$lbl = t('Enable allowing users to request reminders for an event');
}
else {
$form['reminder']['datereminder_datefield'] = array(
'#type' => 'hidden',
'#value' => $currentfield,
);
$lbl = t('Enable allowing users to request reminders for an event, based on field %date', array(
'%date' => $datefields[$lastkey],
));
}
$form['reminder']['datereminder_enabled']['#description'] = $lbl;
$form['#validate'][] = '_datereminder_form_validate_node_type';
$form['#submit'][] = '_datereminder_form_submit_node_type';
}
}