Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 458 lines (406 sloc) 17.068 kb
f3f0262 Andreas Gohr Initial revision.
authored
1 <?php
15fae10 Andreas Gohr phpdoc comments
authored
2 /**
3 * XML feed export
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Andreas Gohr <andi@splitbrain.org>
7 */
8
db959ae Andreas Gohr Coding Standard Cleanup
authored
9 if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/');
10 require_once(DOKU_INC.'inc/init.php');
11
12 //close session
13 session_write_close();
14
15 // get params
16 $opt = rss_parseOptions();
17
18 // the feed is dynamic - we need a cache for each combo
19 // (but most people just use the default feed so it's still effective)
20 $cache = getCacheName(join('',array_values($opt)).$_SERVER['REMOTE_USER'],'.feed');
49eb6e3 Andreas Gohr some more coding standard compliance updates
authored
21 $key = join('', array_values($opt)) . $_SERVER['REMOTE_USER'];
0d67055 make feed use the cache class - fixes FS#1676
Michael Klier authored
22 $cache = new cache($key, '.feed');
23
24 // prepare cache depends
25 $depends['files'] = getConfigFiles('main');
26 $depends['age'] = $conf['rss_update'];
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
27 $depends['purge'] = isset($_REQUEST['purge']);
db959ae Andreas Gohr Coding Standard Cleanup
authored
28
29 // check cacheage and deliver if nothing has changed since last
30 // time or the update interval has not passed, also handles conditional requests
31 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
32 header('Pragma: public');
33 header('Content-Type: application/xml; charset=utf-8');
34 header('X-Robots-Tag: noindex');
0d67055 make feed use the cache class - fixes FS#1676
Michael Klier authored
35 if($cache->useCache($depends)) {
36 http_conditionalRequest($cache->_time);
37 if($conf['allowdebug']) header("X-CacheUsed: $cache->cache");
38 print $cache->retrieveCache();
fa3fcd9 Andreas Gohr revised wiki:dokuwiki page
authored
39 exit;
db959ae Andreas Gohr Coding Standard Cleanup
authored
40 } else {
fbf8293 RSS update time and 304 Not Modified
Ben Coburn authored
41 http_conditionalRequest(time());
db959ae Andreas Gohr Coding Standard Cleanup
authored
42 }
43
44 // create new feed
45 $rss = new DokuWikiFeedCreator();
46 $rss->title = $conf['title'].(($opt['namespace']) ? ' '.$opt['namespace'] : '');
47 $rss->link = DOKU_URL;
48 $rss->syndicationURL = DOKU_URL.'feed.php';
49 $rss->cssStyleSheet = DOKU_URL.'lib/exe/css.php?s=feed';
50
51 $image = new FeedImage();
52 $image->title = $conf['title'];
2783395 Anika Henke added tpl_getMediaFile() to replace tpl_getFavicon()
selfthinker authored
53 $image->url = tpl_getMediaFile('favicon.ico', true);
db959ae Andreas Gohr Coding Standard Cleanup
authored
54 $image->link = DOKU_URL;
55 $rss->image = $image;
56
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
57 $data = null;
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
58 $modes = array('list' => 'rssListNamespace',
59 'search' => 'rssSearch',
60 'recent' => 'rssRecentChanges');
61 if (isset($modes[$opt['feed_mode']])) {
62 $data = $modes[$opt['feed_mode']]($opt);
63 } else {
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
64 $eventData = array(
65 'opt' => &$opt,
66 'data' => &$data,
67 );
68 $event = new Doku_Event('FEED_MODE_UNKNOWN', $eventData);
69 if ($event->advise_before(true)) {
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
70 echo sprintf('<error>Unknown feed mode %s</error>', hsc($opt['feed_mode']));
71 exit;
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
72 }
73 $event->advise_after();
db959ae Andreas Gohr Coding Standard Cleanup
authored
74 }
f3f0262 Andreas Gohr Initial revision.
authored
75
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
76 rss_buildItems($rss, $data, $opt);
db959ae Andreas Gohr Coding Standard Cleanup
authored
77 $feed = $rss->createFeed($opt['feed_type'],'utf-8');
fa3fcd9 Andreas Gohr revised wiki:dokuwiki page
authored
78
db959ae Andreas Gohr Coding Standard Cleanup
authored
79 // save cachefile
0d67055 make feed use the cache class - fixes FS#1676
Michael Klier authored
80 $cache->storeCache($feed);
7131b66 Andreas Gohr caching for feeds
authored
81
db959ae Andreas Gohr Coding Standard Cleanup
authored
82 // finally deliver
83 print $feed;
f3f0262 Andreas Gohr Initial revision.
authored
84
15fae10 Andreas Gohr phpdoc comments
authored
85 // ---------------------------------------------------------------- //
f3f0262 Andreas Gohr Initial revision.
authored
86
15fae10 Andreas Gohr phpdoc comments
authored
87 /**
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
88 * Get URL parameters and config options and return an initialized option array
15fae10 Andreas Gohr phpdoc comments
authored
89 *
90 * @author Andreas Gohr <andi@splitbrain.org>
91 */
4ab889e Andreas Gohr improved feed creation
authored
92 function rss_parseOptions(){
8716966 Andreas Gohr Use meta data in RSS feed
authored
93 global $conf;
94
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
95 $opt = array();
96
97 foreach(array(
98 // Basic feed properties
99 // Plugins may probably want to add new values to these
100 // properties for implementing own feeds
101
102 // One of: list, search, recent
103 'feed_mode' => array('mode', 'recent'),
104 // One of: diff, page, rev, current
105 'link_to' => array('linkto', $conf['rss_linkto']),
106 // One of: abstract, diff, htmldiff, html
107 'item_content' => array('content', $conf['rss_content']),
108
109 // Special feed properties
110 // These are only used by certain feed_modes
111
112 // String, used for feed title, in list and rc mode
113 'namespace' => array('ns', null),
114 // Positive integer, only used in rc mode
115 'items' => array('num', $conf['recent']),
116 // Boolean, only used in rc mode
117 'show_minor' => array('minor', false),
118 // String, only used in search mode
119 'search_query' => array('q', null),
a7c9322 Andreas Gohr make RSS contents (media/pages) configurable
authored
120 // One of: pages, media, both
121 'content_type' => array('view', $conf['rss_media'])
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
122
123 ) as $name => $val) {
124 $opt[$name] = (isset($_REQUEST[$val[0]]) && !empty($_REQUEST[$val[0]]))
125 ? $_REQUEST[$val[0]] : $val[1];
126 }
127
128 $opt['items'] = max(0, (int) $opt['items']);
129 $opt['show_minor'] = (bool) $opt['show_minor'];
130
4ab889e Andreas Gohr improved feed creation
authored
131 $opt['guardmail'] = ($conf['mailguard'] != '' && $conf['mailguard'] != 'none');
132
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
133 $type = valid_input_set('type', array('rss','rss2','atom','atom1','rss1',
134 'default' => $conf['rss_type']),
135 $_REQUEST);
136 switch ($type){
db959ae Andreas Gohr Coding Standard Cleanup
authored
137 case 'rss':
138 $opt['feed_type'] = 'RSS0.91';
139 $opt['mime_type'] = 'text/xml';
140 break;
141 case 'rss2':
142 $opt['feed_type'] = 'RSS2.0';
143 $opt['mime_type'] = 'text/xml';
144 break;
145 case 'atom':
146 $opt['feed_type'] = 'ATOM0.3';
147 $opt['mime_type'] = 'application/xml';
148 break;
149 case 'atom1':
150 $opt['feed_type'] = 'ATOM1.0';
151 $opt['mime_type'] = 'application/atom+xml';
152 break;
153 default:
154 $opt['feed_type'] = 'RSS1.0';
155 $opt['mime_type'] = 'application/xml';
4ab889e Andreas Gohr improved feed creation
authored
156 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
157
158 $eventData = array(
159 'opt' => &$opt,
160 );
161 trigger_event('FEED_OPTS_POSTPROCESS', $eventData);
4ab889e Andreas Gohr improved feed creation
authored
162 return $opt;
163 }
8716966 Andreas Gohr Use meta data in RSS feed
authored
164
4ab889e Andreas Gohr improved feed creation
authored
165 /**
166 * Add recent changed pages to a feed object
167 *
168 * @author Andreas Gohr <andi@splitbrain.org>
169 * @param object $rss - the FeedCreator Object
170 * @param array $data - the items to add
171 * @param array $opt - the feed options
172 */
173 function rss_buildItems(&$rss,&$data,$opt){
174 global $conf;
175 global $lang;
3d581c2 Andreas Gohr Fix author names in RSS feeds FS#1448
authored
176 global $auth;
883480f Andreas Gohr Action plugin hook for manipulating feed items
authored
177
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
178 $eventData = array(
179 'rss' => &$rss,
180 'data' => &$data,
181 'opt' => &$opt,
182 );
183 $event = new Doku_Event('FEED_DATA_PROCESS', $eventData);
184 if ($event->advise_before(false)){
185 foreach($data as $ditem){
186 if(!is_array($ditem)){
187 // not an array? then only a list of IDs was given
188 $ditem = array( 'id' => $ditem );
189 }
4bb1b5a Andreas Gohr RSS feeds for search results
authored
190
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
191 $item = new FeedItem();
192 $id = $ditem['id'];
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
193 if(!$ditem['media']) {
194 $meta = p_get_metadata($id);
195 }
8716966 Andreas Gohr Use meta data in RSS feed
authored
196
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
197 // add date
198 if($ditem['date']){
199 $date = $ditem['date'];
200 }elseif($meta['date']['modified']){
201 $date = $meta['date']['modified'];
202 }else{
203 $date = @filemtime(wikiFN($id));
204 }
205 if($date) $item->date = date('r',$date);
8716966 Andreas Gohr Use meta data in RSS feed
authored
206
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
207 // add title
208 if($conf['useheading'] && $meta['title']){
209 $item->title = $meta['title'];
210 }else{
211 $item->title = $ditem['id'];
212 }
213 if($conf['rss_show_summary'] && !empty($ditem['sum'])){
214 $item->title .= ' - '.strip_tags($ditem['sum']);
215 }
4ab889e Andreas Gohr improved feed creation
authored
216
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
217 // add item link
218 switch ($opt['link_to']){
219 case 'page':
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
220 if ($ditem['media']) {
221 $item->link = media_managerURL(array('image' => $id,
222 'ns' => getNS($id),
223 'rev' => $date), '&', true);
224 } else {
225 $item->link = wl($id,'rev='.$date,true,'&', true);
226 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
227 break;
228 case 'rev':
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
229 if ($ditem['media']) {
230 $item->link = media_managerURL(array('image' => $id,
231 'ns' => getNS($id),
232 'rev' => $date,
233 'tab_details' => 'history'), '&', true);
234 } else {
235 $item->link = wl($id,'do=revisions&rev='.$date,true,'&');
236 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
237 break;
238 case 'current':
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
239 if ($ditem['media']) {
240 $item->link = media_managerURL(array('image' => $id,
241 'ns' => getNS($id)), '&', true);
242 } else {
243 $item->link = wl($id, '', true,'&');
244 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
245 break;
246 case 'diff':
247 default:
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
248 if ($ditem['media']) {
249 $item->link = media_managerURL(array('image' => $id,
250 'ns' => getNS($id),
251 'rev' => $date,
252 'tab_details' => 'history',
253 'mediado' => 'diff'), '&', true);
254 } else {
255 $item->link = wl($id,'rev='.$date.'&do=diff',true,'&');
256 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
257 }
4ab889e Andreas Gohr improved feed creation
authored
258
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
259 // add item content
260 switch ($opt['item_content']){
261 case 'diff':
262 case 'htmldiff':
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
263 if ($ditem['media']) {
264 $revs = getRevisions($id, 0, 1, 8192, true);
265 $rev = $revs[0];
266 $src_r = '';
267 $src_l = '';
268
269 if ($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)), 300)) {
270 $more = 'w='.$size[0].'&h='.$size[1].'t='.@filemtime(mediaFN($id));
271 $src_r = ml($id, $more);
272 }
273 if ($rev && $size = media_image_preview_size($id, $rev, new JpegMeta(mediaFN($id, $rev)), 300)){
274 $more = 'rev='.$rev.'&w='.$size[0].'&h='.$size[1];
275 $src_l = ml($id, $more);
276 }
277 $content = '';
278 if ($src_r) {
279 $content = '<table>';
280 $content .= '<tr><th width="50%">'.$rev.'</th>';
281 $content .= '<th width="50%">'.$lang['current'].'</th></tr>';
282 $content .= '<tr align="center"><td><img src="'.$src_l.'" alt="" /></td><td>';
283 $content .= '<img src="'.$src_r.'" alt="'.$id.'" /></td></tr>';
284 $content .= '</table>';
285 }
286
287 } else {
288 require_once(DOKU_INC.'inc/DifferenceEngine.php');
289 $revs = getRevisions($id, 0, 1);
290 $rev = $revs[0];
291
292 if($rev){
293 $df = new Diff(explode("\n",htmlspecialchars(rawWiki($id,$rev))),
294 explode("\n",htmlspecialchars(rawWiki($id,''))));
295 }else{
296 $df = new Diff(array(''),
297 explode("\n",htmlspecialchars(rawWiki($id,''))));
298 }
299
300 if($opt['item_content'] == 'htmldiff'){
301 $tdf = new TableDiffFormatter();
302 $content = '<table>';
303 $content .= '<tr><th colspan="2" width="50%">'.$rev.'</th>';
304 $content .= '<th colspan="2" width="50%">'.$lang['current'].'</th></tr>';
305 $content .= $tdf->format($df);
306 $content .= '</table>';
307 }else{
308 $udf = new UnifiedDiffFormatter();
309 $content = "<pre>\n".$udf->format($df)."\n</pre>";
310 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
311 }
312 break;
313 case 'html':
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
314 if ($ditem['media']) {
315 if ($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)))) {
316 $more = 'w='.$size[0].'&h='.$size[1].'t='.@filemtime(mediaFN($id));
317 $src = ml($id, $more);
318 $content = '<img src="'.$src.'" alt="'.$id.'" />';
319 } else {
320 $content = '';
321 }
322 } else {
323 $content = p_wiki_xhtml($id,$date,false);
324 // no TOC in feeds
325 $content = preg_replace('/(<!-- TOC START -->).*(<!-- TOC END -->)/s','',$content);
326
327 // make URLs work when canonical is not set, regexp instead of rerendering!
328 if(!$conf['canonical']){
329 $base = preg_quote(DOKU_REL,'/');
330 $content = preg_replace('/(<a href|<img src)="('.$base.')/s','$1="'.DOKU_URL,$content);
331 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
332 }
333
334 break;
335 case 'abstract':
336 default:
6dd095f Kate Arzamastseva issue #10 media revisions/changes in RSS feed
akate authored
337 if ($ditem['media']) {
338 if ($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)))) {
339 $more = 'w='.$size[0].'&h='.$size[1].'t='.@filemtime(mediaFN($id));
340 $src = ml($id, $more);
341 $content = '<img src="'.$src.'" alt="'.$id.'" />';
342 } else {
343 $content = '';
344 }
345 } else {
346 $content = $meta['description']['abstract'];
347 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
348 }
349 $item->description = $content; //FIXME a plugin hook here could be senseful
350
351 // add user
352 # FIXME should the user be pulled from metadata as well?
353 $user = @$ditem['user']; // the @ spares time repeating lookup
354 $item->author = '';
355 if($user && $conf['useacl'] && $auth){
356 $userInfo = $auth->getUserData($user);
681a59b Gina Häußge FS#1884: respect $conf['showuseras'] in feeds
foosel authored
357 if ($userInfo){
358 switch ($conf['showuseras']){
359 case 'username':
360 $item->author = $userInfo['name'];
361 break;
362 default:
363 $item->author = $user;
364 break;
365 }
366 } else {
367 $item->author = $user;
368 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
369 if($userInfo && !$opt['guardmail']){
370 $item->authorEmail = $userInfo['mail'];
4ab889e Andreas Gohr improved feed creation
authored
371 }else{
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
372 //cannot obfuscate because some RSS readers may check validity
0bda036 Adrian Heine né Lang Fix feed author mail after variable name change
adrianheine authored
373 $item->authorEmail = $user.'@'.$ditem['ip'];
4ab889e Andreas Gohr improved feed creation
authored
374 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
375 }elseif($user){
376 // this happens when no ACL but some Apache auth is used
377 $item->author = $user;
0bda036 Adrian Heine né Lang Fix feed author mail after variable name change
adrianheine authored
378 $item->authorEmail = $user.'@'.$ditem['ip'];
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
379 }else{
0bda036 Adrian Heine né Lang Fix feed author mail after variable name change
adrianheine authored
380 $item->authorEmail = 'anonymous@'.$ditem['ip'];
8716966 Andreas Gohr Use meta data in RSS feed
authored
381 }
4ab889e Andreas Gohr improved feed creation
authored
382
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
383 // add category
b5a0be4 Adrian Heine né Lang Various changes to feed.php’s parameter handling
adrianheine authored
384 if(isset($meta['subject'])) {
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
385 $item->category = $meta['subject'];
386 }else{
387 $cat = getNS($id);
388 if($cat) $item->category = $cat;
389 }
4ab889e Andreas Gohr improved feed creation
authored
390
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
391 // finally add the item to the feed object, after handing it to registered plugins
392 $evdata = array('item' => &$item,
393 'opt' => &$opt,
394 'ditem' => &$ditem,
395 'rss' => &$rss);
396 $evt = new Doku_Event('FEED_ITEM_ADD', $evdata);
397 if ($evt->advise_before()){
398 $rss->addItem($item);
399 }
400 $evt->advise_after(); // for completeness
883480f Andreas Gohr Action plugin hook for manipulating feed items
authored
401 }
b1a1915 Andreas Gohr summary added to feed titles instead inside description
authored
402 }
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
403 $event->advise_after();
f3f0262 Andreas Gohr Initial revision.
authored
404 }
15fae10 Andreas Gohr phpdoc comments
authored
405
4ab889e Andreas Gohr improved feed creation
authored
406
407 /**
4bb1b5a Andreas Gohr RSS feeds for search results
authored
408 * Add recent changed pages to the feed object
4ab889e Andreas Gohr improved feed creation
authored
409 *
410 * @author Andreas Gohr <andi@splitbrain.org>
411 */
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
412 function rssRecentChanges($opt){
e5d185e Kate Arzamastseva issue #9 config option to disable media revisions, auth
akate authored
413 global $conf;
4ab889e Andreas Gohr improved feed creation
authored
414 $flags = RECENTS_SKIP_DELETED;
415 if(!$opt['show_minor']) $flags += RECENTS_SKIP_MINORS;
e5d185e Kate Arzamastseva issue #9 config option to disable media revisions, auth
akate authored
416 if($opt['content_type'] == 'media' && $conf['mediarevisions']) $flags += RECENTS_MEDIA_CHANGES;
417 if($opt['content_type'] == 'both' && $conf['mediarevisions']) $flags += RECENTS_MEDIA_PAGES_MIXED;
4ab889e Andreas Gohr improved feed creation
authored
418
419 $recents = getRecents(0,$opt['items'],$opt['namespace'],$flags);
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
420 return $recents;
4ab889e Andreas Gohr improved feed creation
authored
421 }
422
15fae10 Andreas Gohr phpdoc comments
authored
423 /**
4bb1b5a Andreas Gohr RSS feeds for search results
authored
424 * Add all pages of a namespace to the feed object
15fae10 Andreas Gohr phpdoc comments
authored
425 *
426 * @author Andreas Gohr <andi@splitbrain.org>
427 */
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
428 function rssListNamespace($opt){
8716966 Andreas Gohr Use meta data in RSS feed
authored
429 require_once(DOKU_INC.'inc/search.php');
430 global $conf;
431
4ab889e Andreas Gohr improved feed creation
authored
432 $ns=':'.cleanID($opt['namespace']);
8716966 Andreas Gohr Use meta data in RSS feed
authored
433 $ns=str_replace(':','/',$ns);
434
435 $data = array();
436 sort($data);
437 search($data,$conf['datadir'],'search_list','',$ns);
438
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
439 return $data;
4ab889e Andreas Gohr improved feed creation
authored
440 }
8716966 Andreas Gohr Use meta data in RSS feed
authored
441
4bb1b5a Andreas Gohr RSS feeds for search results
authored
442 /**
443 * Add the result of a full text search to the feed object
444 *
445 * @author Andreas Gohr <andi@splitbrain.org>
446 */
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
447 function rssSearch($opt){
4bb1b5a Andreas Gohr RSS feeds for search results
authored
448 if(!$opt['search_query']) return;
8716966 Andreas Gohr Use meta data in RSS feed
authored
449
4bb1b5a Andreas Gohr RSS feeds for search results
authored
450 require_once(DOKU_INC.'inc/fulltext.php');
451 $data = ft_pageSearch($opt['search_query'],$poswords);
452 $data = array_keys($data);
4bf3df7 Gina Häußge Introduced new events in feed.php for preprocessing the wiki's feeds
foosel authored
453
454 return $data;
4bb1b5a Andreas Gohr RSS feeds for search results
authored
455 }
f3f0262 Andreas Gohr Initial revision.
authored
456
e3776c0 Michael Hamann Remove enc=utf-8 in VIM modeline as it is not allowed in VIM 7.3
michitux authored
457 //Setup VIM: ex: et ts=4 :
Something went wrong with that request. Please try again.