public function FeedFormController::validate

Overrides Drupal\Core\Entity\EntityFormController::validate().

Overrides EntityFormControllerNG::validate

File

drupal/core/modules/aggregator/lib/Drupal/aggregator/FeedFormController.php, line 90
Contains \Drupal\aggregator\FeedFormController.

Class

FeedFormController
Form controller for the aggregator feed edit forms.

Namespace

Drupal\aggregator

Code

public function validate(array $form, array &$form_state) {
  $feed = $this
    ->buildEntity($form, $form_state);

  // Check for duplicate titles.
  if ($feed
    ->id()) {
    $result = db_query("SELECT title, url FROM {aggregator_feed} WHERE (title = :title OR url = :url) AND fid <> :fid", array(
      ':title' => $feed
        ->label(),
      ':url' => $feed->url->value,
      ':fid' => $feed
        ->id(),
    ));
  }
  else {
    $result = db_query("SELECT title, url FROM {aggregator_feed} WHERE title = :title OR url = :url", array(
      ':title' => $feed
        ->label(),
      ':url' => $feed->url->value,
    ));
  }
  foreach ($result as $item) {
    if (strcasecmp($item->title, $feed
      ->label()) == 0) {
      form_set_error('title', t('A feed named %feed already exists. Enter a unique title.', array(
        '%feed' => $feed
          ->label(),
      )));
    }
    if (strcasecmp($item->url, $feed->url->value) == 0) {
      form_set_error('url', t('A feed with this URL %url already exists. Enter a unique URL.', array(
        '%url' => $feed->url->value,
      )));
    }
  }
  parent::validate($form, $form_state);
}