Use php:functionString() in the stylesheets where appropriate
[tweeper.git] / rss_converter_dilbert.com.xsl
index a12c44e..b6d1975 100644 (file)
@@ -34,7 +34,8 @@
 <xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl"
-    xsl:extension-element-prefixes="php">
+    xsl:extension-element-prefixes="php"
+    exclude-result-prefixes="php">
 
     <xsl:output method="xml" indent="yes"/>
 
         <xsl:variable name="picture-title" select=".//img[@class='img-responsive img-comic']/@alt"/>
         <item>
             <title>
-                <xsl:value-of select="$picture-title"/>
+                <xsl:variable name="title-length" select="140"/>
+                <!-- ellipsize, inspired from http://stackoverflow.com/questions/13622338 -->
+                <xsl:choose>
+                    <xsl:when test="string-length($picture-title) > $title-length">
+                        <xsl:variable name="truncated-length" select="$title-length - 3"/>
+                        <xsl:value-of select="substring($picture-title, 1, $truncated-length)"/>
+                        <xsl:text>...</xsl:text>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="$picture-title"/>
+                    </xsl:otherwise>
+                </xsl:choose>
             </title>
             <link>
                 <xsl:value-of select="$item-permalink"/>
             </link>
+            <guid>
+                <xsl:value-of select="$item-permalink"/>
+            </guid>
             <pubDate>
-                <xsl:value-of select="php:functionString('Tweeper::str_to_gmdate', normalize-space(.//date))"/>
+                <xsl:value-of select="php:functionString('Tweeper::strToRssDate', normalize-space(.//date))"/>
             </pubDate>
             <description>
                 <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
-                <img src="{$picture-url}" />
+                <img src="{$picture-url}" alt="{$picture-title}"/>
                 <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
             </description>
+            <xsl:if test="$generate-enclosure = 1">
+                <xsl:copy-of select="php:functionString('Tweeper::generateEnclosure', $picture-url)"/>
+            </xsl:if>
         </item>
     </xsl:template>
 
                     <xsl:value-of select="//meta[@property='og:description']/@content"/>
                 </description>
                 <image>
+                    <title>
+                        <xsl:value-of select="$channel-title"/>
+                    </title>
+                    <link>
+                        <xsl:value-of select="$channel-link"/>
+                    </link>
                     <url>
                         <xsl:value-of select="concat($BaseURL, //img[@alt='Dilbert logo']/@src)"/>
                     </url>