function aggregator_form_feed_validate

Form validation handler for aggregator_form_feed().

See also

aggregator_form_feed_submit()

File

modules/aggregator/aggregator.admin.inc, line 140

Code

function aggregator_form_feed_validate($form, &$form_state) {
    if ($form_state['values']['op'] == t('Save')) {
        // Ensure URL is valid.
        if (!valid_url($form_state['values']['url'], TRUE)) {
            form_set_error('url', t('The URL %url is invalid. Enter a fully-qualified URL, such as http://www.example.com/feed.xml.', array(
                '%url' => $form_state['values']['url'],
            )));
        }
        // Check for duplicate titles.
        if (isset($form_state['values']['fid'])) {
            $result = db_query("SELECT title, url FROM {aggregator_feed} WHERE (title = :title OR url = :url) AND fid <> :fid", array(
                ':title' => $form_state['values']['title'],
                ':url' => $form_state['values']['url'],
                ':fid' => $form_state['values']['fid'],
            ));
        }
        else {
            $result = db_query("SELECT title, url FROM {aggregator_feed} WHERE title = :title OR url = :url", array(
                ':title' => $form_state['values']['title'],
                ':url' => $form_state['values']['url'],
            ));
        }
        foreach ($result as $feed) {
            if (strcasecmp($feed->title, $form_state['values']['title']) == 0) {
                form_set_error('title', t('A feed named %feed already exists. Enter a unique title.', array(
                    '%feed' => $form_state['values']['title'],
                )));
            }
            if (strcasecmp($feed->url, $form_state['values']['url']) == 0) {
                form_set_error('url', t('A feed with this URL %url already exists. Enter a unique URL.', array(
                    '%url' => $form_state['values']['url'],
                )));
            }
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.