function course_form_node_type_form_alter in Course 8.3
Same name and namespace in other branches
- 8.2 course.module \course_form_node_type_form_alter()
- 6 course.module \course_form_node_type_form_alter()
- 7.2 course.module \course_form_node_type_form_alter()
- 7 course.module \course_form_node_type_form_alter()
- 3.x course.module \course_form_node_type_form_alter()
Implements hook_form_FORM_ID_alter().
Add third party settings to the node type form.
File
- ./
course.module, line 248 - course.module Core functionality for Courses.
Code
function course_form_node_type_form_alter(&$form, FormStateInterface $form_state) {
$node = $form_state
->getFormObject()
->getEntity();
// Alter the node type's configuration form to add our setting.
$form['course'] = array(
'#type' => 'details',
'#title' => t('Course settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#access' => Drupal::currentUser()
->hasPermission('administer course'),
'#group' => 'additional_settings',
);
$form['course']['course_enabled'] = array(
'#title' => t('Use as course type'),
'#type' => 'checkbox',
'#default_value' => $node
->getThirdPartySetting('course', 'enabled'),
'#description' => t('This content type will have %course functionality.', array(
'%course' => 'Course',
)),
);
// Configurable date fields.
// @todo D8
if (FALSE && Drupal::moduleHandler()
->moduleExists('date')) {
$options = array();
$options[0] = t('<Not specified>');
$fields = field_info_fields();
foreach ($fields as $field) {
if ($field['module'] == 'date') {
foreach ($field['columns'] as $column => $value) {
if (!empty($field['bundles']['node']) && in_array($form['#node_type']->type, $field['bundles']['node']) && in_array($column, array(
'value',
'value2',
))) {
$position = $column == 'value' ? 'From' : 'To';
// Use the same label pattern as date_api_fields() for consistency
// with Views, and in case we support other date options than
// content date fields.
$info = field_info_instance('node', $field['field_name'], $form['#node_type']->type);
$label = t('Content: !label (!name) - @position date', array(
'!label' => $info['label'],
'!name' => $field['field_name'],
'@position' => $position,
));
#$key = "{$field['field_name']}[0]['{$column}']";
$key = serialize(array(
'field' => $field['field_name'],
'value' => $column,
));
$options[$key] = $label;
}
}
}
}
$date_settings_fs = array(
'#type' => 'fieldset',
'#title' => t('Date Settings Fieldset'),
'#title_display' => 'invisible',
'#collapsible' => FALSE,
'#collapsed' => FALSE,
'#states' => array(
'visible' => array(
':input[name="course_use"]' => array(
'checked' => TRUE,
),
),
),
);
$date_settings_fs['course_start_date'] = array(
'#title' => t('Field to use for enduring-course start date'),
'#description' => t('Select the field to use for enduring-course start date.'),
'#type' => 'select',
'#options' => $options,
'#default_value' => variable_get("course_start_date_{$form['#node_type']->type}", 0),
'#prefix' => '<h3>' . t('Enduring course dates') . '</h3>',
);
$date_settings_fs['course_expiration_date'] = array(
'#title' => t('Field to use for enduring-course expiration date'),
'#description' => t('Select the field to use for enduring-course expiration date.'),
'#type' => 'select',
'#options' => $options,
'#default_value' => variable_get("course_expiration_date_{$form['#node_type']->type}", 0),
);
// Live course dates.
$date_settings_fs['course_live_from_date'] = array(
'#title' => t('Field to use for live-course start date'),
'#description' => t('Select the field to use for live-course start date.'),
'#type' => 'select',
'#options' => $options,
'#default_value' => variable_get("course_live_from_date_{$form['#node_type']->type}", 0),
'#prefix' => '<h3>' . t('Live course dates') . '</h3>',
);
$date_settings_fs['course_live_to_date'] = array(
'#title' => t('Field to use for live-course end date'),
'#description' => t('Select the field to use for live-course end date.'),
'#type' => 'select',
'#options' => $options,
'#default_value' => variable_get("course_live_to_date_{$form['#node_type']->type}", 0),
);
$form['course']['date_settings_fs'] = $date_settings_fs;
}
$form['#entity_builders'][] = 'course_form_node_type_edit_form_builder';
}