Hallo zusammen,
ich habe auf einer SharePoint-Website (V2013) ein Webpart „RSS-Anzeige“ eingebunden, das auf die Feeds einer Liste anzeigt. Soweit funktioniert das auch. Ich möchte nun gerne definieren wie alt die Einträge maximal sein dürfen, d.h. Feeds, die älter als einen Monat sind sollen nicht mehr angezeigt werden.
Hierzu habe ich mich am XSL-Editor versucht, der unter der Bearbeitung des Webparts „Eigenschafen der Datenansicht“ zu finden ist. Leider ohne Erfolg.
Daher nun meine Frage: Weiß jemand von euch wie man so eine Filter-Funktion mit Datumsberechnung (also spätmöglichstes Datum im betrachteten Bereich) einbaut?
Ich vermute, dass das im RSSMainTemplate.body eingebunden und das pubDate aus dem RSSMainTemplate.description zur Realisierung genutzt werden muss. Hier deshalb der XSL-Teil zum Webpart:
<xsl:template name="RSSMainTemplate.body" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:param name="Rows"/>
<xsl:param name="RowCount"/>
<!-- 2015-08-20 SSc: choose, um Meldung darzustellen, wenn keine RSS-Feeds vorliegen -->
<xsl:choose>
<xsl:when test="$RowCount > 0">
<xsl:for-each select="$Rows">
<xsl:variable name="CurPosition" select="position()" />
<xsl:variable name="RssFeedLink" select="$rss_WebPartID" />
<xsl:variable name="CurrentElement" select="concat($RssFeedLink,$CurPosition)" />
<xsl:if test="($CurPosition <= $rss_FeedLimit)">
<div class="item link-item" >
<a href="{concat("javascript:ToggleItemDescription('",$CurrentElement,"')")}" >
<xsl:value-of select="title"/>
</a>
<xsl:if test="$rss_ExpandFeed = true()">
<xsl:call-template name="RSSMainTemplate.description">
<xsl:with-param name="DescriptionStyle" select="string('display:block;')"/>
<xsl:with-param name="CurrentElement" select="$CurrentElement"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$rss_ExpandFeed = false()">
<xsl:call-template name="RSSMainTemplate.description">
<xsl:with-param name="DescriptionStyle" select="string('display:none;')"/>
<xsl:with-param name="CurrentElement" select="$CurrentElement"/>
</xsl:call-template>
</xsl:if>
</div>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<h5 style="color: #002b7f;">In der letzten Zeit wurden keine neuen Elemente erstellt.</h5>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="RSSMainTemplate.description" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:param name="DescriptionStyle"/>
<xsl:param name="CurrentElement"/>
<div id="{$CurrentElement}" class="description" align="{$rss_alignValue}" style="{$DescriptionStyle} text-align:{$rss_alignValue};">
<xsl:choose>
<!-- some RSS2.0 contain pubDate tag, some others dc:date -->
<xsl:when test="string-length(pubDate) > 0">
<xsl:variable name="pubDateLength" select="string-length(pubDate) - 3" />
<xsl:value-of select="ddwrt:FormatDate(substring(pubDate,0,$pubDateLength),number($rss_LCID),3)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="ddwrt:FormatDate(string(dc:date),number($rss_LCID),3)"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="string-length(description) > 0">
<xsl:variable name="SafeHtml">
<xsl:call-template name="GetSafeHtml">
<xsl:with-param name="Html" select="description"/>
</xsl:call-template>
</xsl:variable>
- <xsl:value-of select="$SafeHtml" disable-output-escaping="yes"/>
</xsl:if>
<div class="description">
<a href="{ddwrt:EnsureAllowedProtocol(string(link))}">Weitere...</a>
</div>
</div>
</xsl:template>
Ich hoffe jemand hat eine Idee zur Lösung meines Problems. Bei Fragen oder Verständnisproblemen gebe ich gerne mehr Infos