Freigeben über


Gewusst wie: Anpassen der XSL für das Inhalt-nach-Abfrage-Webpart

Letzte Änderung: Montag, 27. September 2010

Gilt für: SharePoint Server 2010

Mithilfe des Inhalt-nach-Abfrage-Webparts können Sie Inhalte aus mehreren Datenquellen innerhalb der Website zusammenfassen und dann gesammelt an einer Stelle präsentieren. Vor dem Konfigurieren und Anpassen des Inhalt-nach-Abfrage-Webparts sollten Sie sich Gedanken über das gewünschte Branding und Websitedesign machen. Microsoft SharePoint Server 2010 umfasst drei XSL-Dateien (Extensible Style Language), die Sie bearbeiten können, um Felder in den Formaten zu rendern, die vom Inhalt-nach-Abfrage-Webpart zur Anzeige der gesammelten Inhalte verwendet werden.

In diesem Thema werden die drei XSL-Dateien aufgeführt, die vom Inhalt-nach-Abfrage-Webpart verwendet werden, und ihre Funktionsweise beschrieben. Darüber hinaus werden die Vorlagen und Variablen aufgelistet, die Sie bearbeiten können, und beschrieben, wie die Dateien so geändert werden können, dass Daten vom Inhalt-nach-Abfrage-Webpart mit der von Ihnen gewünschten Optik bzw. dem gewünschten Verhalten zurückgegeben werden.

In der folgenden Tabelle werden die drei XSL-Dateien für das Inhalt-nach-Abfrage-Webpart aufgeführt und beschrieben.

Datei

Speicherort

Beschreibung

ContentQueryMain.xsl

\Style Library\XSL Style Sheets\ContentQueryMain.xsl

  • Enthält Logik, die die entsprechenden Aufrufe der Vorlagen Header und Item für jedes Element generiert.

  • Enthält Funktionen, die Entwicklern bei der Änderung der XSLT-Transformationen von Item und Header helfen.

  • Empfängt den gesamten Inhalt, analysiert ihn und sendet entsprechende Teile zurück an die Vorlagen ItemStyle und Header.

  • Verwaltet die Struktur des Inhalt-nach-Abfrage-Webparts.

  • Speichert abgerufene Daten, wenn Inhalte im Pfad /dsQueryResponse/Rows/Row abgerufen werden.

ItemStyle.xsl

\Style Library\XSL Style Sheets\ItemStyle.xsl

Enthält Vorlagen, in denen die Anzeige eines Elements definiert wird. Diese Vorlagen empfangen und verarbeiten jeweils eine Datenzeile und stellen dabei sicher, dass das Format und die Daten in den Elementzeilen konsistent sind.

Sie können Daten zu einer Zeile mithilfe der @Property-Direktive abrufen.

Header.xsl

\Style Library\XSL Style Sheets\Header.xsl

Enthält Vorlagen, die die Anzeige einer Kopfzeile definieren und die Konsistenz von Gruppenköpfen sicherstellen.

In Header.xsl angegebene Vorlagen erhalten die nächste zu verarbeitende Elementzeile. Dies ist in der Regel die erste Zeile in einer Gruppe, es sei denn, es sind mehrere Spalten vorhanden. Bei mehreren Spalten erhalten die Vorlagen die erste Zeile der Spalte.

Sie können Daten zur nächsten Elementzeile mithilfe der @Property-Direktive abrufen. Sie können die Parameter $Group, der den Spaltennamen groupby enthält, und $GroupType, der den Spaltentyp der groupby-Spalte darstellt, verwenden.

Standardmäßig sind die folgenden Vorlagen in den Dateien ItemStyle.xsl und Header.xsl enthalten. Die Datei Header.xsl enthält Formatdefinitionen der Gruppe, während die Datei ItemStyle.xsl Definitionen enthält, die für Zeilenelemente im Inhalt-nach-Abfrage-Webpart gelten. Diese Formate entsprechen den Optionen, die in den Dropdownlisten Gruppe und Format für Elemente verfügbar sind, die angezeigt werden, wenn Sie Formate in der Formatbibliothek auswählen.

HinweisHinweis

In den folgenden Tabellen werden Vorlagen in der Reihenfolge aufgeführt, in der sie in den Dateien angezeigt werden.

Dateiname

Vorlage

Aktion des Inhalt-nach-Abfrage-Webparts

ItemStyle.xsl

Default

LinkImage ist auf der linken Seite.

LinkTitle ist oben.

Beschreibung ist unten.

ItemStyle.xsl

NoImage

LinkTitle ist oben.

Beschreibung ist unten.

ItemStyle.xsl

TitleOnly

Element enthält nur LinkTitle.

ItemStyle.xsl

Bullets

Element enthält nur LinkTitle, dem ein Aufzählungszeichen vorangestellt ist.

ItemStyle.xsl

ImageRight

LinkImage ist auf der rechten Seite.

LinkTitle ist oben.

Beschreibung ist unten.

ItemStyle.xsl

ImageTop

LinkImage ist oben.

LinkTitle ist in der Mitte.

Beschreibung ist unten.

ItemStyle.xsl

ImageTopCentered

LinkImage ist oben und zentriert.

LinkTitle ist in der Mitte.

Beschreibung ist unten.

ItemStyle.xsl

LargeTitle

LinkImage ist auf der linken Seite.

LargeLinkTitle ist oben.

Beschreibung ist unten.

ItemStyle.xsl

ClickableImage

Enthält nur LinkImage.

ItemStyle.xsl

NotClickableImage

Enthält nur Image ohne Link.

ItemStyle.xsl

FixedImageSize

LinkImage mit Größeneinschränkung links.

LinkTitle ist oben.

Beschreibung ist unten.

ItemStyle.xsl

TitleWithBackground

Enthält LinkTitle mit einer Hintergrundfarbe.

Dateiname

Vorlage

Aktion des Inhalt-nach-Abfrage-Webparts

Header.xsl

DefaultHeader

Zeigt den Gruppenkopf in mittlerem Schriftgrad an.

Header.xsl

LargeText

Zeigt den Gruppenkopf in großem Schriftgrad an.

Header.xsl

SmallText

Zeigt den Gruppenkopf in kleinem Schriftgrad an.

Header.xsl

Band

Zeigt den Gruppenkopf mit einer eingerahmten Hintergrundfarbe an.

Header.xsl

Centered

Zentriert den Gruppenkopf.

Header.xsl

Separator

Fügt eine Linie zwischen dem Gruppenkopf und dem nachstehenden Inhalt ein.

Header.xsl

Whitespace

Fügt Leerzeichen zwischen dem Gruppenkopf und dem nachstehenden Inhalt ein.

Jede Vorlage enthält zwei Abschnitte mit Verarbeitungsanweisungen:

  • <xsl:variable>-Abschnitte, die die Daten verarbeiten und die korrekte Formatierung sicherstellen.

  • <div>-Abschnitte, die HTML rendern und die Daten enthalten.

Es folgt der Vorlagecode für die Vorlage ImageRight, versehen mit Kommentaren:

///Declares an XSL template named ImageRight that

///processes row style elements defined as ImageRight.

- <xsl:template name="ImageRight" match="Row[@Style='ImageRight']"
mode="itemstyle">

///The <xsl:variable> sections process and ensure correct formatting of the data.

///This section declares the variable named SafeLinkUrl, includes instructions to call the OuterTemplate.GetSafeLink function, and includes the LinkUrl expression to scope the call to the UrlColumnName parameter.
  - <xsl:variable name="SafeLinkUrl">
       /// The OuterTemplate.GetSafeLink variable passes in the UrlColumnName that represents the column name containing the ItemUrl.
    - <xsl:call-template name="OuterTemplate.GetSafeLink">
        <xsl:with-param name="UrlColumnName" select="'LinkUrl'" />
      </xsl:call-template>
    </xsl:variable>

///This section declares the variable named SafeImageUrl and calls the OuterTemplate.GetSafeStaticUrl function.
  - <xsl:variable name="SafeImageUrl">
    - <xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
        <xsl:with-param name="UrlColumnName" select="'ImageUrl'" /> 
      </xsl:call-template>
    </xsl:variable>

///This section declares the variable named SafeImageHtml and calls the OuterTemplate.GetColumnDataForUnescapedOutput function, and passes the 'PublishingRollupImage' and 'Image' parameter values to the template rule.
  - <xsl:variable name="SafeImageHtml">
    - <xsl:call-template name="OuterTemplate.GetColumnDataForUnescapedOutput">
        <xsl:with-param name="Name" select="'PublishingRollupImage'" /> 
        <xsl:with-param name="MustBeOfType" select="'Image'" /> 
      </xsl:call-template>
    </xsl:variable>

///This section declares the variable named DisplayTitle, includes calls to the OuterTemplate.GetTitle function, and passes the @Title and 'LinkUrl' parameter values to the template rule.
  - <xsl:variable name="DisplayTitle">
    - <xsl:call-template name="OuterTemplate.GetTitle">
        <xsl:with-param name="Title" select="@Title" /> 
        <xsl:with-param name="UrlColumnName" select="'LinkUrl'" /> 
      </xsl:call-template>
   </xsl:variable>

///This section declares the variable named LinkTarget and tests whether it should open the target URL in a new window. If the test returns True, then the template rule processes the instruction to open the target URL in a new window.
  - <xsl:variable name="LinkTarget">
      <xsl:if test="@OpenInNewWindow = 'True'">_blank</xsl:if> 
    </xsl:variable>

///The <div> sections define the data to render and provide instructions on how to render it. This code block defines item data, and uses the OuterTemplate.CallPresenceStatusIconTemplate function to verify whether it should create an icon.
- <div class="item">
    <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate" />
///The <xsl:if test> instruction supplies a condition for the XSLT engine to evaluate. If the test evaluates to True after converting it to a Boolean value, the ItemStyle renders the content.
    - <xsl:if test="string-length($SafeImageUrl) = 0 and string-length($SafeImageHtml) != 0">
      - <div class="image-area-right">
          <xsl:value-of disable-output-escaping="yes" select="$SafeImageHtml" /> 
        </div>
      </xsl:if>
    - <xsl:if test="string-length($SafeImageUrl) != 0">
      - <div class="image-area-right">
        - <a href="{$SafeLinkUrl}" target="{$LinkTarget}">
            <img class="image" align="left" border="0"   src="{$SafeImageUrl}" alt="{@ImageUrlAltText}" /> 
          </a>
        </div>
      </xsl:if>
  - <div class="link-item">
    - <a href="{$SafeLinkUrl}" target="{$LinkTarget}" title="{@LinkToolTip}">
       <xsl:value-of select="$DisplayTitle" /> 
      </a>
      - <div class="description">
          <xsl:value-of select="@Description" /> 
        </div>
     </div>
  </div>
  </xsl:template>

Es stehen mehrere verwendbare Funktionen im Abschnitt <xsl:variables> der XSL-Dateien von SharePoint Server 2010 zur Verfügung, wie in der folgenden Tabelle beschrieben.

Funktion

Beschreibung

OuterTemplate.GetSafeLink

Wenn der Benutzer UrlColumnName (Spaltenname mit dem Wert ItemUrl) übergibt, wird eine URL von dieser Funktion zurückgegeben, die sicher für das Element angezeigt werden kann.

Wenn die Anzeige der URL nicht sicher ist, wird eine leere URL von der Funktion zurückgegeben.

Wenn das Element nicht gestreamt wird, wird die URL CopyUtil von der Funktion zurückgegeben.

OuterTemplate.GetSafeStaticUrl

Wenn der Benutzer UrlColumnName übergibt (der Name der Spalte, in der die URL gespeichert ist) und die Anzeige der URL sicher ist, wird die URL von der Funktion zurückgegeben.

Wenn die Anzeige der URL nicht sicher ist, wird eine leere URL von der Funktion zurückgegeben.

OuterTemplate.GetColumnDataForUnescapedOutput

Wenn der Benutzer Name (Name der Spalte, aus der die Daten abgerufen werden sollen) übergibt, werden Spaltendaten für Ausgaben ohne Escapezeichen von dieser Funktion abgerufen.

Wenn der Benutzer MustBeOfType (erwarteter Spaltentyp) übergibt, wird der Inhalt zurückgegeben, wenn die Spalte den richtigen Typ aufweist. Andernfalls werden keine Daten zurückgegeben.

OuterTemplate.GetTitle

Wenn der Benutzer Title (Daten in der Spalte Title) übergibt, wird ein Titel von dieser Funktion zurückgegeben.

Wenn Title leer ist, wird der Seitenname entweder leer oder als Titel angezeigt.

OuterTemplate.FormatColumnIntoUrl

Wenn der Benutzer UrlColumnName (Spaltenname mit einer URL) übergibt, wird die URL in der Spalte von dieser Funktion zurückgegeben.

OuterTemplate.FormatValueIntoUrl

Wenn der Benutzer Value übergibt, ein Wert, der die in einem Windows SharePoint Services 3.0-URL-Spaltentyp enthaltenen Daten darstellt, werden die URL und der Alternativtext von der Windows SharePoint Services 3.0-URL-Spalte zurückgegeben.

Gibt die URL in der Spalte zurück.

OuterTemplate.Replace

Wenn der Benutzer eine der folgenden Aktionen ausführt:

  • Übergibt Value, ein Wert, der die zu ersetzende Zeichenfolge darstellt

  • Übergibt Search, ein Wert, der die übereinzustimmende Zeichenfolge darstellt

  • Übergibt Replace, ein Wert, der die Zeichenfolge darstellt, durch die die Übereinstimmung ersetzt werden soll

Der entsprechende Text zum Suchen und Ersetzen wird von dieser Funktion zurückgegeben.

OuterTemplate.GetPageNameFromUrl

Wenn der Benutzer UrlColumnName (Spaltenname der Element-URL) übergibt, wird der Spaltenname von der URL zurückgegeben.

OuterTemplate.GetPageNameFromUrlRecursive

Hilfsmethode für GetPageNameFromUrl.

OuterTemplate.GetGroupName

Wenn der Benutzer den Wert der GroupName-Spalte übergibt, wird der Gruppenname im entsprechenden Format von der Funktion zurückgegeben.

Wenn der Wert leer ist, wird ein leerer Gruppenname zurückgegeben.

Wenn der Benutzer den Wert der GroupType-Spalte (Spaltentyp für die Gruppe) übergibt, wird der Seitenname von der Funktion zurückgegeben, wenn der Typ URL lautet.

OuterTemplate.CallPresenceStatusIconTemplate

Wenn das @SipAddress-Attribut in der aktuellen Zeile enthalten ist, wird das entsprechende Markup generiert, um ein Anwesenheitssymbol für Microsoft Office Outlook 2007 oder Microsoft Office Communicator 2007 zu erstellen.

So fügen Sie ein Inhalt-nach-Abfrage-Webpart hinzu und passen die XSL des Webparts an

  1. Navigieren Sie zur Homepage Ihrer Website, klicken Sie auf Websiteaktionen und dann auf Seite bearbeiten, um die Seite im Bearbeitungsmodus anzuzeigen.

  2. Klicken Sie in einer der Webpartzonen auf Webparts hinzufügen, wählen Sie ein Inhalt-nach-Abfrage-Webpart aus und fügen Sie es hinzu.

  3. Klicken Sie auf Bearbeiten und anschließend auf Freigegebenes Webpart bearbeiten.

  4. Ändern Sie die Eigenschaften, und fügen Sie dem Inhalt-nach-Abfrage-Webpart Felder nach Bedarf hinzu. Weitere Informationen finden Sie unter Gewusst wie: Anpassen des Webparts für Inhaltsabfragen mithilfe benutzerdefinierter Eigenschaften.

    HinweisHinweis

    Wenn Sie das Inhalt-nach-Abfrage-Webpart ändern möchten, stehen Ihnen zwei Dropdownlisten im Abschnitt Formate zur Verfügung: eine für das Format von Gruppen und eine für das Format von Elementen. Diese Listenelemente werden durch Vorlagen in den Dateien ItemStyle.xsl und Header.xsl definiert.

  5. Ändern Sie Werte von select-Anweisungen, Variablen und Ausdrücken durch Bearbeiten der XSL unter Verwendung der Hinweise in diesem Thema als Vorgaben. Sie können beispielsweise Werte von select-Anweisungen im Abschnitt <div> so ändern, dass der Ausdruck zur Auflösung zu einer anderen Variablen angewiesen wird.

So erstellen Sie das Format für Elemente

  1. Suchen Sie nach einem Format, das dem ähnlich ist, das Sie erstellen möchten.

  2. Kopieren Sie das Format, und ändern Sie die Eigenschaftswerte name und match:

    <xsl:template name="ImageRight" match="Row[@Style='ImageRight']" mode="itemstyle">
    <xsl:template name="ImageRight2" match="Row[@Style='ImageRight2']" mode="itemstyle">
    

Siehe auch

Aufgaben

Gewusst wie: Anpassen des Webparts für Inhaltsabfragen mithilfe benutzerdefinierter Eigenschaften

Gewusst wie: Anpassen von RSS für das Webpart für Inhaltsabfragen

Gewusst wie: Anzeigen von benutzerdefinierten Feldern in einem Webpart für Inhaltsabfragen