public static function UltimateCronPluginMultiple::jobSettingsForm in Ultimate Cron 7.2
Job settings form.
Overrides UltimateCronPlugin::jobSettingsForm
File
- ./
ultimate_cron.plugin.inc, line 735 - Plugin framework for Ultimate Cron.
Class
- UltimateCronPluginMultiple
- Class for handling multiple plugins.
Code
public static function jobSettingsForm(&$form, &$form_state, $plugin_type, $job) {
// Check valid plugins.
$plugins = _ultimate_cron_plugin_load_all($plugin_type);
foreach ($plugins as $name => $plugin) {
if (!$plugin
->isValid($job)) {
unset($plugins[$name]);
}
}
// No plugins = no settings = no vertical tabs for you mister!
if (empty($plugins)) {
return;
}
$weight = 10;
$form_state['default_values']['settings'][$plugin_type] = array();
$form['settings'][$plugin_type]['#tree'] = TRUE;
foreach ($plugins as $name => $plugin) {
$form_state['default_values']['settings'][$plugin_type][$name] = array();
if (empty($form_state['values']['settings'][$plugin_type][$name])) {
$form_state['values']['settings'][$plugin_type][$name] = array();
}
$form['settings'][$plugin_type][$name] = array(
'#title' => $plugin->title,
'#group' => 'settings_tabs',
'#type' => 'fieldset',
'#tree' => TRUE,
'#visible' => TRUE,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => $weight++,
);
$defaults = $plugin
->getDefaultSettings($job);
$form_state['default_values']['settings'][$plugin_type][$name] += $defaults;
$form_state['values']['settings'][$plugin_type][$name] += ultimate_cron_blank_values($defaults);
$plugin
->settingsForm($form, $form_state, $job);
if (empty($form['settings'][$plugin_type][$name]['no_settings'])) {
$plugin
->fallbackalize($form['settings'][$plugin_type][$name], $form_state['values']['settings'][$plugin_type][$name], $form_state['default_values']['settings'][$plugin_type][$name], FALSE);
}
else {
unset($form['settings'][$plugin_type][$name]);
}
}
}