Erstellen von Artikeln im Publishing-System
Das Erstellen von Artikeln basiert nicht auf WebPart-Seiten, sondern auf einem speziellen Seitenlayout. Dies verknüpft zwei Informationen:
- Einen Inhaltstyp mit den Daten
- Eine Seitenvorlage mit dem Layout
Die Seitenvorlage basiert ihrerseits wieder auf einem eigenen Inhaltstyp. Um nun Seiten mit einem freien Layout zu erstellen, werden diese zwei Inhaltstypen benötigt.
Die Ablage der finalen Seiten erfolgt in einer Dokumentenbibliothek, von der das dann der Veröffentlichungsprozess betrieben wird. Im Publishing-Bereich ist dies standardmäßig die Bibliothek „Seiten“ („Pages“).
Bei der Standardbibliothek sieht das nun folgendermaßen aus:
Es können also Seiten von folgende Typen angelegt werden:
- Seite
- Artikelseite
- Willkommensseite
- Fehlerseite
Die zugeordneten Inhaltstypen bestimmen die Datenstruktur einer Seite. Seiten dienen der komfortablen Erfassung von Inhalten. Hier ein Blick auf den Inhaltstyp „Artikelseite“:
Inhaltstyp für Daten
Der Inhaltstyp bestimmt also, was erfasst werden kann. Die Hierarchie für Veröffentlichungsinhaltstypen ist wie folgt (darunter die jeweils in dieser Ebene eingeführten Spalten):
- System
-
Element
- Title
- Content Type
-
Dokument
- Datei
- Created / Modified
- Document Created By / Document Modified By
- Name
- Select
-
Systemseite
- Kommentare
- Geplantes Startdatum
- Geplantes Enddatum
- Kontakt Person oder Gruppe
- E-Mail-Adresse des Kontakts
- Kontaktname
- Kontaktbild
- Rollupbild
- Zielgruppen
- Page Layout (PublishingPageLayout, Typ: URL)
- Variation Group ID / Variation RelationShip Link
-
Seite
- Browsertitel
- Meta-Beschreibung
- Meta-Schlüsselwörter
- Für Internet-Suchmaschinen ausblenden
-
Artikelseite
- Bild der Seite
- Seiteninhalt
- Hyperlinküberschriften
- Nach Zeile
- Artikeldatum
- Bildüberschrift
Die Seite selbst wird als *.aspx-Seite erfasst und als Datei in der Bibliothek abgelegt. Die Inhalte stehen in der Seite selbst in der Bibliothek (den Feldern) und im Kopf der Seite. Was wo steht entscheidet der Inhaltstyp. Hier ein Blick in eine Artikelseite:
Das Leben der Seite entsteht erst, wenn ein Benutzer sich das ansieht. Die gerenderter Form entsteht also dynamisch. Das Ergebnis sieht dann so aus:
Das Layout einer Veröffentlichungsseite
Bei Sicht auf die Liste der Seiten ist das jeweils benutzte Layout zu sehen:
Es gehört zu den Eigenschaften, dass ein Benutzer ein Standardlayout präsentiert bekommt, das er anschließend beim Erfassen wechseln kann.
Das Standardlayout festlegen
Um das Standardlayout festzulegen, geht man folgendermaßen vor:
- Website-Einstellungen
- Aussehen und Verhalten
- Seitenlayouts und Websitevorlagen
Im dritten (unteren) Teil der Seite kann man das Standardlayout festlegen:
Die Auswahl hier verhindert nicht, dass ein Autor das Layout später wechselt.
Das Layout wechseln
Befindet sich die Seite im Bearbeitungsmodus, kann das Layout im Menü-Band gewechselt werden:
Das Layout selbst kann an dieser Stelle nicht angepasst werden. Es muss vom Administrator bereitgestellt werden. Inhaltsautoren können lediglich ein Layout wählen.
Eigene Layouts werden in dem Auswahl-Dialog nur angezeigt, wenn Sie über ein Vorschaubild verfügen.
Eigene Inhaltsstrukturen und Layouts
Eigene Layouts basieren auf zwei Arbeitsschritten:
- Anpassen des Inhaltstyps, damit die passenden Daten erfasst werden
- Anpassen der Gestaltungsvorlage der Seite, um die Daten darzustellen
Als Grundlage für einen eigenen Inhaltstyp dient mindestens der Inhaltstyp „Systemseite“, denn auf dieser Ebene wird das Seiten-Layout verbunden (PublishingPageLayout). Allerdings ist dieser Typ versteckt, der nächste erreichbar ist „Seite“.
Anpassen des Inhaltstyps
Es sollen Produktinformationen erfasst werden. Dazu wird ein neuer Inhaltstyp basierend auf dem Typ „Systemseite“ und mit dem Name „Produkt“ erstellt.
- Einstellungen
- Web-Designer-Kataloge > Websiteinhaltstypen
- Erstellen
-
Die Daten werden dann wie folgt ausgefüllt:
- Name: Produkt
- Beschreibung: Text für den Benutzer
- Gruppe: Inhaltstypen für Veröffentlichung
- Inhaltstyp: Seite
- Neue Gruppe: Nach Bedarf (z.B. Firmenname)
Nun werden dem Inhaltstyp die Spalten hinzugefügt, die für Produkte benötigt werden:
- Einstellungen
- Web-Designer-Kataloge > Websiteinhaltstypen
- Auswahl der Gruppe und des Inhaltstyps
-
Aus neuer Websitespalte hinzufügen
- Produktname (Eine Textzeile, 30 Zeichen)
- Produktnummer (Eine Textzeile, 10 Zeichen)
- Produktbeschreibung (Vollständiger HTML-Inhalt mit Formatierung und Einschränkungen für die Veröffentlichung)
- Produkt
abgekündigt (Ja/Nein mit Standardwert Nein)
Es kann nun die vorhandene Dokumentenbibliothek „Seiten“ („Pages“) benutzt werden.
Es kann immer nur eine solche Bibliothek in einer Site existieren. Wenn weitere benötigt werden, muss man eine Subsite anlegen.
Dann wird diese Bibliothek eingerichtet, um den Inhaltstyp zu nutzen:
- Öffnen Sie die Bibliothek
- Klicken Sie auf Bibliothek im Menü-Band und dann auf Bibliothekseinstellungen
-
Erweiterte Einstellungen > Verwaltung von Inhaltstypen zulassen > Ja
- Aus vorhandenen Websiteinhaltstypen hinzufügen
-
Auswahl Fima > Produkt
-
Optional kann einer der Standardinhaltstypen wie Artikel entfernt werden
- Wählen Sie den Inhaltstyp aus
- Klicken Sie auf Diesen Inhaltstyp löschen (löscht nicht, sondern entfernt)
Anpassen der Gestaltungsvorlage
Nun wird die Gestaltungsvorlage angepasst. Dies erfolgt durch Hochladen einer Vorlage in die Master-Page-Gallery. Zuerst die beteiligten Elemente in den Site-Einstellungen:
Gehen Sie nun in den entsprechenden Katalog:
- Einstellungen
- Web-Designer-Kataloge > Gestaltungsvorlagen und Seitenlayouts
- Suchen Sie ein Layout als Grundlage, z.B. ArticleLeft.aspx
-
Schauen Sie sich die Eigenschaften an (siehe nächste Abbildung)
- Der Basisinhaltstyp bestimmt die Verwendung
- Der Name, Beschreibung und Bild dient der Angabe für den Autor
- Das Bild ist zwingend erforderlich, damit das Layout im Menü-Band angezeigt wird
- Der zugeordnete Inhaltstyp bestimmt, wo dieses Layout verfügbar ist
Um ein eigenes Layout zu erstellen, wird eine der Beispielseiten modifiziert. Dazu muss diese zuerst heruntergeladen werden.
Die Vorgehensweise hier folgt nicht der in der Dokumentation beschriebenen Schrittfolge über den Design Manager. Der Design Manager ist für Power User und benutzt ein HTML-Layout mit Kommentaren als Platzhalter. Der Weg der hier beschrieben wird, ist schneller und kompakter und für Entwickler gedacht, die mit SharePoint-Steuerelementen umgehen können.
Laden Sie nun die Seite „ArticleLeft.aspx“ herunter. Innerhalb der Seite befinden sich Platzhalter, die sich auf die Gestaltungsvorlage (Master-Page) beziehen. Interessant ist hier nur der Bereich „PlaceHolderMain“ – der Inhalt der Seite. Dieser Platzhalter sieht folgendermaßen aus:
<asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server"> <div class="article article-left"> <PublishingWebControls:EditModePanel runat="server" CssClass="edit-mode-panel title-edit"> <SharePointWebControls:TextField runat="server" FieldName="Title"/> </PublishingWebControls:EditModePanel> <div class="captioned-image"> <div class="image"> <PublishingWebControls:RichImageField FieldName="PublishingPageImage" runat="server"/> </div> <div class="caption"> <PublishingWebControls:RichHtmlField FieldName="PublishingImageCaption" AllowTextMarkup="false" AllowTables="false" AllowLists="false" AllowHeadings="false" AllowStyles="false" AllowFontColorsMenu="false" AllowParagraphFormatting="false" AllowFonts="false" PreviewValueSize="Small" AllowInsert="false" AllowEmbedding="false" AllowDragDrop="false" runat="server"/> </div> </div> <div class="article-header"> <div class="date-line"> <SharePointWebControls:DateTimeField FieldName="ArticleStartDate" runat="server"/> </div> <div class="by-line"> <SharePointWebControls:TextField FieldName="ArticleByLine" runat="server"/> </div> </div> <div class="article-content"> <PublishingWebControls:RichHtmlField FieldName="PublishingPageContent" HasInitialFocus="True" MinimumEditHeight="400px" runat="server"/> </div> <PublishingWebControls:EditModePanel runat="server" CssClass="edit-mode-panel roll-up"> <PublishingWebControls:RichImageField FieldName="PublishingRollupImage" AllowHyperLinks="false" runat="server" /> <asp:Label text="<%$Resources:cms,Article_rollup_image_text15%>" CssClass="ms-textSmall" runat="server" /> </PublishingWebControls:EditModePanel> </div> </asp:Content>
Die Seite stützt zwei Funktionen:
- Zusätzliche Anzeigen und Verhaltensweise beim Bearbeiten (PublishingWebControl:EditModePanel)
- Anzeige der Seiteninhalt mittels Steuerelementen (PublishingWebControl:NNN und SharePointWebControl:NNN)
Die Seite kann in zwei Anzeigeformen sein: Bearbeiten (Edit) und Anzeigen (Display).
Bereitstellen des neuen Layouts
Die Bereitstellung erfolgt durch Hochladen und Anpassen der Seitenvorlage. Laden Sie zuvor ein passendes Bild hoch oder wählen Sie ein vorhandenes.
- Einstellungen
- Web-Designer-Kataloge > Gestaltungsvorlagen und Seitenlayouts
- Menü-Band > Dateien > Dokumentenupload
- Wählen Sie dann den Inhaltstyp „Seitenlayout“ (das ist der, der das Layout beschreibt)
- Korrigieren Sie ggf. den Namen, Titel und Beschreibung
- Geben Sie den Pfad zur Bilddatei ein (das Bild sollte vorher hochgeladen werden)
- Ordnen Sie den Inhaltstyp zu (das ist der, der die Daten beschreibt)
Nutzung des neuen Layouts
Erstellen Sie nun eine neue Seite mit diesem Layout:
Umgang mit Layout-Seiten
Layout-Seiten bestehen aus Steuerelementen. Mit SharePoint 2013 wurde der Design-Manager eingeführt, um die Erstellung auch ohne dedizierte Programmierkenntnisse zu ermöglichen. Leider ist die Benutzung trotz umfassender Oberfläche relativ kompliziert und keineswegs ein einfacher Weg zu einem guten Layout. Letztlich wird nur die Auswahl der Steuerelemente unterstützt, aber keine grafische Gestaltung.
Blick auf die Steuerelemente
Als Steuerelemente werden aktive Bausteine aus SharePoint bzw. dem SharePoint-Publishing-Feature bezeichnet, die sowohl einen Bearbeitungs- als auch einen Anzeigemodus unterstützen.
Zustände der Seite
Die Seiten befinden sich entweder im Zustand „Bearbeiten“ (Edit) oder „Anzeigen“ (Display). Dies kann mit EditModePanel gesteuert werden:
<PublishingWebControls:EditModePanel runat="server" PageDisplayMode="Edit">
Die Eigenschaft PageDisplayMode ist hier einsetzbar. Der Inhalt ist HTML. Mit der Eigenschaft CssClass wird eine bestimmte Klasse nur zu dem gewählten Zeitpunkt benutzt:
<PublishingWebControls:EditModePanel runat="server" CssClass="edit-mode-panel title-edit"> <SharePointWebControls:TextField runat="server" FieldName="Title"/>
Wird die Eigenschaft PageDisplayMode nicht angegeben, ist „Edit“ der Standardwert.
Eine weitere Eigenschaft ist sinnvoll, wenn der Inhalt Skripte oder Stile sind. Standardmäßig wird der Inhalt immer in ein <div>-Tag gepackt. Dies kann mit SuppressTag=“true“ unterdrückt werden.
Steuerelemente
Mögliche Steuerelemente für Feldwerte sind:
Steuerelement |
Datentyp |
Besonderheit |
TextField |
Zeile Text |
|
NoteField |
Mehrere Zeilen Text |
|
RichTextField |
Formatierbarer Text (HTML) |
|
DateTimeField |
Datum |
|
BooleanField |
Ja/Nein |
Kontrollkästchen beim Bearbeiten, Anzeige von „Ja“ und „Nein“ auf der finalen Seite |
UserField |
Personenauswahl (Picker) |
|
UrlField |
Mögliche Steuerelemente speziell für Feldwerte des Veröffentlichungs-Features sind:
Steuerelement |
Datentyp |
Besonderheit |
RichImageField |
Bild |
Bild mit Bildüberschrift: |
RichHtmlField |
HTML |
Kann Menü-Band-Schaltflächen unterdrücken |
RichLinkField |
Link |
|
SummaryLinkFieldControl |
Sammlung von Hyperlinks |
Für Taxonomie-Felder aus dem Termstore wird folgendes Steuerelement benutzt („ProduktTerm“ ist der Name eines Beispielfelds und muss durch die GUID oder den Internal Name der Spalte des Inhaltstyps ersetzt werden):
<%@ Register Tagprefix="Taxonomy" Namespace="Microsoft.SharePoint.Taxonomy" Assembly="Microsoft.SharePoint.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <Taxonomy:TaxonomyFieldControl FieldName="ProduktTerm" InputFieldLabel="Tags" runat="server"></Taxonomy:TaxonomyFieldControl>
Der erste Teil ist die Registrierung der passenden Assembly. Achten Sie hier auf die Version (16 ist für SharePoint 2016/Office 365, 15 für SharePoint 2013 usw.). Stellen Sie diesen Teil an den Anfang zu den übrigen @Register-Direktiven.
Weitere Gestaltungsbausteine
Des Weiteren kann folgendes benutzt werden:
-
Alle WebParts inkl. WebPart-Zonen:
- Medien und Inhalte
- Dynamische Inhalte
- Geräteabhängige Bereiche (reagiert auf das Feld User-Agent des Clients)
- Sicherheitsbeschränkte Bereiche
- ASP.NET Code (nur Markup)
Zielgruppen
Neben der Steuerung der allgemeinen Anzeige kann auch Zielgruppenorientiert gearbeitet werden. Dazu wird das Steuerelement AuthoringContainer benutzt:
<PublishingWebControls:AuthoringContainer runat="server" DisplayAudience="ReadersOnly"> <h1>Für Leser</h1> </PublishingWebControls:AuthoringContainer> <PublishingWebControls:AuthoringContainer runat="server" DisplayAudience="AuthorsOnly"> <PublishingWebControls:EditModePanel runat="server" PageDisplayMode="Display"> <h1>Display für Autoren</h1> </PublishingWebControls:EditModePanel> <PublishingWebControls:EditModePanel runat="server" PageDisplayMode="Edit"> <h1>Edit für Autoren</h1> </PublishingWebControls:EditModePanel> </PublishingWebControls:AuthoringContainer>
Eigenschaften
Neben den Feldern des Dateninhaltstyps lassen sich auch Feldeigenschaften anzeigen. So zeigen Sie die Anzahl der Zeichen an, die in einem Textfeld erlaubt sind (MaxLength):
<SharePointWebControls:FieldProperty FieldName="Produktname" PropertyName="MaxLength" runat="server"/>
Wird dies benutzt, um das Label anzuzeigen, sollte das Label das zum Feld automatisch erzeugt wird, ausgeblendet werden (auf dem Feld, nicht auf der Eigenschaft):
DisableInputFieldLabel=“true“
Der Design-Manager
Beim Design-Manager ist die Vorgehensweise etwas anders. Hier wird ein HTML-Layout erstellt, mit Kommentaren gefüllt, die die zuvor gezeigten Steuerelemente enthalten und dann wird dies hochgeladen und in die finalen Vorlagen konvertiert. Der Vorteil besteht darin, dass ein Designer / Grafiker mit reinem HTML arbeiten kann. Mit „Designer“-Funktionen hat dies indes wenig zu tun.
Gehen Sie folgendermaßen vor:
- Einstellungen
- Design-Manager > Seitenlayouts bearbeiten
-
Erstellen eines Seitenlayouts
- Name
- Master Seite (Gestaltungsvorlage)
- Inhaltstyp (hier: Produkt)
Klicken Sie die Vorlage in der Liste der Vorlagen (erscheint automatisch) nun an. Die Seite erscheint als Vorschau. Laden Sie die Seite zum Bearbeiten herunter. Nutzen Sie die Funktion „Ausschnitt“ (Snippets), um die Steuerelemente-Codes zu ermitteln.