Skip navigation
Help

aggregator_form_feed

6 aggregator.admin.inc aggregator_form_feed(&$form_state, $edit = array('refresh' => 900, 'title' => '', 'url' => '', 'fid' => NULL))
7 aggregator.admin.inc aggregator_form_feed($form, &$form_state, stdClass $feed = NULL)

Form builder; Generate a form to add/edit feed sources.

See also

aggregator_form_feed_validate()

aggregator_form_feed_submit()

Related topics

1 string reference to 'aggregator_form_feed'

File

drupal/modules/aggregator/aggregator.admin.inc, line 54
Admin page callbacks for the aggregator module.

Code

function aggregator_form_feed(&$form_state, $edit = array('refresh' => 900, 'title' => '', 'url' => '', 'fid' => NULL)) {
  $period = drupal_map_assoc(array(900, 1800, 3600, 7200, 10800, 21600, 32400, 43200, 64800, 86400, 172800, 259200, 604800, 1209600, 2419200), 'format_interval');

  if ($edit['refresh'] == '') {
    $edit['refresh'] = 3600;
  }

  $form['title'] = array(
    '#type' => 'textfield', 
    '#title' => t('Title'), 
    '#default_value' => $edit['title'], 
    '#maxlength' => 255, 
    '#description' => t('The name of the feed (or the name of the website providing the feed).'), 
    '#required' => TRUE,
  );
  $form['url'] = array(
    '#type' => 'textfield', 
    '#title' => t('URL'), 
    '#default_value' => $edit['url'], 
    '#maxlength' => 255, 
    '#description' => t('The fully-qualified URL of the feed.'), 
    '#required' => TRUE,
  );
  $form['refresh'] = array(
    '#type' => 'select', 
    '#title' => t('Update interval'), 
    '#default_value' => $edit['refresh'], 
    '#options' => $period, 
    '#description' => t('The length of time between feed updates. (Requires a correctly configured <a href="@cron">cron maintenance task</a>.)', array('@cron' => url('admin/reports/status'))),
  );

  // Handling of categories:
  $options = array();
  $values = array();
  $categories = db_query('SELECT c.cid, c.title, f.fid FROM {aggregator_category} c LEFT JOIN {aggregator_category_feed} f ON c.cid = f.cid AND f.fid = %d ORDER BY title', $edit['fid']);
  while ($category = db_fetch_object($categories)) {
    $options[$category->cid] = check_plain($category->title);
    if ($category->fid) {
      $values[] = $category->cid;
    }
  }
  if ($options) {
    $form['category'] = array(
      '#type' => 'checkboxes', 
      '#title' => t('Categorize news items'), 
      '#default_value' => $values, 
      '#options' => $options, 
      '#description' => t('New feed items are automatically filed in the checked categories.'),
    );
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );

  if ($edit['fid']) {
    $form['delete'] = array(
      '#type' => 'submit',
      '#value' => t('Delete'),
    );
    $form['fid'] = array(
      '#type' => 'hidden',
      '#value' => $edit['fid'],
    );
  }

  return $form;
}