function notifications_settings_form in Notifications 6.3
Same name and namespace in other branches
- 5 notifications.admin.inc \notifications_settings_form()
- 6.4 notifications.admin.inc \notifications_settings_form()
- 6 notifications.admin.inc \notifications_settings_form()
- 6.2 notifications.admin.inc \notifications_settings_form()
- 7 notifications.admin.inc \notifications_settings_form()
Admin settings
1 string reference to 'notifications_settings_form'
- notifications_menu in ./
notifications.module - Implementation of hook_menu().
File
- ./
notifications.admin.inc, line 20
Code
function notifications_settings_form() {
$form['general'] = array(
'#type' => 'fieldset',
'#title' => t('General settings'),
'#weight' => -10,
);
$form['general']['notifications_sendself'] = array(
'#type' => 'checkbox',
'#title' => t('Notify poster of own posts'),
'#default_value' => variable_get('notifications_sendself', 0),
'#description' => t("Notifies a node poster about their own posts. Useful principally during testing. Default is OFF."),
);
$form['general']['notifications_send_immediate'] = array(
'#title' => t('Immediate sending'),
'#type' => 'checkbox',
'#default_value' => variable_get('notifications_send_immediate', 0),
'#description' => t('Notifications are usually queued to be sent on cron process later. Checking this option will cause immediate notifications to be sent right away, instead of being queued. This will produce more timely notifications for sites with a small number of users. Not recommended for sites with a large number of users. This may not work for AJAX forms and notifications will be queued anyway.'),
);
$form['general']['notifications_sender'] = array(
'#title' => t('Notifications Sender'),
'#type' => 'radios',
'#options' => array(
t('No one (All notifications will appear as coming from the web site)'),
t('User name, site data (Only the user name will be used)'),
t('Full user data (User name and available user information)'),
),
'#default_value' => variable_get('notifications_sender', 0),
'#description' => t('Use the site information as the sender for notification messages or use account data from the user causing the event. WARNING: Selecting the last option (Full user data) may disclose private information to subscribers like the user e-mail address.'),
);
// Logging settings
$period = array(
0 => t('Disabled'),
) + drupal_map_assoc(array(
3600,
10800,
21600,
32400,
43200,
86400,
172800,
259200,
604800,
1209600,
2419200,
4838400,
9676800,
), 'format_interval');
$form['general']['notifications_log'] = array(
'#title' => t('Logging'),
'#type' => 'select',
'#options' => $period,
'#default_value' => variable_get('notifications_log', 0),
'#description' => t('If enabled all notifications will be logged and kept for the specified time after they\'re processed.'),
);
if (variable_get('language_count', 1) > 1) {
$form['general']['notifications_language_split_mode'] = array(
'#title' => t('Language split mode'),
'#type' => 'radios',
'#default_value' => variable_get('notifications_language_split_mode', 0),
'#options' => array(
t('Disabled'),
t('Enabled'),
),
'#disabled' => !module_exists('i18ncron'),
'#description' => t("For multilingual sites we can process notifications with a different language for each cron. This will fix multiple caching issues with strings and languages. This option requires <i>Internationalization's Language cron switcher</i> module enabled."),
);
}
// Default options
$form['defaults'] = array(
'#type' => 'fieldset',
'#title' => t('Default settings'),
);
$form['defaults']['notifications_default_send_interval'] = array(
'#type' => 'select',
'#title' => t('Default send interval'),
'#options' => _notifications_send_intervals(),
'#default_value' => variable_get('notifications_default_send_interval', 0),
);
// Processing limits
$limit = variable_get('notifications_process_limit', array(
'row' => 0,
'message' => 0,
'percent' => 0,
'time' => 0,
));
$form['notifications_process_limit'] = array(
'#type' => 'fieldset',
'#title' => t('Limits for queue processing'),
'#tree' => TRUE,
'#description' => t('These are the limits for each cron run on queue processing. The process will stop when it first meets any of them. Set to 0 for no limit.'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['notifications_process_limit']['row'] = array(
'#title' => t('Number of rows'),
'#type' => 'textfield',
'#size' => 10,
'#default_value' => $limit['row'],
);
$form['notifications_process_limit']['message'] = array(
'#title' => t('Number of messages sent'),
'#type' => 'textfield',
'#size' => 10,
'#default_value' => $limit['message'],
);
$form['notifications_process_limit']['time'] = array(
'#title' => t('Time (seconds)'),
'#type' => 'textfield',
'#size' => 10,
'#default_value' => $limit['time'],
);
$form['notifications_process_limit']['percent'] = array(
'#title' => t('Time (% of cron time)'),
'#type' => 'textfield',
'#size' => 10,
'#default_value' => $limit['percent'],
'#description' => t('Maximum percentage of cron time the process may use.'),
);
return system_settings_form($form);
}