From: garvinhicking <garvinhicking> Date: Sun, 24 Jul 2005 12:11:14 +0000 (+0000) Subject: Add frontend_rss hook to change RSS metadata. Freetag plugin will use this. X-Git-Tag: 0.9~292 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=28df542bf064dae08dfd76d70d081932958c3ab6;p=s9y.git Add frontend_rss hook to change RSS metadata. Freetag plugin will use this. --- diff --git a/rss.php b/rss.php index d20f909..55d8f7a 100644 --- a/rss.php +++ b/rss.php @@ -89,8 +89,18 @@ if (!empty($serendipity['GET']['category'])) { } $description = serendipity_utf8_encode(htmlspecialchars($description)); -$fullFeed = false; -$showMail = true; + +$metadata = array( + 'title' => $title, + 'description' => $description, + 'language' => $serendipity['lang'], + 'additional_fields' => $additional_fields, + 'link' => $serendipity['baseURL'], + 'email' => $serendipity['email'], + 'fullFeed' => false, + 'showMail' => showMail, + 'version' => $version +); include_once(S9Y_INCLUDE_PATH . 'include/plugin_api.inc.php'); $plugins = serendipity_plugin_api::enum_plugins(); @@ -100,14 +110,17 @@ if (is_array($plugins)) { foreach ($plugins as $plugin_data) { if (preg_match('|@serendipity_syndication_plugin|', $plugin_data['name'])) { $plugin =& serendipity_plugin_api::load_plugin($plugin_data['name'], $plugin_data['authorid']); - $additional_fields = $plugin->generate_rss_fields($title, $description, $entries); - $fullFeed = $plugin->get_config('fullfeed', false); - $showMail = serendipity_db_bool($plugin->get_config('show_mail', $showMail)); + + $metadata['additional_fields'] = $plugin->generate_rss_fields($metadata['title'], $metadata['description'], $entries); + $metadata['fullFeed'] = $plugin->get_config('fullfeed', false); + $metadata['showMail'] = serendipity_db_bool($plugin->get_config('show_mail', $metadata['showMail'])); break; } } } +serendipity_plugin_api::hook_event('frontend_rss', $metadata); + echo '<?xml version="1.0" encoding="utf-8" ?>'; if (strstr($version, 'atom')) { @@ -120,11 +133,11 @@ case '0.91': print <<<HEAD <rss version="0.91"> <channel> -<title>$title</title> -<link>{$serendipity['baseURL']}</link> -<description>$description</description> -<language>{$serendipity['lang']}</language> -{$additional_fields['image']} +<title>{$metadata['title']}</title> +<link>{$metadata['link']}</link> +<description>{$metadata['description']}</description> +<language>{$metadata['language']}</language> +{$metadata['additional_fields']['image']} HEAD; break; @@ -143,7 +156,7 @@ case '1.0': } if ($showMail) { - $head_mail = "<admin:errorReportsTo rdf:resource=\"mailto:{$serendipity['email']}\" />"; + $head_mail = "<admin:errorReportsTo rdf:resource=\"mailto:{$metadata['email']}\" />"; } else { $head_mail = ''; } @@ -158,20 +171,20 @@ case '1.0': xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns="http://my.netscape.com/rdf/simple/0.9/"> <channel> - <title>$title</title> - <link>{$serendipity['baseURL']}</link> - <description>$description</description> - <dc:language>{$serendipity['lang']}</dc:language> + <title>{$metadata['title']}</title> + <link>{$metadata['link']}</link> + <description>{$metadata['description']}</description> + <dc:language>{$metadata['language']}</dc:language> $head_mail - {$additional_fields['image_rss1.0_channel']} + {$metadata['additional_fields']['image_rss1.0_channel']} <items> <rdf:Seq>{$rdf_seq_li}</rdf:Seq> </items> </channel> -{$additional_fields['image_rss1.0_rdf']} +{$metadata['additional_fields']['image_rss1.0_rdf']} HEAD; break; @@ -185,7 +198,7 @@ case '2.0': } if ($showMail) { - $head_mail = "<admin:errorReportsTo rdf:resource=\"mailto:{$serendipity['email']}\" />"; + $head_mail = "<admin:errorReportsTo rdf:resource=\"mailto:{$metadata['email']}\" />"; } else { $head_mail = ''; } @@ -200,14 +213,14 @@ case '2.0': xmlns:content="http://purl.org/rss/1.0/modules/content/" {$entries['display_dat']}> <channel> - <title>$title</title> - <link>{$serendipity['baseURL']}</link> - <description>$description</description> - <dc:language>{$serendipity['lang']}</dc:language> + <title>{$metadata['title']}</title> + <link>{$metadata['link']}</link> + <description>{$metadata['description']}</description> + <dc:language>{$metadata['language']}</dc:language> $head_mail <generator>Serendipity {$serendipity['version']} - http://www.s9y.org/</generator> - {$additional_fields['channel']} - {$additional_fields['image']} + {$metadata['additional_fields']['channel']} + {$metadata['additional_fields']['image']} HEAD; break; @@ -220,7 +233,7 @@ case 'atom0.3': } if ($showMail) { - $head_mail = "<admin:errorReportsTo rdf:resource=\"mailto:{$serendipity['email']}\" />"; + $head_mail = "<admin:errorReportsTo rdf:resource=\"mailto:{$metadata['email']}\" />"; } else { $head_mail = ''; } @@ -233,15 +246,15 @@ case 'atom0.3': xmlns:admin="http://webns.net/mvcb/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"> - <link href="{$serendipity['baseURL']}rss.php?version=atom0.3" rel="service.feed" title="$title" type="application/x.atom+xml" /> - <link href="{$serendipity['baseURL']}" rel="alternate" title="$title" type="text/html" /> - <link href="{$serendipity['baseURL']}rss.php?version=2.0" rel="alternate" title="$title" type="application/rss+xml" /> - <title mode="escaped" type="text/html">$title</title> - <tagline mode="escaped" type="text/html">$description</tagline> - <id>{$serendipity['baseURL']}</id> + <link href="{$serendipity['baseURL']}rss.php?version=atom0.3" rel="service.feed" title="{$metadata['title']}" type="application/x.atom+xml" /> + <link href="{$serendipity['baseURL']}" rel="alternate" title="{$metadata['title']}" type="text/html" /> + <link href="{$serendipity['baseURL']}rss.php?version=2.0" rel="alternate" title="{$metadata['title']}" type="application/rss+xml" /> + <title mode="escaped" type="text/html">{$metadata['title']}</title> + <tagline mode="escaped" type="text/html">{$metadata['description']}</tagline> + <id>{$metadata['link']}</id> <modified>$modified</modified> <generator url="http://www.s9y.org/" version="{$serendipity['version']}">Serendipity {$serendipity['version']} - http://www.s9y.org/</generator> - <dc:language>{$serendipity['lang']}</dc:language> + <dc:language>{$metadata['language']}</dc:language> $head_mail <info mode="xml" type="text/html"> <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div> @@ -259,7 +272,7 @@ case 'opml1.0': print <<<HEAD <opml version="{$version}"> <head> - <title>$title</title> + <title>{$metadata['title']}</title> <dateModified>$modified</dateModified> <ownerName>Serendipity {$serendipity['version']} - http://www.s9y.org/</ownerName> </head> @@ -272,7 +285,7 @@ default: } unset($entries['display_dat']); // Only needed for headers. -serendipity_printEntries_rss($entries, $version, $comments, $fullFeed, $showMail); +serendipity_printEntries_rss($entries, $version, $comments, $metadata['fullFeed'], $metadata['showMail']); switch ($version) { case '0.91':