misuzu/public/news/feed.php

38 lines
1.1 KiB
PHP

<?php
namespace Misuzu;
require_once '../../misuzu.php';
$feedMode = trim($_SERVER['PATH_INFO'] ?? '', '/');
if(!news_feed_supported($feedMode)) {
echo render_error(400);
return;
}
$categoryId = !empty($_GET['c']) && is_string($_GET['c']) ? (int)$_GET['c'] : 0;
if(!empty($categoryId)) {
$category = news_category_get($categoryId);
if(empty($category)) {
echo render_error(404);
return;
}
}
$posts = news_posts_get(0, 10, $category['category_id'] ?? null, empty($category));
if(!$posts) {
echo render_error(404);
return;
}
header("Content-Type: application/{$feedMode}+xml; charset=utf-8");
echo news_feed($feedMode, $posts, [
'title' => Config::get('site.name', Config::TYPE_STR, 'Misuzu') . ' » ' . ($category['category_name'] ?? 'Featured News'),
'subtitle' => $category['category_description'] ?? 'A live featured news feed.',
'html-url' => empty($category) ? url('news-index') : url('news-category', ['category' => $category['category_id']]),
'feed-url' => empty($category) ? url("news-feed-{$feedMode}") : url("news-category-feed-{$feedMode}", ['category' => $category['category_id']]),
]);