root / drupal7 / modules / aggregator / aggregator.api.php @ 73a44071
1 |
<?php
|
---|---|
2 |
|
3 |
/**
|
4 |
* @file
|
5 |
* Documentation for aggregator API.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
* @addtogroup hooks
|
10 |
* @{
|
11 |
*/
|
12 |
|
13 |
/**
|
14 |
* Create an alternative fetcher for aggregator.module.
|
15 |
*
|
16 |
* A fetcher downloads feed data to a Drupal site. The fetcher is called at the
|
17 |
* first of the three aggregation stages: first, data is downloaded by the
|
18 |
* active fetcher; second, it is converted to a common format by the active
|
19 |
* parser; and finally, it is passed to all active processors, which manipulate
|
20 |
* or store the data.
|
21 |
*
|
22 |
* Modules that define this hook can be set as the active fetcher within the
|
23 |
* configuration page. Only one fetcher can be active at a time.
|
24 |
*
|
25 |
* @param $feed
|
26 |
* A feed object representing the resource to be downloaded. $feed->url
|
27 |
* contains the link to the feed. Download the data at the URL and expose it
|
28 |
* to other modules by attaching it to $feed->source_string.
|
29 |
*
|
30 |
* @return
|
31 |
* TRUE if fetching was successful, FALSE otherwise.
|
32 |
*
|
33 |
* @see hook_aggregator_fetch_info()
|
34 |
* @see hook_aggregator_parse()
|
35 |
* @see hook_aggregator_process()
|
36 |
*
|
37 |
* @ingroup aggregator
|
38 |
*/
|
39 |
function hook_aggregator_fetch($feed) { |
40 |
$feed->source_string = mymodule_fetch($feed->url); |
41 |
} |
42 |
|
43 |
/**
|
44 |
* Specify the title and short description of your fetcher.
|
45 |
*
|
46 |
* The title and the description provided are shown within the configuration
|
47 |
* page. Use as title the human readable name of the fetcher and as description
|
48 |
* a brief (40 to 80 characters) explanation of the fetcher's functionality.
|
49 |
*
|
50 |
* This hook is only called if your module implements hook_aggregator_fetch().
|
51 |
* If this hook is not implemented aggregator will use your module's file name
|
52 |
* as title and there will be no description.
|
53 |
*
|
54 |
* @return
|
55 |
* An associative array defining a title and a description string.
|
56 |
*
|
57 |
* @see hook_aggregator_fetch()
|
58 |
*
|
59 |
* @ingroup aggregator
|
60 |
*/
|
61 |
function hook_aggregator_fetch_info() { |
62 |
return array( |
63 |
'title' => t('Default fetcher'), |
64 |
'description' => t('Default fetcher for resources available by URL.'), |
65 |
); |
66 |
} |
67 |
|
68 |
/**
|
69 |
* Create an alternative parser for aggregator module.
|
70 |
*
|
71 |
* A parser converts feed item data to a common format. The parser is called
|
72 |
* at the second of the three aggregation stages: first, data is downloaded
|
73 |
* by the active fetcher; second, it is converted to a common format by the
|
74 |
* active parser; and finally, it is passed to all active processors which
|
75 |
* manipulate or store the data.
|
76 |
*
|
77 |
* Modules that define this hook can be set as the active parser within the
|
78 |
* configuration page. Only one parser can be active at a time.
|
79 |
*
|
80 |
* @param $feed
|
81 |
* An object describing the resource to be parsed. $feed->source_string
|
82 |
* contains the raw feed data. The hook implementation should parse this data
|
83 |
* and add the following properties to the $feed object:
|
84 |
* - description: The human-readable description of the feed.
|
85 |
* - link: A full URL that directly relates to the feed.
|
86 |
* - image: An image URL used to display an image of the feed.
|
87 |
* - etag: An entity tag from the HTTP header used for cache validation to
|
88 |
* determine if the content has been changed.
|
89 |
* - modified: The UNIX timestamp when the feed was last modified.
|
90 |
* - items: An array of feed items. The common format for a single feed item
|
91 |
* is an associative array containing:
|
92 |
* - title: The human-readable title of the feed item.
|
93 |
* - description: The full body text of the item or a summary.
|
94 |
* - timestamp: The UNIX timestamp when the feed item was last published.
|
95 |
* - author: The author of the feed item.
|
96 |
* - guid: The global unique identifier (GUID) string that uniquely
|
97 |
* identifies the item. If not available, the link is used to identify
|
98 |
* the item.
|
99 |
* - link: A full URL to the individual feed item.
|
100 |
*
|
101 |
* @return
|
102 |
* TRUE if parsing was successful, FALSE otherwise.
|
103 |
*
|
104 |
* @see hook_aggregator_parse_info()
|
105 |
* @see hook_aggregator_fetch()
|
106 |
* @see hook_aggregator_process()
|
107 |
*
|
108 |
* @ingroup aggregator
|
109 |
*/
|
110 |
function hook_aggregator_parse($feed) { |
111 |
if ($items = mymodule_parse($feed->source_string)) { |
112 |
$feed->items = $items; |
113 |
return TRUE; |
114 |
} |
115 |
return FALSE; |
116 |
} |
117 |
|
118 |
/**
|
119 |
* Specify the title and short description of your parser.
|
120 |
*
|
121 |
* The title and the description provided are shown within the configuration
|
122 |
* page. Use as title the human readable name of the parser and as description
|
123 |
* a brief (40 to 80 characters) explanation of the parser's functionality.
|
124 |
*
|
125 |
* This hook is only called if your module implements hook_aggregator_parse().
|
126 |
* If this hook is not implemented aggregator will use your module's file name
|
127 |
* as title and there will be no description.
|
128 |
*
|
129 |
* @return
|
130 |
* An associative array defining a title and a description string.
|
131 |
*
|
132 |
* @see hook_aggregator_parse()
|
133 |
*
|
134 |
* @ingroup aggregator
|
135 |
*/
|
136 |
function hook_aggregator_parse_info() { |
137 |
return array( |
138 |
'title' => t('Default parser'), |
139 |
'description' => t('Default parser for RSS, Atom and RDF feeds.'), |
140 |
); |
141 |
} |
142 |
|
143 |
/**
|
144 |
* Create a processor for aggregator.module.
|
145 |
*
|
146 |
* A processor acts on parsed feed data. Active processors are called at the
|
147 |
* third and last of the aggregation stages: first, data is downloaded by the
|
148 |
* active fetcher; second, it is converted to a common format by the active
|
149 |
* parser; and finally, it is passed to all active processors that manipulate or
|
150 |
* store the data.
|
151 |
*
|
152 |
* Modules that define this hook can be activated as a processor within the
|
153 |
* configuration page.
|
154 |
*
|
155 |
* @param $feed
|
156 |
* A feed object representing the resource to be processed. $feed->items
|
157 |
* contains an array of feed items downloaded and parsed at the parsing stage.
|
158 |
* See hook_aggregator_parse() for the basic format of a single item in the
|
159 |
* $feed->items array. For the exact format refer to the particular parser in
|
160 |
* use.
|
161 |
*
|
162 |
* @see hook_aggregator_process_info()
|
163 |
* @see hook_aggregator_fetch()
|
164 |
* @see hook_aggregator_parse()
|
165 |
*
|
166 |
* @ingroup aggregator
|
167 |
*/
|
168 |
function hook_aggregator_process($feed) { |
169 |
foreach ($feed->items as $item) { |
170 |
mymodule_save($item);
|
171 |
} |
172 |
} |
173 |
|
174 |
/**
|
175 |
* Specify the title and short description of your processor.
|
176 |
*
|
177 |
* The title and the description provided are shown within the configuration
|
178 |
* page. Use as title the natural name of the processor and as description a
|
179 |
* brief (40 to 80 characters) explanation of the functionality.
|
180 |
*
|
181 |
* This hook is only called if your module implements hook_aggregator_process().
|
182 |
* If this hook is not implemented aggregator will use your module's file name
|
183 |
* as title and there will be no description.
|
184 |
*
|
185 |
* @return
|
186 |
* An associative array defining a title and a description string.
|
187 |
*
|
188 |
* @see hook_aggregator_process()
|
189 |
*
|
190 |
* @ingroup aggregator
|
191 |
*/
|
192 |
function hook_aggregator_process_info() { |
193 |
return array( |
194 |
'title' => t('Default processor'), |
195 |
'description' => t('Creates lightweight records of feed items.'), |
196 |
); |
197 |
} |
198 |
|
199 |
/**
|
200 |
* Remove stored feed data.
|
201 |
*
|
202 |
* Aggregator calls this hook if either a feed is deleted or a user clicks on
|
203 |
* "remove items".
|
204 |
*
|
205 |
* If your module stores feed items for example on hook_aggregator_process() it
|
206 |
* is recommended to implement this hook and to remove data related to $feed
|
207 |
* when called.
|
208 |
*
|
209 |
* @param $feed
|
210 |
* The $feed object whose items are being removed.
|
211 |
*
|
212 |
* @ingroup aggregator
|
213 |
*/
|
214 |
function hook_aggregator_remove($feed) { |
215 |
mymodule_remove_items($feed->fid);
|
216 |
} |
217 |
|
218 |
/**
|
219 |
* @} End of "addtogroup hooks".
|
220 |
*/
|