aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Lange <code@nerdmind.de>2021-07-10 21:47:06 +0200
committerThomas Lange <code@nerdmind.de>2021-07-10 21:47:06 +0200
commitd01543286e4c0d139b86518c3435faa558637b33 (patch)
tree2173c419489fbce19d30848d84f5a3cbe9264c6b
parentaff41035187c2083732c692edf461c4c514fc40f (diff)
downloadblog-d01543286e4c0d139b86518c3435faa558637b33.tar.gz
blog-d01543286e4c0d139b86518c3435faa558637b33.tar.xz
blog-d01543286e4c0d139b86518c3435faa558637b33.zip
Remove pages from the RSS feed (readme)
This commit removes the pages from the RSS feed. I decided so because a page is a "timeless" object intended for things like the imprint, about page, privacy policy and similar stuff. It also makes things easier. The new primary feed URL is "/feed/" and shows only posts. The page feed ("/feed/page/") has been removed and will throw a 404 Not Found error. The visitors who already subscribed to the old post feed ("/feed/post/") are automatically 301-redirected to the new location ("/feed/"). The following system language variables have been removed: * feed_name_items * feed_name_pages * feed_name_posts The following configuration options have been removed: * PAGE.FEED_SIZE * PAGE.FEED_SORT * PAGE.FEED_GUID Furthermore, the template file "feed/item_post.php" has been renamed to "feed/item.php" since there is now only one type of feed item. If the system cannot find the "feed/item.php", it tries "feed/item_post.php" instead (for backward compatibility with older themes).
-rw-r--r--core/application.php3
-rw-r--r--core/functions.php3
-rw-r--r--core/include/feed/main.php64
-rw-r--r--core/language/de.php7
-rw-r--r--core/language/en.php7
-rw-r--r--index.php9
-rw-r--r--theme/default/html/feed/item.php (renamed from theme/default/html/feed/item_post.php)0
-rw-r--r--theme/default/html/feed/item_page.php27
-rw-r--r--theme/default/html/feed/main.php32
-rw-r--r--theme/default/html/home.php3
-rw-r--r--theme/default/html/main.php5
-rw-r--r--theme/default/html/page/list.php2
-rw-r--r--theme/default/html/post/list.php2
-rw-r--r--theme/default/lang/de.php5
-rw-r--r--theme/default/lang/en.php5
15 files changed, 52 insertions, 122 deletions
diff --git a/core/application.php b/core/application.php
index 5d2b1f4..7ddf6a0 100644
--- a/core/application.php
+++ b/core/application.php
@@ -79,7 +79,6 @@ foreach([
'PAGE.LIST_SIZE' => 10,
'POST.LIST_SIZE' => 10,
'USER.LIST_SIZE' => 10,
- 'PAGE.FEED_SIZE' => 25,
'POST.FEED_SIZE' => 25,
'CATEGORY.DESCRIPTION_SIZE' => 200,
'PAGE.DESCRIPTION_SIZE' => 200,
@@ -93,9 +92,7 @@ foreach([
'PAGE.LIST_SORT' => 'time_insert DESC',
'POST.LIST_SORT' => 'time_insert DESC',
'USER.LIST_SORT' => 'time_insert DESC',
- 'PAGE.FEED_SORT' => 'time_insert DESC',
'POST.FEED_SORT' => 'time_insert DESC',
- 'PAGE.FEED_GUID' => ['id', 'time_insert'],
'POST.FEED_GUID' => ['id', 'time_insert']
] as $name => $value) {
Application::set($name, $value);
diff --git a/core/functions.php b/core/functions.php
index 8a46b5b..03b3ae5 100644
--- a/core/functions.php
+++ b/core/functions.php
@@ -142,9 +142,6 @@ function generateCategoryDataTree(array $category_data, $root = 0): array {
#===============================================================================
function generatePseudoGUID(EntityInterface $Entity) {
switch(get_class($Entity)) {
- case "ORM\Entities\Page":
- $attr = Application::get('PAGE.FEED_GUID');
- break;
case "ORM\Entities\Post":
$attr = Application::get('POST.FEED_GUID');
break;
diff --git a/core/include/feed/main.php b/core/include/feed/main.php
index 637c54b..cbabb2c 100644
--- a/core/include/feed/main.php
+++ b/core/include/feed/main.php
@@ -1,56 +1,40 @@
<?php
#===============================================================================
+# HEADER: Content-Type for XML document
+#===============================================================================
+HTTP::responseHeader(HTTP::HEADER_CONTENT_TYPE, HTTP::CONTENT_TYPE_XML);
+
+#===============================================================================
# Get repositories
#===============================================================================
+$PostRepository = Application::getRepository('Post');
$UserRepository = Application::getRepository('User');
#===============================================================================
-# HEADER: Content-Type for XML document
+# Get list of posts to show in the feed
#===============================================================================
-HTTP::responseHeader(HTTP::HEADER_CONTENT_TYPE, HTTP::CONTENT_TYPE_XML);
+$posts = $PostRepository->getPaginated(
+ Application::get('POST.FEED_SORT'),
+ Application::get('POST.FEED_SIZE')
+);
#===============================================================================
-# Post feed
+# Build item templates
#===============================================================================
-if(!isset($param) OR $param !== 'page') {
- $PostRepository = Application::getRepository('Post');
-
- $posts = $PostRepository->getPaginated(
- Application::get('POST.FEED_SORT'),
- Application::get('POST.FEED_SIZE')
- );
-
- foreach($posts as $Post) {
- $User = $UserRepository->find($Post->get('user'));
+foreach($posts as $Post) {
+ $User = $UserRepository->find($Post->get('user'));
+ try {
+ $ItemTemplate = Template\Factory::build('feed/item');
+ } catch(Template\Exception $Exception) {
+ # Backward compatibility if feed/item.php does not exist.
$ItemTemplate = Template\Factory::build('feed/item_post');
- $ItemTemplate->set('POST', generateItemTemplateData($Post));
- $ItemTemplate->set('USER', generateItemTemplateData($User));
-
- $post_templates[] = $ItemTemplate;
}
-}
-
-#===============================================================================
-# Page feed
-#===============================================================================
-if(!isset($param) OR $param !== 'post') {
- $PageRepository = Application::getRepository('Page');
-
- $pages = $PageRepository->getPaginated(
- Application::get('PAGE.FEED_SORT'),
- Application::get('PAGE.FEED_SIZE')
- );
- foreach($pages as $Page) {
- $User = $UserRepository->find($Page->get('user'));
+ $ItemTemplate->set('POST', generateItemTemplateData($Post));
+ $ItemTemplate->set('USER', generateItemTemplateData($User));
- $ItemTemplate = Template\Factory::build('feed/item_page');
- $ItemTemplate->set('PAGE', generateItemTemplateData($Page));
- $ItemTemplate->set('USER', generateItemTemplateData($User));
-
- $page_templates[] = $ItemTemplate;
- }
+ $templates[] = $ItemTemplate;
}
#===============================================================================
@@ -58,10 +42,10 @@ if(!isset($param) OR $param !== 'post') {
#===============================================================================
$FeedTemplate = Template\Factory::build('feed/main');
$FeedTemplate->set('FEED', [
- 'TYPE' => $param ?? NULL,
+ 'TYPE' => 'post',
'LIST' => [
- 'POSTS' => $post_templates ?? [],
- 'PAGES' => $page_templates ?? [],
+ 'POSTS' => $templates ?? [],
+ 'PAGES' => [],
]
]);
diff --git a/core/language/de.php b/core/language/de.php
index a525218..4eecfe5 100644
--- a/core/language/de.php
+++ b/core/language/de.php
@@ -214,10 +214,3 @@ $LANGUAGE['title_user_overview'] = "{$LANGUAGE['user_overview']} [%d]";
#===============================================================================
$LANGUAGE['title_search_request'] = 'Volltextsuche';
$LANGUAGE['title_search_results'] = 'Ergebnisse für "%s"';
-
-#===============================================================================
-# Feed names
-#===============================================================================
-$LANGUAGE['feed_name_items'] = '%s [alle Inhalte]';
-$LANGUAGE['feed_name_pages'] = '%s [nur Seiten]';
-$LANGUAGE['feed_name_posts'] = '%s [nur Beiträge]';
diff --git a/core/language/en.php b/core/language/en.php
index 29e330a..66bcaf3 100644
--- a/core/language/en.php
+++ b/core/language/en.php
@@ -214,10 +214,3 @@ $LANGUAGE['title_user_overview'] = "{$LANGUAGE['user_overview']} [%d]";
#===============================================================================
$LANGUAGE['title_search_request'] = 'Fulltext search';
$LANGUAGE['title_search_results'] = 'Results for "%s"';
-
-#===============================================================================
-# Feed names
-#===============================================================================
-$LANGUAGE['feed_name_items'] = '%s [all content]';
-$LANGUAGE['feed_name_pages'] = '%s [only pages]';
-$LANGUAGE['feed_name_posts'] = '%s [only posts]';
diff --git a/index.php b/index.php
index 977ed35..8f6743b 100644
--- a/index.php
+++ b/index.php
@@ -54,7 +54,7 @@ Router::add('', function() {
#===============================================================================
# ROUTE: Feed
#===============================================================================
-Router::add('feed/(?:(page|post)/)?', function($param = NULL) {
+Router::add('feed/', function() {
require 'core/include/feed/main.php';
});
@@ -68,7 +68,7 @@ Router::add('search/', function() {
#===============================================================================
# REDIRECT: Feed (trailing slash)
#===============================================================================
-Router::addRedirect('feed(/(?:page|post))?', Application::getURL('feed$1/'));
+Router::addRedirect('feed', Application::getURL('feed/'));
#===============================================================================
# REDIRECT: Search (trailing slash)
@@ -81,6 +81,11 @@ Router::addRedirect('search', Application::getURL('search/'));
Router::addRedirect('favicon.ico', Application::getTemplateURL('rsrc/favicon.ico'));
#===============================================================================
+# BACKWARD COMPATIBILITY: Redirect to the new post feed URL
+#===============================================================================
+Router::addRedirect('feed/post/', Application::getURL('feed/'), 301);
+
+#===============================================================================
# Execute router and route requests
#===============================================================================
Router::execute(parse_url(HTTP::requestURI(), PHP_URL_PATH));
diff --git a/theme/default/html/feed/item_post.php b/theme/default/html/feed/item.php
index 0bf23fc..0bf23fc 100644
--- a/theme/default/html/feed/item_post.php
+++ b/theme/default/html/feed/item.php
diff --git a/theme/default/html/feed/item_page.php b/theme/default/html/feed/item_page.php
deleted file mode 100644
index 82568a1..0000000
--- a/theme/default/html/feed/item_page.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
-# Feed Item Template [page] [Thomas Lange <code@nerdmind.de>] #
-#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
-# #
-# [see documentation] #
-# #
-#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
-
-$HTML = $PAGE['BODY']['HTML']();
-?>
-<item>
- <title><?=escapeHTML($PAGE['ATTR']['NAME'])?></title>
- <link><?=$PAGE['URL']?></link>
- <guid isPermaLink="false"><?=$PAGE['GUID']?></guid>
- <pubDate><?=parseDatetime($PAGE['ATTR']['TIME_INSERT'], '[RFC2822]')?></pubDate>
- <dc:creator><?=escapeHTML($USER['ATTR']['FULLNAME'])?></dc:creator>
- <description><?=escapeHTML(description($HTML, 400))?></description>
- <content:encoded>
- <![CDATA[
- <?=$HTML?>
- ]]>
- </content:encoded>
- <?php foreach($PAGE['FILE']['LIST'] as $fileURL): ?>
- <media:content url="<?=$fileURL?>" medium="image"></media:content>
- <?php endforeach; ?>
-</item>
diff --git a/theme/default/html/feed/main.php b/theme/default/html/feed/main.php
index 317bd31..bdd0a48 100644
--- a/theme/default/html/feed/main.php
+++ b/theme/default/html/feed/main.php
@@ -7,24 +7,12 @@
# #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
-$BLOGMETA_NAME = escapeHTML($BLOGMETA['NAME']);
-
-switch($FEED['TYPE']) {
- case 'post':
- $title = $Language->text('feed_name_posts', $BLOGMETA_NAME);
- $self = Application::getURL('feed/post/');
- break;
- case 'page':
- $title = $Language->text('feed_name_pages', $BLOGMETA_NAME);
- $self = Application::getURL('feed/page/');
- break;
- default:
- $title = $Language->text('feed_name_items', $BLOGMETA_NAME);
- $self = Application::getURL('feed/');
-}
+$title = escapeHTML($BLOGMETA['NAME']);
+$self = Application::getURL('feed/');
?>
<?='<?xml version="1.0" encoding="UTF-8" ?>'?>
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/">
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title><?=$title?></title>
<link><?=Application::getURL()?></link>
@@ -39,14 +27,8 @@ switch($FEED['TYPE']) {
<link><?=Application::getURL()?></link>
</image>
- <!-- Feed items of type "post" -->
- <?php foreach($FEED['LIST']['POSTS'] as $item): ?>
- <?php echo $item ?>
- <?php endforeach; ?>
-
- <!-- Feed items of type "page" -->
- <?php foreach($FEED['LIST']['PAGES'] as $item): ?>
- <?php echo $item ?>
- <?php endforeach; ?>
+ <?php foreach($FEED['LIST']['POSTS'] as $post): ?>
+ <?php echo $post ?>
+ <?php endforeach ?>
</channel>
</rss>
diff --git a/theme/default/html/home.php b/theme/default/html/home.php
index b412f22..22406e8 100644
--- a/theme/default/html/home.php
+++ b/theme/default/html/home.php
@@ -7,7 +7,7 @@
# #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
?>
-<h1><i class="fa fa-home"></i><?=$Language->text('home_heading_text', escapeHTML(Application::get('BLOGMETA.NAME')))?><span class="head-link brackets"><i class="fa fa-rss"></i><a href="<?=Application::getURL('feed/')?>" title="<?=$Language->text('feed_name_items', escapeHTML($BLOGMETA['NAME']))?>">Feed</a></span></h1>
+<h1><i class="fa fa-home"></i><?=$Language->text('home_heading_text', escapeHTML(Application::get('BLOGMETA.NAME')))?><span class="head-link brackets"><i class="fa fa-rss"></i><a href="<?=Application::getURL('feed/')?>" title="<?=$Language->text('feed_subscribe')?>">Feed</a></span></h1>
<p><?=$Language->text('home_heading_desc', Application::get('POST.LIST_SIZE'))?></p>
<div class="item-container post">
@@ -17,4 +17,3 @@
</div>
<?=$PAGINATION['HTML']?>
-
diff --git a/theme/default/html/main.php b/theme/default/html/main.php
index 5a067ef..18d5d40 100644
--- a/theme/default/html/main.php
+++ b/theme/default/html/main.php
@@ -42,10 +42,7 @@ $BLOGMETA_DESC = escapeHTML($BLOGMETA['DESC']);
<link rel="icon" href="<?=Application::getTemplateURL('rsrc/favicon.ico')?>" />
<link rel="stylesheet" href="<?=Application::getTemplateURL('rsrc/css/main.css')?>" title="<?=$BLOGMETA_NAME?>" />
-
- <link rel="alternate" type="application/rss+xml" title="<?=$Language->text('feed_name_items', $BLOGMETA_NAME)?>" href="<?=Application::getURL('feed/')?>" />
- <link rel="alternate" type="application/rss+xml" title="<?=$Language->text('feed_name_posts', $BLOGMETA_NAME)?>" href="<?=Application::getURL('feed/post/')?>" />
- <link rel="alternate" type="application/rss+xml" title="<?=$Language->text('feed_name_pages', $BLOGMETA_NAME)?>" href="<?=Application::getURL('feed/page/')?>" />
+ <link rel="alternate" type="application/rss+xml" title="<?=$BLOGMETA_NAME?>" href="<?=Application::getURL('feed/')?>" />
<script defer src="<?=Application::getTemplateURL('rsrc/main.js')?>"></script>
diff --git a/theme/default/html/page/list.php b/theme/default/html/page/list.php
index 665301e..46a0a09 100644
--- a/theme/default/html/page/list.php
+++ b/theme/default/html/page/list.php
@@ -7,7 +7,7 @@
# #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
?>
-<h1><i class="fa fa-file-text-o"></i><?=$Language->text('page_overview')?><span class="head-link brackets"><i class="fa fa-rss"></i><a href="<?=Application::getURL('feed/page/')?>" title="<?=$Language->text('feed_name_pages', escapeHTML($BLOGMETA['NAME']))?>">Feed</a></span></h1>
+<h1><i class="fa fa-file-text-o"></i><?=$Language->text('page_overview')?></h1>
<p><?=$Language->text('page_overview_heading_desc', $PAGINATION['THIS'])?></p>
<div class="item-container page">
diff --git a/theme/default/html/post/list.php b/theme/default/html/post/list.php
index 37fca86..fa063bb 100644
--- a/theme/default/html/post/list.php
+++ b/theme/default/html/post/list.php
@@ -7,7 +7,7 @@
# #
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#
?>
-<h1><i class="fa fa-newspaper-o"></i><?=$Language->text('post_overview')?><span class="head-link brackets"><i class="fa fa-rss"></i><a href="<?=Application::getURL('feed/post/')?>" title="<?=$Language->text('feed_name_posts', escapeHTML($BLOGMETA['NAME']))?>">Feed</a></span></h1>
+<h1><i class="fa fa-newspaper-o"></i><?=$Language->text('post_overview')?><span class="head-link brackets"><i class="fa fa-rss"></i><a href="<?=Application::getURL('feed/')?>" title="<?=$Language->text('feed_subscribe')?>">Feed</a></span></h1>
<p><?=$Language->text('post_overview_heading_desc', $PAGINATION['THIS'])?></p>
<div class="item-container post">
diff --git a/theme/default/lang/de.php b/theme/default/lang/de.php
index ed42393..af855ac 100644
--- a/theme/default/lang/de.php
+++ b/theme/default/lang/de.php
@@ -67,6 +67,11 @@ $LANGUAGE['category_empty'] = 'Diese Kategorie ist leer. Es wurden noch keine Be
$LANGUAGE['search_form_placeholder'] = 'Suchbegriff eingeben …';
#===============================================================================
+# Feed
+#===============================================================================
+$LANGUAGE['feed_subscribe'] = 'Feed abonnieren';
+
+#===============================================================================
# Error 403
#===============================================================================
$LANGUAGE['403_heading_text'] = 'Zugriff verweigert';
diff --git a/theme/default/lang/en.php b/theme/default/lang/en.php
index 62bb798..ee4ad58 100644
--- a/theme/default/lang/en.php
+++ b/theme/default/lang/en.php
@@ -67,6 +67,11 @@ $LANGUAGE['category_empty'] = 'This category is empty. There are no published po
$LANGUAGE['search_form_placeholder'] = 'Enter search term …';
#===============================================================================
+# Feed
+#===============================================================================
+$LANGUAGE['feed_subscribe'] = 'Subscribe feed';
+
+#===============================================================================
# Error 403
#===============================================================================
$LANGUAGE['403_heading_text'] = 'Access denied';