function view_mode_page_form_alter in View Mode Page 7
Same name and namespace in other branches
- 8 view_mode_page.module \view_mode_page_form_alter()
- 8.2 view_mode_page.module \view_mode_page_form_alter()
- 7.2 view_mode_page.module \view_mode_page_form_alter()
Implements hook_page_alter().
Add the tab to additional settings.
File
- ./
view_mode_page.module, line 26 - View Mode Page module allows users to add a page for a specific view mode.
Code
function view_mode_page_form_alter(&$form, $form_state, $form_id) {
$is_node_page = isset($form['#entity_type']) && $form['#entity_type'] == 'node';
$is_display_overview = isset($form['#id']) && $form['#id'] == 'field-ui-display-overview-form';
if (!$is_node_page || $is_node_page && !$is_display_overview) {
return;
}
// Add additional settings vertical tab, if it does not currently exist.
// This code was borrowed from display suite
if (!isset($form['additional_settings'])) {
$form['additional_settings'] = array(
'#type' => 'vertical_tabs',
'#theme_wrappers' => array(
'vertical_tabs',
),
'#prefix' => '<div>',
'#suffix' => '</div>',
'#tree' => TRUE,
);
$form['#attached']['js'][] = 'misc/form.js';
$form['#attached']['js'][] = 'misc/collapse.js';
}
// Add tab to the additional_settings.
$form['additional_settings']['view_mode_page_settings'] = array(
'#type' => 'fieldset',
'#title' => t('View mode pages'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => 10,
);
$form['additional_settings']['view_mode_page_settings']['view_mode_page_url_pattern'] = array(
'#type' => 'textfield',
'#title' => t('URL Pattern'),
'#description' => t('Provide a URL pattern for the page that will display view mode'),
);
$form['additional_settings']['view_mode_page_settings']['view_mode_page_show_title'] = array(
'#type' => 'checkbox',
'#title' => t('Show title on the view mode page'),
'#description' => t('This option will show the title on the view mode page. By default, this will be the node title or the title provided below'),
);
$form['additional_settings']['view_mode_page_settings']['view_mode_page_title'] = array(
'#type' => 'textfield',
'#title' => t('Title'),
'#maxlength' => 200,
'#description' => 'Specify an alternate title for the view mode page. You may include tokens as they relate to the node (e.g., <code>[node:title]</code>). <strong>The show title option must be on for this to show up!</strong>',
);
// Get the value from the database and set it here.
$definitions = view_mode_page_get_patterns($form['#bundle'], $form['#view_mode']);
if (isset($definitions[0])) {
$form['additional_settings']['view_mode_page_settings']['view_mode_page_url_pattern']['#default_value'] = $definitions[0]->url_pattern;
$form['additional_settings']['view_mode_page_settings']['view_mode_page_show_title']['#default_value'] = $definitions[0]->show_title;
$form['additional_settings']['view_mode_page_settings']['view_mode_page_title']['#default_value'] = $definitions[0]->title;
}
$form['#submit'][] = 'view_mode_page_form_submit';
}