summaryrefslogtreecommitdiff
path: root/feed.php
diff options
context:
space:
mode:
Diffstat (limited to 'feed.php')
-rw-r--r--feed.php42
1 files changed, 24 insertions, 18 deletions
diff --git a/feed.php b/feed.php
index bdce666d2..40f9af659 100644
--- a/feed.php
+++ b/feed.php
@@ -15,13 +15,19 @@ require_once(DOKU_INC.'inc/init.php');
//close session
session_write_close();
+//feed disabled?
+if(!actionOK('rss')) {
+ http_status(404);
+ echo '<error>RSS feed is disabled.</error>';
+ exit;
+}
+
// get params
$opt = rss_parseOptions();
// the feed is dynamic - we need a cache for each combo
// (but most people just use the default feed so it's still effective)
-$cache = getCacheName(join('', array_values($opt)).$_SERVER['REMOTE_USER'], '.feed');
-$key = join('', array_values($opt)).$_SERVER['REMOTE_USER'];
+$key = join('', array_values($opt)).'$'.$_SERVER['REMOTE_USER'].'$'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'];
$cache = new cache($key, '.feed');
// prepare cache depends
@@ -135,12 +141,10 @@ function rss_parseOptions() {
$opt['guardmail'] = ($conf['mailguard'] != '' && $conf['mailguard'] != 'none');
- $type = valid_input_set(
- 'type', array(
- 'rss', 'rss2', 'atom', 'atom1', 'rss1',
- 'default' => $conf['rss_type']
- ),
- $_REQUEST
+ $type = $INPUT->valid(
+ 'type',
+ array( 'rss', 'rss2', 'atom', 'atom1', 'rss1'),
+ $conf['rss_type']
);
switch($type) {
case 'rss':
@@ -182,7 +186,7 @@ function rss_parseOptions() {
function rss_buildItems(&$rss, &$data, $opt) {
global $conf;
global $lang;
- /* @var auth_basic $auth */
+ /* @var DokuWiki_Auth_Plugin $auth */
global $auth;
$eventData = array(
@@ -293,18 +297,19 @@ function rss_buildItems(&$rss, &$data, $opt) {
case 'diff':
case 'htmldiff':
if($ditem['media']) {
- $revs = getRevisions($id, 0, 1, 8192, true);
+ $medialog = new MediaChangeLog($id);
+ $revs = $medialog->getRevisions(0, 1);
$rev = $revs[0];
$src_r = '';
$src_l = '';
if($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)), 300)) {
- $more = 'w='.$size[0].'&h='.$size[1].'t='.@filemtime(mediaFN($id));
- $src_r = ml($id, $more);
+ $more = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id));
+ $src_r = ml($id, $more, true, '&amp;', true);
}
if($rev && $size = media_image_preview_size($id, $rev, new JpegMeta(mediaFN($id, $rev)), 300)) {
$more = 'rev='.$rev.'&w='.$size[0].'&h='.$size[1];
- $src_l = ml($id, $more);
+ $src_l = ml($id, $more, true, '&amp;', true);
}
$content = '';
if($src_r) {
@@ -318,7 +323,8 @@ function rss_buildItems(&$rss, &$data, $opt) {
} else {
require_once(DOKU_INC.'inc/DifferenceEngine.php');
- $revs = getRevisions($id, 0, 1);
+ $pagelog = new PageChangeLog($id);
+ $revs = $pagelog->getRevisions(0, 1);
$rev = $revs[0];
if($rev) {
@@ -347,8 +353,8 @@ function rss_buildItems(&$rss, &$data, $opt) {
case 'html':
if($ditem['media']) {
if($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)))) {
- $more = 'w='.$size[0].'&h='.$size[1].'t='.@filemtime(mediaFN($id));
- $src = ml($id, $more);
+ $more = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id));
+ $src = ml($id, $more, true, '&amp;', true);
$content = '<img src="'.$src.'" alt="'.$id.'" />';
} else {
$content = '';
@@ -378,8 +384,8 @@ function rss_buildItems(&$rss, &$data, $opt) {
default:
if($ditem['media']) {
if($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)))) {
- $more = 'w='.$size[0].'&h='.$size[1].'t='.@filemtime(mediaFN($id));
- $src = ml($id, $more);
+ $more = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id));
+ $src = ml($id, $more, true, '&amp;', true);
$content = '<img src="'.$src.'" alt="'.$id.'" />';
} else {
$content = '';