diff --git a/feeds_ui/feeds_ui.admin.inc b/feeds_ui/feeds_ui.admin.inc index f30c1f2053357d16f6bf0f8282dbc8bdc19c515e..b0b576f5b5e087c78e62e3da7877d491b57e4a1f 100644 --- a/feeds_ui/feeds_ui.admin.inc +++ b/feeds_ui/feeds_ui.admin.inc @@ -165,11 +165,10 @@ function feeds_ui_build_mapping_form(&$form_state, $feed) { /** * Edit plugin configuration. - * - * @todo: move plugin form generation into feed class. */ function feeds_ui_build_plugin_form(&$form_state, $feed) { $form = array(); + $form['#feed'] = $feed; $form['plugins'] = array( '#type' => 'fieldset', '#title' => t('Plugins'), @@ -182,6 +181,21 @@ function feeds_ui_build_plugin_form(&$form_state, $feed) { return $form; } +/** + * Validation handler for feeds_ui_build_edit_form(). + */ +function feeds_ui_build_plugin_form_validate($form, &$form_state) { + $form['#feed']->pluginFormValidate($form, &$form_state); +} + +/** + * Submit handler for feeds_ui_build_edit_form(). + */ +function feeds_ui_build_plugin_form_submit($form, &$form_state) { + $form['#feed']->pluginFormSubmit($form, &$form_state); + drupal_set_message(t('Saved configuration')); +} + /** * Delete form. */ diff --git a/includes/feed.inc b/includes/feed.inc index 9755ee85106bc919f1abe75e40cd35fd2a6bc2f7..6dc614b955bcf314332ba7764469c65b890da4fa 100644 --- a/includes/feed.inc +++ b/includes/feed.inc @@ -110,6 +110,24 @@ class Feed extends FeedsConfigurable { return $form; } + /** + * Validation handler for pluginForm(). + */ + public function pluginFormValidate($form, &$form_state) { + $form_state['values']['processors'] = array_filter($form_state['values']['processors']); + if (!count($form_state['values']['processors'])) { + form_set_error('processors', t('At least one processor needs to be enabled.')); + } + } + + /** + * Submit handler for pluginForm(). + */ + public function pluginFormSubmit($form, &$form_state) { + $this->addConfig($form_state['values']); + $this->save(); + } + /** * Import feed by using configured fetchers, parsers, processors. */ @@ -289,8 +307,6 @@ class FeedsConfigurable { /** * Validation handler for configForm(). - * - * @return unknown */ public function configFormValidate($form, &$form_state) { }