f6af1a8676e7beaf34cca944fd2288263ffea75b
[atutor.git] / mods / wiki / plugins / action / rss.php
1 <?php
2 /*
3    provides a rss/atom feed for individual pages
4    (RecentChanges/UpdatedPages must do themselves)
5
6    UpdatedPages/RecentChanges with UseMod params:
7      - unique=1 every page just once
8      - diffs=1 instead of content
9      - ddiffs=1 to link to diff/ or qdiff/
10 */
11
12 $ewiki_plugins["action"]["rss"] = "ewiki_action_rss";
13 $ewiki_plugins["page"]["RSS"] = "ewiki_action_rss";
14 $ewiki_config["action_links"]["view"]["rss"] = "RSS/Atom";
15
16
17 function ewiki_action_rss($id, &$data, $action)
18 {
19    $list = array();
20    
21    #-- recentchanges as rss
22    if (strtoupper($id) == "RSS") {
23       $res = ewiki_db::GETALL(array("id", "flags", "version", "lastmodified"));
24       $sort = array();
25       while ($data = $res->get(0, 0x0137, EWIKI_DB_F_TEXT)) {
26          $sort[$data["id"]] = $data["lastmodified"];
27       }
28       arsort($sort);
29       $limit = 100;
30       foreach ($sort as $id=>$uu) {
31          $list[] = ewiki_db::GET($id);
32          if ($limit-- < 0) { break; }
33       }
34    }
35    
36    #-- history of current page
37    else {
38       $list[] = $data;
39       for ($v=$data["version"]-1; $v>=1; $v--) {
40          $d = ewiki_db::GET($id, $v);
41          $list[] = $d;
42       }
43    }
44
45    ewiki_feed($list);
46 }
47
48 ?>