65 lines
3.2 KiB
PHP
65 lines
3.2 KiB
PHP
<?php
|
|
header('Content-Type: application/rss+xml; charset=utf-8');
|
|
require_once 'includes/db.php';
|
|
require_once 'includes/functions.php';
|
|
|
|
$site_title = getSetting($pdo, 'site_title');
|
|
$site_description = "The official podcast of " . $site_title;
|
|
$banner_image = getSetting($pdo, 'banner_image');
|
|
|
|
$protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http";
|
|
$host = $_SERVER['HTTP_HOST'];
|
|
$base_url = $protocol . "://" . $host . PROJECT_ROOT_URL;
|
|
|
|
$banner_url = $base_url . "/assets/uploads/images/" . ($banner_image ?: 'default-banner.jpg');
|
|
if ($banner_image === 'default-banner.jpg' || empty($banner_image)) {
|
|
$banner_url = "https://images.unsplash.com/photo-1478737270239-2f02b77fc618?auto=format&fit=crop&q=80&w=1400&h=1400";
|
|
}
|
|
|
|
$stmt = $pdo->query("SELECT * FROM episodes ORDER BY release_date DESC");
|
|
$episodes = $stmt->fetchAll();
|
|
|
|
echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
|
|
?>
|
|
<rss version="2.0"
|
|
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
|
|
xmlns:content="http://purl.org/rss/1.0/modules/content/"
|
|
xmlns:atom="http://www.w3.org/2005/Atom">
|
|
<channel>
|
|
<title><?php echo htmlspecialchars($site_title); ?></title>
|
|
<link><?php echo $base_url; ?>/</link>
|
|
<atom:link href="<?php echo $base_url; ?>/feed.php" rel="self" type="application/rss+xml" />
|
|
<language>en-us</language>
|
|
<itunes:author><?php echo htmlspecialchars($site_title); ?></itunes:author>
|
|
<itunes:summary><?php echo htmlspecialchars($site_description); ?></itunes:summary>
|
|
<description><?php echo htmlspecialchars($site_description); ?></description>
|
|
<itunes:owner>
|
|
<itunes:name><?php echo htmlspecialchars($site_title); ?></itunes:name>
|
|
<itunes:email>admin@example.com</itunes:email>
|
|
</itunes:owner>
|
|
<itunes:image href="<?php echo $banner_url; ?>" />
|
|
<itunes:explicit>no</itunes:explicit>
|
|
<itunes:category text="Religion & Spirituality">
|
|
<itunes:category text="Christianity" />
|
|
</itunes:category>
|
|
|
|
<?php foreach ($episodes as $episode):
|
|
$audio_url = $base_url . "/assets/uploads/audio/" . $episode['audio_file'];
|
|
$file_path = __DIR__ . "/assets/uploads/audio/" . $episode['audio_file'];
|
|
$file_size = file_exists($file_path) ? filesize($file_path) : 0;
|
|
?>
|
|
<item>
|
|
<title><?php echo htmlspecialchars($episode['title']); ?></title>
|
|
<itunes:author><?php echo htmlspecialchars($site_title); ?></itunes:author>
|
|
<itunes:summary><?php echo htmlspecialchars(strip_tags($episode['description'])); ?></itunes:summary>
|
|
<description><![CDATA[<?php echo nl2br(htmlspecialchars($episode['description'])); ?>]]></description>
|
|
<itunes:image href="<?php echo $banner_url; ?>" />
|
|
<enclosure url="<?php echo $audio_url; ?>" length="<?php echo $file_size; ?>" type="audio/mpeg" />
|
|
<guid isPermaLink="false"><?php echo $audio_url; ?></guid>
|
|
<pubDate><?php echo date(DATE_RSS, strtotime($episode['release_date'])); ?></pubDate>
|
|
<itunes:explicit>no</itunes:explicit>
|
|
</item>
|
|
<?php endforeach; ?>
|
|
</channel>
|
|
</rss>
|