Skip to content
Snippets Groups Projects
Select Git revision
  • e7ac42950de749c33d098e3f56b65c2153f7cdca
  • 11.x default protected
  • 10.5.x protected
  • 10.6.x protected
  • 11.2.x protected
  • 11.1.x protected
  • 10.4.x protected
  • 11.0.x protected
  • 10.3.x protected
  • 7.x protected
  • 10.2.x protected
  • 10.1.x protected
  • 9.5.x protected
  • 10.0.x protected
  • 9.4.x protected
  • 9.3.x protected
  • 9.2.x protected
  • 9.1.x protected
  • 8.9.x protected
  • 9.0.x protected
  • 8.8.x protected
  • 10.5.1 protected
  • 11.2.2 protected
  • 11.2.1 protected
  • 11.2.0 protected
  • 10.5.0 protected
  • 11.2.0-rc2 protected
  • 10.5.0-rc1 protected
  • 11.2.0-rc1 protected
  • 10.4.8 protected
  • 11.1.8 protected
  • 10.5.0-beta1 protected
  • 11.2.0-beta1 protected
  • 11.2.0-alpha1 protected
  • 10.4.7 protected
  • 11.1.7 protected
  • 10.4.6 protected
  • 11.1.6 protected
  • 10.3.14 protected
  • 10.4.5 protected
  • 11.0.13 protected
41 results

aggregator.api.php

Blame
  • user avatar
    Issue #1791090 by Ivan Zugec: Remove references to specific admin paths from...
    Jennifer Hodgdon authored
    Issue #1791090 by Ivan Zugec: Remove references to specific admin paths from aggregator function docs
    e7ac4295
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    aggregator.api.php 6.31 KiB
    <?php
    
    /**
     * @file
     * Documentation for aggregator API.
     */
    
    /**
     * @addtogroup hooks
     * @{
     */
    
    /**
     * Specify the class, title, and short description of your fetcher plugins.
     *
     * The title and the description provided are shown within the
     * configuration page.
     *
     * @return
     *   An associative array whose keys define the fetcher id and whose values
     *   contain the fetcher definitions. Each fetcher definition is itself an
     *   associative array, with the following key-value pairs:
     *   - class: (required) The PHP class containing the fetcher implementation.
     *   - title: (required) A human readable name of the fetcher.
     *   - description: (required) A brief (40 to 80 characters) explanation of the
     *     fetcher's functionality.
     *
     * @ingroup aggregator
     */
    function hook_aggregator_fetch_info() {
      return array(
        'aggregator' => array(
          'class' => 'Drupal\aggregator\Plugin\aggregator\fetcher\DefaultFetcher',
          'title' => t('Default fetcher'),
          'description' => t('Downloads data from a URL using Drupal\'s HTTP request handler.'),
        ),
      );
    }
    
    /**
     * 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($feed) {
      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".
     */