From d8cca5e6e89233f4efbc0f2b81b4a83745f57a43 Mon Sep 17 00:00:00 2001 From: Alex Barth <alex_b@53995.no-reply.drupal.org> Date: Wed, 16 Sep 2009 21:57:10 +0000 Subject: [PATCH] Minor cleanups, add plugin form validation and submission. --- feeds_ui/feeds_ui.admin.inc | 18 ++++++++++++++++-- includes/feed.inc | 20 ++++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/feeds_ui/feeds_ui.admin.inc b/feeds_ui/feeds_ui.admin.inc index f30c1f20..b0b576f5 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 9755ee85..6dc614b9 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) { } -- GitLab