summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrdalverny <rdalverny@gmail.com>2022-01-22 22:01:35 +0100
committerrdalverny <rdalverny@gmail.com>2022-01-22 22:01:35 +0100
commitde96fb60de756862d740722886412bdb3f070d96 (patch)
treea4eda70a9fa99b3b3590bdd0a26f5e46aebb2110
parent51f914b95d165e0567654cac1e3dd48b29ce4177 (diff)
downloadplanet-de96fb60de756862d740722886412bdb3f070d96.tar
planet-de96fb60de756862d740722886412bdb3f070d96.tar.gz
planet-de96fb60de756862d740722886412bdb3f070d96.tar.bz2
planet-de96fb60de756862d740722886412bdb3f070d96.tar.xz
planet-de96fb60de756862d740722886412bdb3f070d96.zip
Also cache Atom feed
-rwxr-xr-xpublic/admin/subscriptions.php4
-rw-r--r--public/feed/index.php26
-rwxr-xr-xpublic/index.php1
3 files changed, 20 insertions, 11 deletions
diff --git a/public/admin/subscriptions.php b/public/admin/subscriptions.php
index 236ac46..a46260e 100755
--- a/public/admin/subscriptions.php
+++ b/public/admin/subscriptions.php
@@ -24,7 +24,7 @@ if (isset($_POST['upload']) &&
OpmlManager::save($newOpml, $opmlFile);
Cache::setStore($PlanetConfig->getCacheDir() . '/');
- Cache::prune("html");
+ Cache::prune('html');
} elseif (isset($_POST['opml']) || isset($_POST['add'])) {
// Load old OPML
$oldOpml = OpmlManager::load($opmlFile);
@@ -84,7 +84,7 @@ if (isset($_POST['upload']) &&
OpmlManager::save($newOpml, $opmlFile);
Cache::setStore($PlanetConfig->getCacheDir() . '/');
- Cache::prune("html");
+ Cache::prune('html');
}
header("Location: index.php");
die();
diff --git a/public/feed/index.php b/public/feed/index.php
index 90ce907..718b14c 100644
--- a/public/feed/index.php
+++ b/public/feed/index.php
@@ -1,6 +1,5 @@
<?php
require_once '../../app/app.php';
-require_once '../../app/classes/Cache.php';
if ($Planet->loadOpml($PlanetConfig->getOpmlFile()) == 0) {
header('Content-Type: text/xml; charset=utf-8');
@@ -8,13 +7,20 @@ if ($Planet->loadOpml($PlanetConfig->getOpmlFile()) == 0) {
exit;
}
-$Planet->loadFeeds();
-$items = $Planet->getItems();
-$limit = $PlanetConfig->getMaxDisplay();
-$count = 0;
+$cache_duration = $PlanetConfig->getOutputTimeout();
+Cache::$enabled = ($cache_duration > 0);
+Cache::setStore($PlanetConfig->getCacheDir() . '/');
-header('Content-Type: text/xml; charset=UTF-8');
-echo '<?xml version="1.0" encoding="UTF-8" ?>';
+
+if (!OutputCache::Start('html', 'atomfeed', $cache_duration)) {
+ $items = $Planet->getFeedsItems();
+ $limit = $PlanetConfig->getMaxDisplay();
+ $count = 0;
+
+ $updatedAt = date_format(date_create('now', new DateTimeZone('UTC')), DateTimeInterface::ATOM);
+
+ header('Content-Type: text/xml; charset=UTF-8');
+ echo '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><?=htmlspecialchars($PlanetConfig->getName())?></title>
@@ -22,7 +28,7 @@ echo '<?xml version="1.0" encoding="UTF-8" ?>';
<id><?=$PlanetConfig->getUrl()?></id>
<link rel="self" type="application/atom+xml" href="<?=$PlanetConfig->getUrl()?>feed/" />
<link rel="alternate" type="text/html" href="<?=$PlanetConfig->getUrl()?>" />
- <updated><?=gmdate('Y-m-d\TH:i:s\Z')?></updated>
+ <updated><?=$updatedAt?></updated>
<author><name><?=htmlspecialchars($PlanetConfig->getName())?></name></author>
<?php $count = 0; ?>
<?php foreach ($items as $item) : ?>
@@ -41,3 +47,7 @@ echo '<?xml version="1.0" encoding="UTF-8" ?>';
<?php endforeach; ?>
</feed>
+<?php
+ OutputCache::End();
+}
+?>
diff --git a/public/index.php b/public/index.php
index 0a0de38..be28bed 100755
--- a/public/index.php
+++ b/public/index.php
@@ -1,6 +1,5 @@
<?php
require_once '../app/app.php';
-require_once '../app/classes/Cache.php';
if (!$PlanetConfig::isInstalled()) {
die('<p>' . _g('You might want to <a href="install.php">install moonmoon</a>.') . '</p>');