fieldset_helper.admin.inc in Fieldset helper 6
Same filename and directory in other branches
Administration page for the 'Fieldset helper' module.
File
fieldset_helper.admin.incView source
<?php
/**
* @file
* Administration page for the 'Fieldset helper' module.
*/
/**
* Administration page for the 'Fieldset helper' module.
*/
function fieldset_helper_admin_settings() {
if (!FORM_HELPER_FIELDSET_PHPTEMPLATE_LOADED) {
drupal_set_message(t("This module attempted to override the 'phptemplate_fieldset' and 'theme_system_modules' the functions but they already been defined.") . t('Please review the <a href="@read_me">README.txt</a> for more information on how to resolve this issue.', array(
'@readme' => drupal_get_path('module', 'fieldset_helper') . '/README.txt',
)), 'error');
}
// Auto excluded
$form['auto_exclude'] = array(
'#type' => 'fieldset',
'#title' => t('Automatically excluded forms'),
'#description' => t("The 'Fieldset helper' module automatically collects a list of any form, by id, that does not have any collapsible fieldsets.") . ' ' . t("These forms are then ignored by this module's hook_form_alter() code, which insures that this module's code is only executed on forms with collapsible fieldsets.") . ' ' . t("If a currently excluded form now has a collapsible fieldset you should clear the excluded forms list below."),
);
$form['auto_exclude']['clear_auto_exclude'] = array(
'#type' => 'submit',
'#value' => t('Clear automatically excluded forms'),
'#submit' => array(
'fieldset_helper_clear_auto_excluded_submit',
),
);
$auto_exclude = variable_get('fieldset_helper_auto_exclude', array());
if ($auto_exclude) {
$value = '<div><ul><li>' . implode('</li><li>', array_keys($auto_exclude)) . '</li></ul></div>';
}
else {
$value = '<div>' . t('There are no excluded forms.') . '</div>';
}
$form['auto_exclude']['forms'] = array(
'#type' => 'fieldset',
'#title' => t('Automatically excluded forms by id'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#value' => $value,
);
// Clear fieldset id lookup
$form['fieldset_id_lookup_ids'] = array(
'#type' => 'fieldset',
'#title' => t('Clear fieldset lookup ids'),
'#description' => t("The 'Fieldset helper' module creates a lookup table for all the collapsible fieldset ids discovered on your website.") . ' ' . t("Clearing this list will affect the saved collapsible fieldset states for any user who is currently logged in.") . ' ' . t("This list should only need to be cleared if a larger number of forms and/or fieldsets on your website have been modified."),
);
$form['fieldset_id_lookup_ids']['clear_fieldset_id_lookup'] = array(
'#type' => 'submit',
'#value' => t('Clear fieldset lookup ids'),
'#submit' => array(
'fieldset_helper_clear_fieldset_id_lookup_submit',
),
);
// Cookie duration
$form['fieldset_helper_cookie_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Cookie duration'),
'#description' => t("The 'Fieldset helper' module saves the current fieldset state in a client-side browser cookie.") . ' ' . t("By default, this is a session cookie which is cleared when the user closes the browser.") . ' ' . t("Changing the 'Cookie duration' to a non-zero number makes the cookie persist even after the browser is closed and restarted."),
);
$form['fieldset_helper_cookie_settings']['fieldset_helper_cookie_duration'] = array(
'#type' => 'textfield',
'#title' => t('Cookie duration'),
'#default_value' => variable_get('fieldset_helper_cookie_duration', 0),
'#size' => 5,
'#maxlength' => 5,
'#description' => t("For how many days should the cookie persist after the client browser is closed?"),
'#field_suffix' => t('days'),
);
return system_settings_form($form);
}
/**
* Implementation of FORM_ID_validate().
*/
function fieldset_helper_admin_settings_validate($form, &$form_state) {
// Check that cookie duration is a valid number.
if (preg_match('/^\\d+$/', $form_state['values']['fieldset_helper_cookie_duration']) === 0) {
form_set_error('fieldset_helper_cookie_duration', t('Cookie duration must be a valid number.'));
}
}
/**
* Clear the list of form id excluded by the fieldset_helper_form_alter() function.
*/
function fieldset_helper_clear_auto_excluded_submit() {
variable_set('fieldset_helper_auto_exclude', array());
// Set message
drupal_set_message(t('Excluded forms cleared.'));
}
/**
* Clear the fieldset helper state manager table
*/
function fieldset_helper_clear_fieldset_id_lookup_submit() {
fieldset_helper_state_manager_clear_lookup_ids();
// Set message
drupal_set_message(t('Fieldset lookup ids cleared.'));
}
/**
* Test page for the 'Fieldset helper' module.
*/
function fieldset_helper_test() {
$output = '';
// Test FAPI fieldsets
$output .= '<h3>' . t('Test collapsible fieldsets associated with a FAPI form') . '</h3>';
$output .= drupal_get_form('fieldset_helper_test_form');
// Test unassociated fieldsets
$output .= '<h3>' . t('Test a collapsible fieldset that is not associated with a form or node') . '</h3>';
$element = array(
'#type' => 'fieldset',
'#title' => t('The un-associated fieldset'),
'#value' => '<div>' . t('Testing the un-associated fieldset') . '</div>',
'#collapsible' => TRUE,
);
$output .= theme('fieldset', $element);
// Test unassociated fieldsets
$output .= '<h3>' . t('Test a collapsible fieldset that is just plain html') . '</h3>';
$output .= '<fieldset class="collapsible"><legend>The plain html fieldset</legend><div>';
$output .= t('Testing a fieldset that is plain html');
$output .= '<fieldset class="collapsible"><legend>A nested plain html fieldset</legend><div>' . t('Testing a nested fieldset that is plain html') . '</div></fieldset>';
$output .= '</div></fieldset>';
return $output;
}
/**
* Test form for the 'Fieldset helper' module.
*/
function fieldset_helper_test_form() {
// Fieldset
$form['toggle'] = array(
'#type' => 'markup',
'#value' => theme('fieldset_helper_toggle_all') . ' [' . t("Collapse's only the below forms fieldsets and not the un-associated fieldset.") . ']',
);
$form['default_fieldset'] = array(
'#type' => 'fieldset',
'#title' => t('Default fieldset'),
);
$form['default_fieldset']['textfield'] = array(
'#type' => 'textfield',
'#title' => t('Text field'),
);
// Collapsible
$form['collapsible'] = array(
'#type' => 'fieldset',
'#title' => t('Collapsible fieldset'),
'#collapsible' => TRUE,
);
$form['collapsible']['textfield'] = array(
'#type' => 'textfield',
'#title' => t('Text field'),
);
// Collapsed
$form['collapsed'] = array(
'#type' => 'fieldset',
'#title' => t('Collapsed fieldset'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['collapsed']['textfield'] = array(
'#type' => 'textfield',
'#title' => t('Text field'),
);
// Nested collapsible
$form['nested'] = array(
'#type' => 'fieldset',
'#title' => t('Nested fieldsets'),
'#collapsible' => TRUE,
);
$form['nested']['textfield'] = array(
'#type' => 'textfield',
'#title' => t('Text field'),
);
// Nested collapsed
$form['nested']['collapsed'] = array(
'#type' => 'fieldset',
'#title' => t('Nested collapsed fieldset'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['nested']['collapsed']['textfield'] = array(
'#type' => 'textfield',
'#title' => t('Text field'),
);
return $form;
}
Functions
Name | Description |
---|---|
fieldset_helper_admin_settings | Administration page for the 'Fieldset helper' module. |
fieldset_helper_admin_settings_validate | Implementation of FORM_ID_validate(). |
fieldset_helper_clear_auto_excluded_submit | Clear the list of form id excluded by the fieldset_helper_form_alter() function. |
fieldset_helper_clear_fieldset_id_lookup_submit | Clear the fieldset helper state manager table |
fieldset_helper_test | Test page for the 'Fieldset helper' module. |
fieldset_helper_test_form | Test form for the 'Fieldset helper' module. |