function view_mode_selector_field_instance_settings_form in View Mode Selector 7
Implements hook_field_instance_settings_form().
File
- ./
view_mode_selector.module, line 51 - Main file of View Mode Selector module.
Code
function view_mode_selector_field_instance_settings_form($field, $instance) {
$form = array();
$settings = $instance['settings'];
$form['number_placeholders'] = array(
'#type' => 'checkbox',
'#title' => t('Number HTML preview placeholders'),
'#description' => t('Adds the count/delta to the preview placeholders.'),
'#access' => $instance['widget']['type'] == 'view_mode_selector_radios',
'#default_value' => isset($settings['number_placeholders']) ? $settings['number_placeholders'] : FALSE,
);
// Get all view modes of the entity type.
$view_modes = view_mode_selector_view_modes($instance['entity_type']);
foreach ($view_modes as $view_mode_name => $view_mode) {
if (!isset($form['view_modes'])) {
$form['view_modes'] = array(
'#type' => 'fieldset',
'#title' => t('Available view modes'),
'#attributes' => array(
'class' => array(
'view-mode-selector-view-modes',
),
),
'#attached' => array(
'css' => array(
drupal_get_path('module', 'view_mode_selector') . '/css/view-mode-selector.css',
),
),
);
}
$form['view_modes'][$view_mode_name]['enable'] = array(
'#type' => 'checkbox',
'#title' => $view_mode['label'] . ' (' . $view_mode_name . ')',
'#default_value' => isset($settings['view_modes'][$view_mode_name]['enable']) ? $settings['view_modes'][$view_mode_name]['enable'] : FALSE,
);
// Allow uploading an icon and hide the title for view modes when radio widget is used.
if ($instance['widget']['type'] == 'view_mode_selector_radios') {
$form['view_modes'][$view_mode_name]['prefix']['#markup'] = '<div class="settings">';
$form['view_modes'][$view_mode_name]['hide_title'] = array(
'#type' => 'checkbox',
'#title' => t('Hide title'),
'#default_value' => isset($settings['view_modes'][$view_mode_name]['hide_title']) ? $settings['view_modes'][$view_mode_name]['hide_title'] : FALSE,
'#states' => array(
'visible' => array(
'input[name="instance[settings][view_modes][' . $view_mode_name . '][enable]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['view_modes'][$view_mode_name]['icon'] = array(
'#type' => 'managed_file',
'#title' => t('Icon'),
'#description' => t('An icon which can be used for a view mode preview.'),
'#upload_location' => 'public://view-mode-selector/' . $instance['entity_type'],
'#default_value' => isset($settings['view_modes'][$view_mode_name]['icon']) ? $settings['view_modes'][$view_mode_name]['icon'] : 0,
'#states' => array(
'visible' => array(
'input[name="instance[settings][view_modes][' . $view_mode_name . '][enable]"]' => array(
'checked' => TRUE,
),
),
),
);
$form['view_modes'][$view_mode_name]['suffix']['#markup'] = '</div>';
}
}
// Inform the user about the layout preview feature.
if ($instance['widget']['type'] == 'view_mode_selector_radios' && module_exists('ds')) {
$form['view_modes']['#description'] = t('It is possible to upload an icon in this widget but when you do not upload an icon a real preview of the view mode is displayed instead.');
}
return $form;
}