Kategorien
misc

IMDB mit James Bond Easter Egg

Die Leute von IMDB scheinen eine gewisse Sympathie für James Bond zu hegen. Wenn man die Charakter-Seite zu James Bond auf IMDB aufruft erhält man folgende Seite:

James Bond auf IMDB - was fällt hier auf?
James Bond auf IMDB – was fällt hier auf?

Na, wem ist hier etwas aufgefallen? Man richte seinen Blick auf die URL. Kann das Zufall sein? Wohl kaum, oder? 007 lässt grüssen.

Kategorien
IT SharePoint

SharePoint: relative Pfade in XSLT verwenden

Wenn man eine SharePoint-Listenansicht mittels XSLT anpasst, so möchte man häufig auch relative Pfade verwenden.

Besonders wichtig, wenn man eine XSL-Datei für ein Feature deployed, welches in verschiedenen Webs aufgerufen wird und folglich keine absoluten Pfade sondern relative enthalten sollte.

Dies lässt sich innerhalb einer SharePoint-Seite mit der Verwendung des globalen XSLT-Parameters „ServerRelativeUrl“ einfach lösen, wie nachfolgendes Beispiel (Auszug aus einer XSL-Datei) zeigt:

                  <a href="{$ServerRelativeUrl}/Lists/Customers/DispForm.aspx?ID={@ID}">
                    <xsl:value-of select="@Title"/>
                  </a>

Man hätte natürlich auch z.B. „../Lists“ oder „http://servername/…“ voranstellen können, jedoch verliert man dann Flexibilität. Sobald der Servername geändert wird (man denke auch an „Alternate Access Mappings“ und Extranet-Lösungen)  oder das XSL auf einer Listen-Ansicht statt auf einer Page verwendet wird, geht der Link nicht mehr, da der Verweis dann einen ungültigen Pfad hat.

Damit der globale Parameter verfügbar ist, muss innerhalb der XSL-Datei die „Main.xsl“-Datei von SharePoint referenziert werden:

<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal">
  <xsl:import href="/_layouts/xsl/main.xsl"/>
  ...

Informationen über verfügbare globale Parameter findet ihr hier: http://msdn.microsoft.com/en-us/library/ff806158.aspx