Alles neu macht der Mai – diesmal sogar schon im April ;-)
Wie ihr evt. schon gesehen habt, haben wir die SharePoint UserGroup komplett neu überarbeitet. Unter anderem gibt's ein neues Layout, mehr Blogging-Funktionalitäten (kommt noch ein seperater Post) und die Startseite wurde mit dynamischen Inhalt gefüllt. Hierfür haben wir uns dem Content Query Webpart bedient und mit ein wenig Customizing kann man da auch ein wenig was machen :)
Um z.B. die letzten Blog Beiträge mit einem Teaser und ein paar Infos wie Ersteller und Datum hinzubekommen
Ist folgendes notwendig:
In der Style Library unter XSL Style Sheets gibt es eine ItemStyle.xsl über diese werden die Styles
befüllt. Dort kann man einfach einen bestehendes xsl:template kopieren und mit ein wenig gespür für XSL kann man allerhand einstellen (ich will euch nicht mit Einzelheiten quälen, daher hier nur der Code unseres Templates)
<xsl:template name="DetailedStyle" match="Row[@Style='DetailedStyle']" mode="itemstyle">
<xsl:variable name="SafeLinkUrl">
<xsl:call-template name="OuterTemplate.GetSafeLink">
<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="SafeImageUrl">
<xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
<xsl:with-param name="UrlColumnName" select="'ImageUrl'"/>
<xsl:variable name="DisplayTitle">
<xsl:call-template name="OuterTemplate.GetTitle">
<xsl:with-param name="Title" select="@Title"/>
<xsl:variable name="LinkTarget">
<xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if>
<xsl:variable name="Author">
<xsl:call-template name="OuterTemplate.GetGroupName">
<xsl:with-param name="GroupName" select="@Author"/>
<xsl:with-param name="GroupType" select="'User'"/>
<xsl:variable name="Created">
<xsl:value-of select="ddwrt:FormatDateTime(string(@Created) ,1033 ,'dd-MM-yyyy')" />
<xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
<a href="{$SafeLinkUrl}" target="{$LinkTarget}" title="{@LinkToolTip}">
<xsl:value-of select="$Created"/> - <xsl:value-of select="$DisplayTitle"/>
</a>
Erstellt von <xsl:value-of select="$Author" />
<xsl:value-of select="substring(@Body, 0, 300)" disable-output-escaping="yes"/>
<a href="{$SafeLinkUrl}" target="{$LinkTarget}" title="Lesen Sie mehr"> ...</a>
<hr/>
</xsl:template>
Damit der angegebene Body nun auch wirklich beim Webpart erscheint, muss man noch etwas tun und zwar den Query-Webpart exportieren, die *.webpart in einem Textpad öffnen und in unserem Fall müssen wir einfach das Property CommonViewFields erweitern:
<property name="CommonViewFields" type="string">Body,Note;</property>
So dann Webpart importieren und das wars dann auch schon.
Ein paar Kleinigkeiten über die man gerne stolpert:
- <xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
<xsl:with-param name="UrlColumnName" select="'LinkUrl'" />
<xsl:variable name="trimmedID1" select="substring-before($SafeLinkUrl, '_')" />
<xsl:variable name="trimmedID2" select="substring-after($trimmedID1, 'Posts/')" />
<xsl:variable name="trimmedID3" select="substring-before($SafeLinkUrl, 'Posts/')" />
<xsl:variable name="newURL" select="concat($trimmedID3,'../','Post.aspx?ID=',$trimmedID2)" />
Für genauere Informationen könnt ihr mich gerne kontaktieren.