Im nachfolgenden Blog-Artikel beschreibe ich wie ein Webpart für Inhaltsabfragen (Content Query Webpart) benutzerdefiniert angepasst werden kann.
Das Beispiel zeigt die neusten Nachrichten auf der Startseite einer SiteCollection an. Es sollen das Erscheinungsdatum und der Titel der fünf neusten Nachrichten angezeigt werden, zusätzlich soll der Titel auf die angekündigte "Nachrichtenseite" verlinken.
Wir gehen von folgender Struktur aus:
Im ersten Schritt bewegen wir uns auf die Starseite der SubWebsite Nachrichten um später anzuzeigenden Inhalt für den WebPart zu erzeugen.
Über Websiteaktionen à Seite erstellen wird nun eine neue Seite (Nachricht) mit dem gewünschten Seitenlayout erstellt.
Sinnvollerweise sollte eine "Nachrichtenseite" immer ein Datum, einen Titel und einen Text enthalten.
In diesem Fall habe ich den Websiteinhaltstyp Homepage um die Spalten Nachrichtendatum und Seitentitel erweitert und in meinem Pagelayout hinterlegt.
Wenn die neue Seite erstellt und mit Beispieltext gefüllt wurde können wir diese wie gewohnt veröffentlichen.
Im nächsten Schritt bewegen wir uns nun auf die Startseite der SiteCollection. Über Websiteaktionen à Seite bearbeiten wird nun der ein Webpart für Inhaltsabfragen einer WebPartZone hinzugefügt.
Über bearbeiten à Freigegebenes WebPart bearbeiten nehmen wir nun schon ein paar Voreinstellungen vor:
Abfrage
- wähle den Punkt: "Elemente aus folgender Liste anzeigen" und wähle "Durchsuchen"
- navigiere zu folgender Bibliothek
- Listentyp wähle "Bibliothek für Seiten"
Präsentation
- wähle bei "Elemente sortieren nach" die Spalte Nachrichtendatum und "Elemente in absteigender Reihenfolge anzeigen"
- wähle bei "Eintragsgrenze" 5
Darstellung
- ersetzte den "Titel" WebPart für Inhaltsabfragen gegen Neue Nachrichten
- wähle bei "Chrmotyp" nur Titel
Alles mit OK bestätigen.
Über bearbeiten à Exportieren wird der WebPart nun mit den Voreinstellungen exportiert und zum Bearbeiten geöffnet.
Die Zeile <property name="CommonViewFields" type="string" /> erweitere ich meine später anzuzeigenden Websitespalten.
Für das Beispiel sind nun folgende Spalten von Bedeutung:
Nachrichtendatum (NewsDate) vom Typ "Datum und Uhrzeit"
Seitentitel (PageTitle) vom Typ "Eine Textzeile"
Die Zeile sollte nun so aussehen:
<property name="CommonViewFields" type="string">PageTitle,Text;NewsDate,Date;</property>
Anschließend kann die Änderung gespeichert und der Webpart in den Webpartkatalog der SiteCollection hochgeladen werden.
Jetzt bewegen wir uns zum ersten Mal in den SharePoint Designer (SPD).
Hier öffnen wir die Datei ItemStyle.xsl – diese befindet sich im Ordner Style Library/XSL Style Sheets –
Über diese Datei legen wir eine bestimmte Darstellungsform fest, diese wird später im WebPart ausgewählt.
In der Datei befinden sich verschiedene sogenannte "Templates" und hier werden wir auch unseres hinzufügen:
<xsl:template name="Nachrichten" match="Row[@Style='Nachrichten']" mode="itemstyle"> (Der Name beschreibt die Bezeichnung der Darstellungsform)
<div id="linkitem" class="ItemActually">
<table class="PageTitle" cellpadding="0" cellspacing="0">
<tr>
<td>
<div class="Date">
<xsl:value-of select="ddwrt:FormatDate(string(@NewsDate) ,1031 ,1)"/> (Mit "select" wird die jeweils gewünschte Websitespalte ausgelesen, in diesem Fall "NewsDate". Weiterhin wird die Darstellung des Datums festgelegt.)
</div>
<span class="PageTitle" style="display:inline">
<xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
<a href="/{@FileRef}">
<xsl:value-of select="@PageTitle" /> (Wie vorangegangen wird auch hier eine Websitespalte ausgelesen: "PageTitle", zusätzlich wird noch der Link zum jeweiligen Listeneintrag gesetzt.)
</a>
</span>
</td>
</tr>
</table>
<div style="clear:both;"></div>
</div>
</xsl:template>
Ganz oben im <xsl:stylesheet> fügen wir noch folgenden Präfix hinzu:
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
Nach diesen Einstellungen kann das Dokument gespeichert und wieder eingecheckt werden.
Anschließend gehen wir zurück auf die Startseite der SiteCollection, dort wo wir auch die Nachrichten anzeigen wollen und entfernen den zuvor eingefügten WebPart wieder.
Dann fügen wir den von uns hochgeladenen WebPart aus dem Webpartkatalog hinzu und wählen bearbeiten à Freigegebenes WebPart bearbeiten.
Unter "Format für Elemente" muss noch "Nachrichten" ausgewählt werden und schon werden alle Nachrichten angezeigt.
Alle weiteren Design-Anpassungen können nun nach Wunsch erfolgen.