function xbbcode_settings_handlers_save_submit in Extensible BBCode 7
Same name and namespace in other branches
- 8 xbbcode.admin.inc \xbbcode_settings_handlers_save_submit()
Save the handler settings.
2 string references to 'xbbcode_settings_handlers_save_submit'
- xbbcode_filter_settings in ./
xbbcode.module - Settings callback for the filter settings of xbbcode.
- xbbcode_settings_handlers in ./
xbbcode.admin.inc - Modify the global handler settings.
File
- ./
xbbcode.admin.inc, line 412 - Administrative interface for modifying tags and settings.
Code
function xbbcode_settings_handlers_save_submit($form, $form_state) {
// Determine if the settings are edited globally or in a text format.
if (isset($form['#format'])) {
// If a format has just been created, the #format info is still empty.
if (!empty($form['#format']->format)) {
$format_id = $form['#format']->format;
}
else {
$format_id = $form_state['values']['format'];
}
$settings = $form_state['values']['filters']['xbbcode']['settings'];
}
else {
$format_id = XBBCODE_GLOBAL;
$settings = $form_state['values'];
}
if ($format_id == XBBCODE_GLOBAL || $settings['override']) {
// Change the global settings or a format with specific settings.
$enabled = $settings['tags']['_enabled'];
unset($settings['tags']['_enabled']);
foreach ($settings['tags'] as $name => $values) {
if (is_array($values)) {
$values['name'] = $name;
$values['enabled'] = $enabled[$name] ? 1 : 0;
xbbcode_handler_save((object) $values, $format_id);
}
}
drupal_set_message(t('The tag settings were updated.'));
xbbcode_rebuild_tags($format_id);
}
else {
// If the format doesn't override, remove any specific settings.
if (xbbcode_handlers_delete_format($format_id)) {
drupal_set_message(t('The format-specific tag settings were reset.'));
xbbcode_rebuild_tags($format_id);
}
}
}