Benutzer mit den meisten Antworten
Mehrere "PublishingWebControls:RichHtmlField" in einer Seitenvorlage

Frage
-
Sehr geehrte Community,
wieder einmal wende ich mich voller Verzweiflung an euch:
Ich würde gerne auf der Homepage einer Websitesammlung mehrere "PublishingWebControls:RichHtmlField" verwenden,
Es geht um folgendes:
Eine Seitenvorlage besteht (im Bearbeitungsmodus) ja nur aus einem "RichHtmlField" und zwar:
<PublishingWebControls:RichHtmlField id="PageContent" FieldName="PublishingPageContent" runat="server"/>
Nun hätte ich aber gern mehrere Formularfelder zum Eingeben von Daten, dazwischen will ich feste, nicht veränderbare Texte, Bilder etc. einfügen.
Also in der Art:
<p>Überschrift</p> (unveränderbar)
RichHtmlField (in dies kann der Benutzer den Namen eingeben)
<p>Kontakt:</p> (unveränderbar)
RichHtmlField (hier kann der Benutzer seine Kontaktdaten eingeben)
<p>Hardware</p> (unveränderbar)
RichHtmlField (hier kann der Benutzer seine benutzte hardware eingeben)
Somit bietet die Seite ein festes, nicht veränderbares layout in dem der User nur seine daten hinzufügen kann, den absatz <p>Kontakt</p> beispielsweise jedoch kann er nicht löschen/verändern.
Ich hoffe, ihr versteht was ich versuche zu erklären.
Ich bin die Anleitungen von mehreren seiten schritt für schritt durchgegangen, jedoch ist es unter SP2013 ein wenig anders, und es will nicht so ganz klappen.
Evtl. weiß Jemand eine bessere Vorgehensweise oder kann mir besser erklären, wie ich vorgehe um mehrere "PageContent"-Felder verwenden kann.
Mit freundlichen GrüßenSchnepf Markus
Antworten
-
Danke Alex, wieder einmal ;)
der erste link half mir nicht sehr viel, da das ganze entweder NUR über webinterface oder NUR über sharepoint designer 2013 gemacht werden sollte.Das zweite hatte ich gefunden, da ich aber bisher nur mit Sharepoint designer arbeitete half mir das nichts.
aber im browser hat die anleitung super geklappt, vielen dank ;)
gestern fand ich dann auch heraus wie es im sharepoint designer hinhaut, denn 2013er ist so schlau, man benötigt die Fieldnummer nicht einmal mehr, spaltenname reicht ;)
also legte ich ne neue spalte mit typ "vollständiger html... blabla" an, nannte sie Seiteninhalt2(da das orig. ja "seiteninhalt" heißt)und <PublishingWebControls:RichHtmlField FieldName="Seiteninhalt2" runat="server" id="RichHtmlField"></PublishingWebControls:RichHtmlField>
tut was es soll ;)
Bei Zeiten werde ich eine schritt für schritt anleitung für dummies (wie mich ;) ) erstellen, für webinterface UND designer- Als Antwort markiert Alex Pitulice Mittwoch, 7. August 2013 09:26
Alle Antworten
-
Hallo Markus,
ich vermute das is was Du suchst:
How to add a web part in rich content using PowerShell, SharePoint 2013
How does it work?The technical concept behind adding a web part in rich content in SharePoint 2013 is almost the same as for wiki-pages in SharePoint 2010.
First, we don’t add the actual web part inside the rich content filed. Instead we add the web part in a hidden web part zone named wpz. By hidden I mean that this web part zone is not displayed for the users on the page.
Secondly, we add a web part placeholder, a HTML snippet, to the rich content field. The placeholder reference the web part using the web part’s unique ID. You are able to see this snippet in plain text if you add a web part to one of your rich content fields using the web interface and then choose ”Edit source” in the ribbon to see the HTML code.
SharePoint takes care of the rest and make sure the web part in the hidden web part zone is displayed in the rich content field when the page is rendered.
Multiple PublishingWebControls:RichHtmlField in a single Page?
Once you've finished, and see the new column listed on the Content Type page, click it and on the page that opens, find the Field ID in the URL of the location bar. It should be at the end of the URL and look like this: &Fid={300fa8b4-117a-41e3-96b5-8753e9680be6}Copy the guid (bolded). This is your FieldName for the second RichHTMLField control you put on your page layout in Designer.
<PublishingWebControls:RichHtmlField FieldName="300fa8b4-117a-41e3-96b5-8753e9680be6" runat="server" id="RichHtmlField"></PublishingWebControls:RichHtmlField>
Once you set the FieldName attribute to the new Field ID from your new content type, Designer will also pick up the column name you set on your new content type.
Last step, is to find the Page Layout in its gallery in the SharePoint UI, and edit its properties. That way you can associate your page layout with the new content type, and you're done.
Gruss,
Alex
Alex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Danke Alex, wieder einmal ;)
der erste link half mir nicht sehr viel, da das ganze entweder NUR über webinterface oder NUR über sharepoint designer 2013 gemacht werden sollte.Das zweite hatte ich gefunden, da ich aber bisher nur mit Sharepoint designer arbeitete half mir das nichts.
aber im browser hat die anleitung super geklappt, vielen dank ;)
gestern fand ich dann auch heraus wie es im sharepoint designer hinhaut, denn 2013er ist so schlau, man benötigt die Fieldnummer nicht einmal mehr, spaltenname reicht ;)
also legte ich ne neue spalte mit typ "vollständiger html... blabla" an, nannte sie Seiteninhalt2(da das orig. ja "seiteninhalt" heißt)und <PublishingWebControls:RichHtmlField FieldName="Seiteninhalt2" runat="server" id="RichHtmlField"></PublishingWebControls:RichHtmlField>
tut was es soll ;)
Bei Zeiten werde ich eine schritt für schritt anleitung für dummies (wie mich ;) ) erstellen, für webinterface UND designer- Als Antwort markiert Alex Pitulice Mittwoch, 7. August 2013 09:26
-
Hallo Markus,
gern geschehen :) Super, dass alles jetzt gut läuft. Danke Dir auch für die SharePoint Designer Lösung!
Gruss,
Alex
Alex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Sharepoint 2013! Für alle Interessierten und/oder Dummies (wie ich einer bin):
Dank Alex‘ Hilfe hier nun die Anleitung, um mehrere „RichHtmlField“ (also Textfelder für Seiteninhalt) auf eine Seite zu bekommen. (Übertrieben genau ;) )
Vorab ein Beispiel:
Projekt: Unternehmenswiki-Seite
Projektname: MyWiki
Servername: Test01
Projektverzeichnis: /Websites/
Begonnen wird im Webinterface- Öffne die zu Bearbeitende Seite im Browser (im Bsp: „http(s)://Test01/Websites/MyWiki/“) - Rechts oben neben dem Anmeldenamen ist der Button für die Einstellungen, in diesem Menü auf „Websiteeinstellungen“ klicken
- In der 2. Kategorie „Web-Designer-Kataloge“ auf „Websiteinhaltstypen“ klicken
- Hier klickst du nun auf denjenigen Eintrag, von dem dein Projekt abgeleitet wird (Bsp: „Unternehmenswiki-Seite“)
- Klicke auf „Aus neuer Websitespalte hinzufügen“
- Gib einen Namen ein (Bsp: „Seiteninhalt2“, da der Standartname „Seiteninhalt“ lautet)
- Als Typ wählst du (von mir nur Empfohlen! Auch andere möglich!) „Vollständiger HTML-Inhalt mit Formatierung blabla“
- Gruppe auswählen: Ist eigentlich egal, ist nur kosmetischer Natur, somit findest du deinen eben erstellten Websiteinhaltstyp leichter wieder (Da ich sehr viele Benutzerdefinierte Inhaltstypen verwende schmeiße ICH diese immer in die Gruppe „Benutzerdefinierte Spalten“, aber das ist jedem selbst überlassen)
- Beschreibung ist optional (Bsp: „Dies stellt eine Spalte für weiteren Seiteninhalt dar“)‘
- Wähle die maximale Anzahl an Zeichen (Standard: 255)
- Wähle den Standardwert: lasse ICH immer auf Text
- Das aktualisieren unten dient lediglich dazu, dass die Einstellungen auf alle Typen, die von dem bearbeitetem Typ erben, die neuen Einstellungen erhalten). Das kannst du auf „Ja“ lassen.
- Bestätige mit „OK“
- Wieder zurück auf der Liste der Websiteinhaltstypen klickst du auf deine neu erstellte Spalte (Bsp: „Seiteninhalt2“)
**Exkurs: bei Sharepoint 2010 „musste“ man diese Websitespalten über die „Field-ID“ ansprechen, diese findet man in der URL als „Fid“. Beispiel: http://Test01/websites/MyWiki/_layouts/15/ManageContentTypeField.aspx?ctype=0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39004C1F8B46085B4D22B1CDC3DE08CFFB9C&Field=Seiteninhalt2&Fid={b664915e-2c3f-42e6-aa6e-b17040aba319}
Sharepoint 2013 handelt nun auch den Namen, also den „Field“-Wert („Seiteninhalt2“)
Weiter mit dem Sharepoint Designer 2013
1.) Öffne die Seite im Sharepoint Designer 2013
2.) Klick links im Menü „Websiteobjekte“ auf „Websitespalten“
3.) In der Gruppe „Spalten für das Seitenlayout“ findet man wieder die eben erwähnte Spalte „Seiteninhalt“ und daneben auch die selbst erstellten, z.B. „Seitenlayout2“
4.) Im linken Menü findet man den Punkt „Seitenlayouts“, darin öffnet man entweder die zu verwendende Vorlage oder erstellt ein neues Layout (in meinem Beispiel verwende ich die Vorlage „EnterpriseWiki.aspx“ = „UnternehmensWiki“). Schnell geht’s mit rechtsklick und auf „Datei im erweiterten Modus bearbeiten“
5.) Die vorhandene Zeile <PublishingWebControls:RichHtmlField id="PageContent" FieldName="PublishingPageContent" " runat="server"/></div> stellt den Seiteninhalt dar (Der FieldName “PageContent” benutzt die Spalte “Seiteninhalt”) Deshalb fügen wir die gleiche Zeile darunter ein, nur verändern wir Sie wie folgt: <PublishingWebControls:RichHtmlField id="PageContent2" FieldName="Seiteninhalt2" runat="server"/></div>, denn die von uns erstellte Spalte heißt „Seiteninhalt2“; die id müssen wir verändern, damit (auch wenn kein CSS benutzt wird) die beiden Felder unterschieden werden können.
6.) Zwischen den beiden Zeilen KANN man nun feste Inhalte einfügen, z.B.<p> Dies ist eine Trennzeile</p> Somit kann der Endbenutzer beide Inhaltsfelder bearbeiten, die Trennzeile jedoch nicht.
7.) Voilá, fertig. natürlich geht das auch mit viel mehr Spalten, dafür muss jedes Mal eine neue Spalte angelegt werden. ENDE Liebe Grüße,
Markus
Nachtrag für erfahrene User:Anbei finden sich einige Zeilen, die 5 Inhaltsfelder definieren, welche sich per Javascript auf und zuklappen lassen: (dazu wird die in Punkt 5.)
Verwendete Zeile durch die folgenden ersetzt):
<p><a href="#" onClick="showHideDiv('hiddenKontakt');">Kontakt:</a></p> <div id="hiddenKontakt" style="display: block"> <PublishingWebControls:RichHtmlField id="PageContent" FieldName="PublishingPageContent" EditorBackgroundColor="#bababa" DisableInputFieldLabel="true" runat="server"/></div> <p><a href="#" onClick="showHideDiv('hiddenHardware');">Hardware:</a></p> <div id="hiddenHardware" style="display: none"> <PublishingWebControls:RichHtmlField id="PageContent2" AllowDragDrop="True" FieldName="Seiteninhalt2" DisableInputFieldLabel="true" runat="server"/></div> <p><a href="#" onClick="showHideDiv('hiddenSoftware');">Software:</a></p> <div id="hiddenSoftware" style="display: none"> <PublishingWebControls:RichHtmlField id="PageContent3" FieldName="Seiteninhalt3" DisableInputFieldLabel="true" runat="server"/></div> <p><a href="#" onClick="showHideDiv('hiddenZugang');">Zugangsdaten:</a></p> <div id="hiddenZugang" style="display: none"> <PublishingWebControls:RichHtmlField id="PageContent4" FieldName="Seiteninhalt4" DisableInputFieldLabel="true" runat="server"/></div> <p><a href="#" onClick="showHideDiv('hiddenKonfiguration');">Konfigurationen:</a></p> <div id="hiddenKonfiguration" style="display: none"> <PublishingWebControls:RichHtmlField id="PageContent5" FieldName="Seiteninhalt5" DisableInputFieldLabel="true" runat="server"/></div> <script language="javascript"> function showHideDiv(id){ if(eval("document.getElementById('" + id + "').style.display == 'block'")){ eval("document.getElementById('" + id + "').style.display = 'none'") } else { eval("document.getElementById('" + id + "').style.display = 'block'") } } </script>
- Bearbeitet Markus Schnepf Montag, 12. August 2013 14:09 Formatierung
- Bearbeitet Alex Pitulice Montag, 12. August 2013 14:43 HTML Code formatting
-
Wow !!!
Danke Dir sehr Markus, dass Du die Anleitung mit der Kommunität geteilt hast! Super :)
Gruss,
Alex
Alex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Hallo Markus,
danke für diese Schritt-für-Schritt Anweisung!! Gerade mir als Anfänger hat das sehr geholfen, da ich etwas ähnliches brauche. Weisst du zufällig auch ob es möglich ist, ein Feld einzufügen, auf dass ich per drag&drop wie bei den Bibliotheken ein Bild ziehen kann, dass gleich richtig skaliert und dann mit veröffentlicht wird? An dieser Frage beiße ich mir seit mehreren Tagen die Zähne aus.
bis dann
Robert