Tätä itpro.fi sivustoa varten tehtiin SharePoint 2007: RSS Feed webpartista tiivistetyn version lyhentämällä sen käyttämää XSL -tiedostoa. XSL lyheni tätä käyttöä varten viidesosaan ja näyttää nyt allaolevalta.
Tässä XSL:ssä on muotoiltu alkuperäistä RSS -syötettä poistamalla sisäinen IP osoite URL:eista, jolloin se korvautuu ulkoisella URL:in validoinnissa.
Lisäksi mikli halutaan että sen sijaan että RSS:n osoittama linkki veisi suoraan wiki-artikkeliin eikä vain listan alkioon alkioon (ID=jotain) kannattaa muuttaa Wliki-listan oletusasetuksia.
Eli mennä Wiki -listaan ja sanoa Settings - Document Library Settings - RSS Settings ja vaihtaa asetus Link RSS items directly to their files? asentoon Yes.
Samalla kannattaa asettaa myös RSS -syötteen otskko (Title) haluamakseen sekä harkita haluaako rajoittaa syötteesä näkyvä osa artikkelin rungosta 256 -merkkin, joke tekee syötteestä vähemmän tietoliikennekaistaa kuluttavan, nopemman ja paremmin mobiililaitteille sopivan.
Saisiko tästä vielä jotekin fiksumman tai lyhyemmän?
Voisiko tätä optimoida jotenkin että se toimisi nopeammin?
Käyttäkää hyväksi jos tästä on hyötyä tai apua, tai tehkää siitä fiksumpi :-)
<xsl:param name="rss_FeedLimit">5</xsl:param>
<xsl:param name="rss_ExpandFeed">false</xsl:param>
<xsl:param name="rss_LCID">1033</xsl:param>
<xsl:param name="rss_WebPartID">RSS_Viewer_WebPart</xsl:param>
<xsl:param name="rss_alignValue">left</xsl:param>
<xsl:param name="rss_IsDesignMode">True</xsl:param>
<xsl:template match="rss">
<xsl:call-template name="RSSMainTemplate"/>
</xsl:template>
<xsl:template name="RSSMainTemplate" 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:variable name="Rows" select="channel/item"/>
<xsl:variable name="RowCount" select="count($Rows)"/>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:0px;" width="100%">
<tr style="margin-top:3px;margin-bottom:1px;height:12px;border:0px;" rowspan="1">
<td style="font-family:verdana;font-size:10pt; font-weight : bold;color: #000000; text-decoration:none;text-align:{$rss_alignValue};" width="100%" colspan="2">
<a href="{ddwrt:EnsureAllowedProtocol(substring-after(string(channel/link),'123.123.123.123'))}">
<xsl:value-of select="channel/title"/>
</a>
</td>
</tr>
<xsl:call-template name="RSSMainTemplate.body">
<xsl:with-param name="Rows" select="$Rows"/>
<xsl:with-param name="RowCount" select="count($Rows)"/>
</xsl:call-template>
</table>
</xsl:template>
<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"/>
<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:variable name="jp-link-wo-ip" select="substring-after(string(link),'123.123.123.123')" />
<xsl:if test="($CurPosition <= $rss_FeedLimit)">
<tr style="margin-top:3px;margin-bottom:1px;height:16px;border:3px;" rowspan="1">
<td width="100%" valign="top">
<div >
<a href="{ddwrt:EnsureAllowedProtocol($jp-link-wo-ip)}">
<xsl:value-of select="title"/>.
</a>
</div>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>