123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?php
- /**
- * @file
- * Documentation for aggregator API.
- */
- /**
- * @addtogroup hooks
- * @{
- */
- /**
- * Create an alternative fetcher for aggregator.module.
- *
- * A fetcher downloads feed data to a Drupal site. The fetcher is called at the
- * first of the three aggregation stages: first, data is downloaded by the
- * active fetcher; second, it is converted to a common format by the active
- * parser; and finally, it is passed to all active processors, which manipulate
- * or store the data.
- *
- * Modules that define this hook can be set as the active fetcher within the
- * configuration page. Only one fetcher can be active at a time.
- *
- * @param $feed
- * A feed object representing the resource to be downloaded. $feed->url
- * contains the link to the feed. Download the data at the URL and expose it
- * to other modules by attaching it to $feed->source_string.
- *
- * @return
- * TRUE if fetching was successful, FALSE otherwise.
- *
- * @see hook_aggregator_fetch_info()
- * @see hook_aggregator_parse()
- * @see hook_aggregator_process()
- *
- * @ingroup aggregator
- */
- function hook_aggregator_fetch($feed) {
- $feed->source_string = mymodule_fetch($feed->url);
- }
- /**
- * Specify the title and short description of your fetcher.
- *
- * The title and the description provided are shown within the configuration
- * page. Use as title the human readable name of the fetcher and as description
- * a brief (40 to 80 characters) explanation of the fetcher's functionality.
- *
- * This hook is only called if your module implements hook_aggregator_fetch().
- * If this hook is not implemented aggregator will use your module's file name
- * as title and there will be no description.
- *
- * @return
- * An associative array defining a title and a description string.
- *
- * @see hook_aggregator_fetch()
- *
- * @ingroup aggregator
- */
- function hook_aggregator_fetch_info() {
- return array(
- 'title' => t('Default fetcher'),
- 'description' => t('Default fetcher for resources available by URL.'),
- );
- }
- /**
- * Create an alternative parser for aggregator module.
- *
- * A parser converts feed item data to a common format. The parser is called
- * at the second of the three aggregation stages: first, data is downloaded
- * by the active fetcher; second, it is converted to a common format by the
- * active parser; and finally, it is passed to all active processors which
- * manipulate or store the data.
- *
- * Modules that define this hook can be set as the active parser within the
- * configuration page. Only one parser can be active at a time.
- *
- * @param $feed
- * An object describing the resource to be parsed. $feed->source_string
- * contains the raw feed data. The hook implementation should parse this data
- * and add the following properties to the $feed object:
- * - description: The human-readable description of the feed.
- * - link: A full URL that directly relates to the feed.
- * - image: An image URL used to display an image of the feed.
- * - etag: An entity tag from the HTTP header used for cache validation to
- * determine if the content has been changed.
- * - modified: The UNIX timestamp when the feed was last modified.
- * - items: An array of feed items. The common format for a single feed item
- * is an associative array containing:
- * - title: The human-readable title of the feed item.
- * - description: The full body text of the item or a summary.
- * - timestamp: The UNIX timestamp when the feed item was last published.
- * - author: The author of the feed item.
- * - guid: The global unique identifier (GUID) string that uniquely
- * identifies the item. If not available, the link is used to identify
- * the item.
- * - link: A full URL to the individual feed item.
- *
- * @return
- * TRUE if parsing was successful, FALSE otherwise.
- *
- * @see hook_aggregator_parse_info()
- * @see hook_aggregator_fetch()
- * @see hook_aggregator_process()
- *
- * @ingroup aggregator
- */
- function hook_aggregator_parse($feed) {
- if ($items = mymodule_parse($feed->source_string)) {
- $feed->items = $items;
- return TRUE;
- }
- return FALSE;
- }
- /**
- * Specify the title and short description of your parser.
- *
- * The title and the description provided are shown within the configuration
- * page. Use as title the human readable name of the parser and as description
- * a brief (40 to 80 characters) explanation of the parser's functionality.
- *
- * This hook is only called if your module implements hook_aggregator_parse().
- * If this hook is not implemented aggregator will use your module's file name
- * as title and there will be no description.
- *
- * @return
- * An associative array defining a title and a description string.
- *
- * @see hook_aggregator_parse()
- *
- * @ingroup aggregator
- */
- function hook_aggregator_parse_info() {
- return array(
- 'title' => t('Default parser'),
- 'description' => t('Default parser for RSS, Atom and RDF feeds.'),
- );
- }
- /**
- * Create a processor for aggregator.module.
- *
- * A processor acts on parsed feed data. Active processors are called at the
- * third and last of the aggregation stages: first, data is downloaded by the
- * active fetcher; second, it is converted to a common format by the active
- * parser; and finally, it is passed to all active processors that manipulate or
- * store the data.
- *
- * Modules that define this hook can be activated as a processor within the
- * configuration page.
- *
- * @param $feed
- * A feed object representing the resource to be processed. $feed->items
- * contains an array of feed items downloaded and parsed at the parsing stage.
- * See hook_aggregator_parse() for the basic format of a single item in the
- * $feed->items array. For the exact format refer to the particular parser in
- * use.
- *
- * @see hook_aggregator_process_info()
- * @see hook_aggregator_fetch()
- * @see hook_aggregator_parse()
- *
- * @ingroup aggregator
- */
- function hook_aggregator_process($feed) {
- foreach ($feed->items as $item) {
- mymodule_save($item);
- }
- }
- /**
- * Specify the title and short description of your processor.
- *
- * The title and the description provided are shown within the configuration
- * page. Use as title the natural name of the processor and as description a
- * brief (40 to 80 characters) explanation of the functionality.
- *
- * This hook is only called if your module implements hook_aggregator_process().
- * If this hook is not implemented aggregator will use your module's file name
- * as title and there will be no description.
- *
- * @return
- * An associative array defining a title and a description string.
- *
- * @see hook_aggregator_process()
- *
- * @ingroup aggregator
- */
- function hook_aggregator_process_info() {
- return array(
- 'title' => t('Default processor'),
- 'description' => t('Creates lightweight records of feed items.'),
- );
- }
- /**
- * Remove stored feed data.
- *
- * Aggregator calls this hook if either a feed is deleted or a user clicks on
- * "remove items".
- *
- * If your module stores feed items for example on hook_aggregator_process() it
- * is recommended to implement this hook and to remove data related to $feed
- * when called.
- *
- * @param $feed
- * The $feed object whose items are being removed.
- *
- * @ingroup aggregator
- */
- function hook_aggregator_remove($feed) {
- mymodule_remove_items($feed->fid);
- }
- /**
- * @} End of "addtogroup hooks".
- */
|