Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php

// from aggregator_menu()

$items['aggregator/sources/%aggregator_feed'] = array(
  'page callback' => 'aggregator_page_source', // <- called here
  'page arguments' => array(2),
  'type' => MENU_CALLBACK,
  'file' => 'aggregator.pages.inc',
);
$items['aggregator/sources/%aggregator_feed/categorize'] = array(
  'title' => 'Categorize',
  'page callback' => 'drupal_get_form',       // <- and here
  'page arguments' => array('aggregator_page_source', 2),
  'access arguments' => array('administer news feeds'),
  'type' => MENU_LOCAL_TASK,
  'file' => 'aggregator.pages.inc',
);


function aggregator_page_source($arg1, $arg2 = NULL) {
  // If there are two arguments then this function is the categorize form, and
  // $arg1 is $form_state and $arg2 is $feed. Otherwise, $arg1 is $feed.
  $feed = is_array($arg2) ? $arg2 : $arg1;
  $feed = (object)$feed;
  drupal_set_title(check_plain($feed->title));
  $info = theme('aggregator_feed', $feed);

  return _aggregator_page_list('SELECT * FROM {aggregator_item} WHERE fid = '. $feed->fid .' ORDER BY timestamp DESC, iid DESC', arg(3), $info);
}