]> git.mjollnir.org Git - s9y.git/commitdiff
Add frontend_rss hook to change RSS metadata. Freetag plugin will use this.
authorgarvinhicking <garvinhicking>
Sun, 24 Jul 2005 12:11:14 +0000 (12:11 +0000)
committergarvinhicking <garvinhicking>
Sun, 24 Jul 2005 12:11:14 +0000 (12:11 +0000)
rss.php

diff --git a/rss.php b/rss.php
index d20f909b49ff573d6a4a53d9a971c769f7d2ef3a..55d8f7a6ec9ec393950e829626733dfc5ef6e954 100644 (file)
--- 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':