(administrator role)'); } $form = array( 'intro' => array( '#markup' => t('Set the default settings for all new content types below. These settings can be overridden on the content type page.'), ), 'content_type_extras' => array( '#type' => 'vertical_tabs', 'submission' => array( '#type' => 'fieldset', '#title' => t('Submission form settings'), '#attached' => array( 'js' => array( 'vertical-tabs' => drupal_get_path('module', 'content_type_extras') . '/js/content_type_extras.vertical_tabs.js', ), ), '#weight' => 0, 'title_label' => array( '#type' => 'textfield', '#title' => t('Title field label'), '#default_value' => $defaults['title_label'], '#required' => 1, ), 'node_preview' => array( '#type' => 'radios', '#title' => t('Preview before submitting'), '#options' => array( t('Disabled'), t('Optional'), t('Required'), ), '#default_value' => $defaults['node_preview'], ), 'content_type_extras_preview_button' => array( '#type' => 'textfield', '#title' => t('Preview button value'), '#description' => t('The name of the Preview button that will display on the content edit form if enabled'), '#default_value' => $defaults['content_type_extras_preview_button'], '#required' => 1, ), 'content_type_extras_save_and_new' => array( '#type' => 'radios', '#title' => t('Save and New button'), '#options' => array( t('Disabled'), t('Enabled'), ), '#default_value' => $defaults['content_type_extras_save_and_new'], ), 'content_type_extras_save_and_new_button' => array( '#type' => 'textfield', '#title' => t('Save and New button value'), '#description' => t('The name of the Save and New button that will display on the content edit form if enabled'), '#default_value' => $defaults['content_type_extras_save_and_new_button'], '#required' => 1, ), 'content_type_extras_save_and_edit' => array( '#type' => 'radios', '#title' => t('Save and Edit button'), '#options' => array( t('Disabled'), t('Enabled'), ), '#default_value' => $defaults['content_type_extras_save_and_edit'], ), 'content_type_extras_save_and_edit_button' => array( '#type' => 'textfield', '#title' => t('Save and Edit button value'), '#description' => t('The name of the Save and Edit button that will display on the content edit form if enabled'), '#default_value' => $defaults['content_type_extras_save_and_edit_button'], '#required' => 1, ), 'content_type_extras_cancel' => array( '#type' => 'radios', '#title' => t('Cancel button'), '#options' => array( t('Disabled'), t('Enabled'), ), '#default_value' => $defaults['content_type_extras_cancel'], ) ), 'workflow' => array( '#type' => 'fieldset', '#title' => t('Publishing options'), '#weight' => 10, 'node_options' => array( '#type' => 'checkboxes', '#title' => t('Default options'), '#options' => array( 'status' => t('Published'), 'promote' => t('Promoted to front page'), 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision'), ), '#default_value' => $defaults['node_options'], ), ), 'display' => array( '#type' => 'fieldset', '#title' => t('Display settings'), '#weight' => 20, 'node_submitted' => array( '#type' => 'checkbox', '#title' => t('Display author and date information.'), '#description' => t('Author username and publish date will be displayed.'), '#default_value' => $defaults['node_submitted'], ), ), 'user_permissions' => array( '#type' => 'fieldset', '#title' => t('User permissions'), '#tree' => TRUE, '#weight' => 30, 'intro' => array( '#markup' => '
' . t('These permissions set the defaults for new content types. They do not change global permissions for all content types.'),
),
'create_roles' => array(
'#type' => 'checkboxes',
'#title' => t('Roles that can CREATE content'),
'#options' => $roles,
'#default_value' => $defaults['user_permissions']['create_roles'],
),
'edit_roles' => array(
'#type' => 'checkboxes',
'#title' => t('Roles that can EDIT any content'),
'#options' => $roles,
'#default_value' => $defaults['user_permissions']['edit_roles'],
),
'delete_roles' => array(
'#type' => 'checkboxes',
'#title' => t('Roles that can DELETE any content'),
'#options' => $roles,
'#default_value' => $defaults['user_permissions']['delete_roles'],
),
),
'extras' => array(
'#type' => 'fieldset',
'#title' => t('Extra settings'),
'#weight' => 40,
'content_type_forms' => array(
'#type' => 'fieldset',
'#title' => t('Content type forms'),
'#weight' => 0,
'content_type_extras_descriptions_required' => array(
'#type' => 'checkbox',
'#title' => t('Make description field on all content types required'),
'#description' => t('Drupal by default does not require that the description field be filled in. Enabling this option will make the description field required.'),
'#default_value' => $defaults['content_type_extras_descriptions_required'],
),
'content_type_extras_remove_body' => array(
'#type' => 'checkbox',
'#description' => t("Drupal by default automatically creates a body field for each content type. Enabling this option will remove the body field from a newly created content type. This option can be overridden on a per content type basis."),
'#title' => t('Remove body field from content types'),
'#default_value' => $defaults['content_type_extras_remove_body'],
),
),
'node_titles' => array(
'#type' => 'fieldset',
'#title' => t('Node titles'),
'#weight' => 1,
'content_type_extras_title_hide' => array(
'#type' => 'checkbox',
'#title' => t('Hide title on node view'),
'#description' => t('If checked, node titles will be hidden by default. Users with the appropriate permission can override this on a per-node basis.'),
'#default_value' => $defaults['content_type_extras_title_hide'],
),
'content_type_extras_title_hide_css' => array(
'#type' => 'checkbox',
'#title' => t('Hide titles with CSS'),
'#description' => t('If checked, any node titles that are selected to be hidden will be hidden with CSS so that they render in HTML for devices like screenreaders.'),
'#default_value' => $defaults['content_type_extras_title_hide_css'],
),
'content_type_extras_title_hide_front' => array(
'#type' => 'checkbox',
'#title' => t('Hide node title on front page'),
'#description' => t('If checked, the node title on the front page will be hidden, regardless of what content type it is associated with'),
'#default_value' => $defaults['content_type_extras_title_hide_front'],
),
),
'form_buttons' => array(
'#type' => 'fieldset',
'#title' => t('Form buttons'),
'#weight' => 2,
'content_type_extras_top_buttons' => array(
'#type' => 'checkboxes',
'#title' => t('Show form buttons at top of:'),
'#description' => t('Select the areas to duplicate form submission buttons on the top of the page.'),
'#options' => array(
'manage_fields' => t('Manage fields form'),
'node_edit' => t('Node edit form'),
),
'#default_value' => $defaults['content_type_extras_top_buttons'],
),
),
),
'configuration' => array(
'#type' => 'fieldset',
'#title' => t('Configuration settings'),
'#weight' => 50,
'content_type_extras_excluded_node_forms' => array(
'#type' => 'textarea',
'#title' => t('Excluded node forms'),
'#description' => t('Enter the node form ids that you would like to exclude from being processed by Content Type: Extras, one per line.
Note: \'subscriptions_ui_node_form\' and \'field_collection_item_form\' will always be added to prevent errors.'),
'#default_value' => implode("\n", $defaults['content_type_extras_excluded_node_forms']),
),
),
),
);
if (module_exists('comment')) {
$form['content_type_extras']['comment'] = array(
'#type' => 'fieldset',
'#title' => t('Comment settings'),
'#tree' => TRUE,
'#weight' => 25,
'comment' => array(
'#type' => 'select',
'#title' => t('Default comment setting for new content types'),
'#default_value' => $defaults['comment']['comment'],
'#options' => array(
COMMENT_NODE_OPEN => t('Open'),
COMMENT_NODE_CLOSED => t('Closed'),
COMMENT_NODE_HIDDEN => t('Hidden'),
),
),
'default_mode' => array(
'#type' => 'checkbox',
'#title' => t('Threading'),
'#default_value' => $defaults['comment']['default_mode'],
'#description' => t('Show comment replies in a threaded list.'),
),
'default_per_page' => array(
'#type' => 'select',
'#title' => t('Comments per page'),
'#default_value' => $defaults['comment']['default_per_page'],
'#options' => _comment_per_page(),
),
'anonymous' => array(
'#type' => 'select',
'#title' => t('Anonymous commenting'),
'#default_value' => $defaults['comment']['anonymous'],
'#options' => array(
COMMENT_ANONYMOUS_MAYNOT_CONTACT => t('Anonymous posters may not enter their contact information'),
COMMENT_ANONYMOUS_MAY_CONTACT => t('Anonymous posters may leave their contact information'),
COMMENT_ANONYMOUS_MUST_CONTACT => t('Anonymous posters must leave their contact information'),
),
'#access' => user_access('post comments', drupal_anonymous_user()),
),
'subject_field' => array(
'#type' => 'checkbox',
'#title' => t('Allow comment title'),
'#default_value' => $defaults['comment']['subject_field'],
),
'form_location' => array(
'#type' => 'checkbox',
'#title' => t('Show reply form on the same page as comments'),
'#default_value' => $defaults['comment']['form_location'],
),
'preview' => array(
'#type' => 'radios',
'#title' => t('Preview comment'),
'#default_value' => $defaults['comment']['preview'],
'#options' => array(
DRUPAL_DISABLED => t('Disabled'),
DRUPAL_OPTIONAL => t('Optional'),
DRUPAL_REQUIRED => t('Required'),
),
),
);
}
if (module_exists('xmlsitemap')) {
$form['content_type_extras']['xmlsitemap_settings'] = array(
'#type' => 'fieldset',
'#title' => t('XML Sitemap'),
'#tree' => TRUE, // Set to TRUE to match node_type_form for saving settings
'#weight' => 35,
'status' => array(
'#type' => 'select',
'#title' => t('Inclusion'),
'#options' => array(
1 => t('Included'),
0 => t('Excluded'),
),
'#default_value' => $defaults['xmlsitemap_settings']['status'],
),
'priority' => array(
'#type' => 'select',
'#title' => t('Default priority'),
'#options' => array(
'1.0' => t('1.0 (highest)'),
'0.9' => '0.9',
'0.8' => '0.8',
'0.7' => '0.7',
'0.6' => '0.6',
'0.5' => t('0.5 (normal)'),
'0.4' => '0.4',
'0.3' => '0.3',
'0.2' => '0.2',
'0.1' => '0.1',
'0.0' => t('0.0 (lowest)'),
),
'#default_value' => $defaults['xmlsitemap_settings']['priority'],
'#states' => array(
'invisible' => array(
'select[name="xmlsitemap_settings[status]"]' => array('value' => '0'),
),
),
),
);
}
if (module_exists('scheduler')) {
$form['content_type_extras']['scheduler_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Scheduler'),
'#tree' => TRUE, // Set to TRUE to match node_type_form for saving settings
'#weight' => 35,
'publish_enable' => array(
'#type' => 'checkbox',
'#title' => t('Enable Scheduled publishing for new content types'),
'#default_value' => $defaults['scheduler_settings']['publish_enable'],
),
'publish_touch' => array(
'#type' => 'checkbox',
'#title' => t('Change content creation time to match the scheduled publish time for new content types'),
'#default_value' => $defaults['scheduler_settings']['publish_touch'],
),
'publish_require' => array(
'#type' => 'checkbox',
'#title' => t('Require scheduled publishing for new content types'),
'#default_value' => $defaults['scheduler_settings']['publish_require'],
),
'publish_revision' => array(
'#type' => 'checkbox',
'#title' => t('Create a new revision on publishing for new content types'),
'#default_value' => $defaults['scheduler_settings']['publish_revision'],
),
'unpublish_enable' => array(
'#type' => 'checkbox',
'#title' => t('Enable scheduled unpublishing for new content types'),
'#default_value' => $defaults['scheduler_settings']['unpublish_enable'],
),
'unpublish_require' => array(
'#type' => 'checkbox',
'#title' => t('Require scheduled unpublishing for new content types'),
'#default_value' => $defaults['scheduler_settings']['unpublish_require'],
),
'unpublish_revision' => array(
'#type' => 'checkbox',
'#title' => t('Create a new revision on unpublishing for new content types'),
'#default_value' => $defaults['scheduler_settings']['unpublish_revision'],
),
);
}
if (module_exists('fpa')) {
$form['content_type_extras']['extras']['content_type_forms']['content_type_extras_user_permissions_select'] = array(
'#type' => 'radios',
'#title' => t('Select which user interface to use to manage permissions on node type forms'),
'#options' => array(
'cte' => t('Content Type: Extras'),
'fpa' => t('Fast Permissions Administration (FPA)'),
),
'#default_value' => $defaults['content_type_extras_user_permissions_select'],
);
}
$form['actions'] = array(
'submit' => array(
'#type' => 'submit',
'#value' => t('Save configuration'),
),
);
return $form;
}
function content_type_extras_settings_submit(&$form, &$form_state) {
$values = $form_state['values'];
// Place the values of content_type_extras_excluded_node_forms into an array
$values['content_type_extras_excluded_node_forms'] = explode("\n", $values['content_type_extras_excluded_node_forms']);
unset($values['submit'], $values['form_build_id'], $values['form_token'], $values['form_id'], $values['op']);
variable_set('content_type_extras_default_settings', $values);
drupal_set_message(t('Default content type settings saved.'));
$form_state['redirect'] = 'admin/structure/types';
}