<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sharepointcommunity.de/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SharePoint Branding</title><link>http://sharepointcommunity.de/blogs/cotto/default.aspx</link><description /><dc:language /><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Datasheet View überlagert Flyout-Menü</title><link>http://sharepointcommunity.de/blogs/cotto/archive/2011/11/17/datasheet-view-252-berlagert-flyout-men-252.aspx</link><pubDate>Thu, 17 Nov 2011 11:41:00 GMT</pubDate><guid isPermaLink="false">1eb0e3d2-d83a-44d0-b840-d81a9d15b663:39316</guid><dc:creator>Christian Otto</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sharepointcommunity.de/blogs/cotto/rsscomments.aspx?PostID=39316</wfw:commentRss><comments>http://sharepointcommunity.de/blogs/cotto/archive/2011/11/17/datasheet-view-252-berlagert-flyout-men-252.aspx#comments</comments><description>&lt;p&gt;Ich habe heute zu einem SharePoint-Problem recherchiert, das ich hier noch einmal kurz darstellen m&amp;ouml;chte:&lt;/p&gt;
&lt;p&gt;Schaltet man innerhalb einer Library &amp;uuml;ber die &amp;quot;Library Tools&amp;quot;&amp;nbsp; von der &amp;quot;Standard View&amp;quot; auf die &amp;quot;Datasheet View&amp;quot; um, und wechselt dann wieder zur&amp;uuml;ck in die normale &amp;quot;Browse&amp;quot;-Ansicht, so werden etwaige Flyout-Men&amp;uuml;s aus der Hauptnavigation (also innerhalb von &amp;quot;.s4-tn&amp;quot;) von dem Datasheet verdeckt. Das generierte Datasheet ist im DOM nicht weiteres als ein Element vom Typ &amp;quot;&amp;lt;object&amp;gt;&amp;quot;, welches einige verschiede Parameter (&amp;quot;&amp;lt;param&amp;gt;&amp;quot;) besitzt. Ein sehr &amp;auml;hnliches Szenario kennt man unter Umst&amp;auml;nden vom Einsatz von Flash, wo man als param ein &amp;quot;wmode&amp;quot; mit dem Wert &amp;quot;transparent&amp;quot; setzen muss, um ein &amp;Uuml;berlagen von Flyouts durch Flash zu umgehen.&lt;/p&gt;
&lt;p&gt;Leider klappt das in diesem Fall nicht, und auch das Setzen von z-index-Werten bei diversen betroffenen Elementen via CSS brachte &amp;uuml;berhaupt keinen Erfolg. Ein wenig resigniert bin ich dann auch noch im Technet auf einen Thread gesto&amp;szlig;en, der das Ganze best&amp;auml;tigt. Die Kernaussage dort: &amp;quot;The cause for that is the datasheet view overrides the onload handler. Unfortunately, there is no workaround so far and I&amp;rsquo;m sorry for the inconvenience our product brought to you.&amp;quot; Siehe dazu &lt;a target="_blank" href="http://social.technet.microsoft.com/Forums/en-us/sharepointgeneral/thread/f7cdd18b-5a61-46ad-bbae-7a6ba48240d8"&gt;http://social.technet.microsoft.com/Forums/en-us/sharepointgeneral/thread/f7cdd18b-5a61-46ad-bbae-7a6ba48240d8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Schade. Aber vielleicht immerhin auch eine Erkenntnis, dass es hierf&amp;uuml;r (zumindest ad hoc) keine L&amp;ouml;sung gibt.&lt;/p&gt;
&lt;p&gt;Viele Gr&amp;uuml;&amp;szlig;e,&lt;/p&gt;
&lt;p&gt;Christian Otto&lt;br /&gt;&lt;a target="_blank" href="http://www.maximago.de"&gt;www.maximago.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://sharepointcommunity.de/aggbug.aspx?PostID=39316" width="1" height="1"&gt;</description><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Branding/default.aspx">Branding</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/CSS/default.aspx">CSS</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Datasheet+View/default.aspx">Datasheet View</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Flyout/default.aspx">Flyout</category></item><item><title>SharePoint 2010 CSS Reference Chart</title><link>http://sharepointcommunity.de/blogs/cotto/archive/2011/10/20/sharepoint-2010-css-reference-chart.aspx</link><pubDate>Thu, 20 Oct 2011 14:25:00 GMT</pubDate><guid isPermaLink="false">1eb0e3d2-d83a-44d0-b840-d81a9d15b663:38422</guid><dc:creator>Christian Otto</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sharepointcommunity.de/blogs/cotto/rsscomments.aspx?PostID=38422</wfw:commentRss><comments>http://sharepointcommunity.de/blogs/cotto/archive/2011/10/20/sharepoint-2010-css-reference-chart.aspx#comments</comments><description>&lt;p&gt;Jeder, der sich mit dem Thema SharePoint Branding besch&amp;auml;ftigt, kennt wohl Heather Solomon und ihr &lt;a target="_blank" title="CSS Reference Chart SharePoint 2007" href="http://www.heathersolomon.com/content/sp07cssreference.htm"&gt;CSS Reference Chart f&amp;uuml;r SharePoint 2007&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mittlerweile hat Heather auch f&amp;uuml;r SharePoint 2010 ein entsprechendes CSS Reference Chart erstellt, und damit eine enorm hilfreiche Nachschlage-M&amp;ouml;glichkeit geschaffen.&lt;/p&gt;
&lt;p&gt;Das 2010er CSS Reference Chart ist zu finden unter &lt;a target="_blank" title="CSS Reference Chart SharePoint 2010" href="http://sharepointexperience.com/csschart/csschart.html"&gt;http://sharepointexperience.com/csschart/csschart.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Viele Gr&amp;uuml;&amp;szlig;e,&lt;/p&gt;
&lt;p&gt;Christian Otto&lt;br /&gt;&lt;a target="_blank" href="http://www.maximago.de/"&gt;www.maximago.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://sharepointcommunity.de/aggbug.aspx?PostID=38422" width="1" height="1"&gt;</description><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Branding/default.aspx">Branding</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/CSS/default.aspx">CSS</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category></item><item><title>Variations Label Menu erscheint nicht in custom Master Page? Ein Workaround.</title><link>http://sharepointcommunity.de/blogs/cotto/archive/2011/04/01/variations-label-menu-erscheint-nicht-in-custom-master-page-ein-workaround.aspx</link><pubDate>Fri, 01 Apr 2011 12:00:00 GMT</pubDate><guid isPermaLink="false">1eb0e3d2-d83a-44d0-b840-d81a9d15b663:29666</guid><dc:creator>Christian Otto</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sharepointcommunity.de/blogs/cotto/rsscomments.aspx?PostID=29666</wfw:commentRss><comments>http://sharepointcommunity.de/blogs/cotto/archive/2011/04/01/variations-label-menu-erscheint-nicht-in-custom-master-page-ein-workaround.aspx#comments</comments><description>&lt;p&gt;Wer mit Variations unter SharePoint 2010 ein mehrsprachiges System realisiert, und dabei auf eigene Master Pages baut, der kennt vielleicht das Problem:&lt;br /&gt;Warum erscheint der Sprachumschalter nicht auf der Seite?&lt;/p&gt;
&lt;p&gt;Die L&amp;ouml;sung liegt in einer Zeile Code, die man in der Datei &amp;quot;VariationsLabelMenu.ascx&amp;quot; im Controltemplates-Verzeichnis einf&amp;uuml;gen muss:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;lt;cms:VariationsLabelEcbMenu id =&amp;quot;varlabelmenu1&amp;quot; DataSourceID=&amp;quot;LabelMenuDataSource&amp;quot; DisplayText=&amp;quot;Links to Variations&amp;quot; IsCallbackMode=&amp;quot;true&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Gefunden hier: &lt;a target="_blank" href="http://www.khamis.net/blog/Lists/Posts/Post.aspx?ID=15"&gt;http://www.khamis.net/blog/Lists/Posts/Post.aspx?ID=15&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Viele Gr&amp;uuml;&amp;szlig;e,&lt;/p&gt;
&lt;p&gt;Christian Otto&lt;br /&gt;&lt;a target="_blank" href="http://www.maximago.de"&gt;www.maximago.de&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://sharepointcommunity.de/aggbug.aspx?PostID=29666" width="1" height="1"&gt;</description><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Mehrsprachigkeit/default.aspx">Mehrsprachigkeit</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Variations/default.aspx">Variations</category></item><item><title>Javascript-Fehler durch Rich Text Editor und CSS im SharePoint 2010</title><link>http://sharepointcommunity.de/blogs/cotto/archive/2010/11/26/javascript-fehler-durch-rich-text-editor-und-css-im-sharepoint-2010.aspx</link><pubDate>Fri, 26 Nov 2010 08:28:00 GMT</pubDate><guid isPermaLink="false">1eb0e3d2-d83a-44d0-b840-d81a9d15b663:24036</guid><dc:creator>Christian Otto</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sharepointcommunity.de/blogs/cotto/rsscomments.aspx?PostID=24036</wfw:commentRss><comments>http://sharepointcommunity.de/blogs/cotto/archive/2010/11/26/javascript-fehler-durch-rich-text-editor-und-css-im-sharepoint-2010.aspx#comments</comments><description>&lt;h3&gt;Zum Hintergrund&lt;/h3&gt;
&lt;p&gt;Bei der Bearbeitung einer Wiki-Seite ist uns w&amp;auml;hrend der Testphase eines Projekts ein Javascript-Fehler aufgefallen, der daf&amp;uuml;r gesorgt hat, dass sich im Ribbon die &amp;quot;Formatvorlagen&amp;quot; wie auch die &amp;quot;Markupformatvorlagen&amp;quot; nicht aufklappen lie&amp;szlig;en, diese Optionen also nicht zu nutzen waren.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/8446.JS_2D00_Fehler_5F00_RTE_5F00_blur.png"&gt;&lt;img src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/8446.JS_2D00_Fehler_5F00_RTE_5F00_blur.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7853.Formatvorlagen.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7853.Formatvorlagen.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7853.Formatvorlagen.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/3731.Markupformatvorlagen.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/3731.Markupformatvorlagen.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Troubleshooting&lt;/h3&gt;
&lt;p&gt;Nachdem nun mit der Datei &amp;quot;sp.ui.rte.js&amp;quot; der Ausl&amp;ouml;ser der Fehlermeldung feststand, ging es ans Troubleshooting. Hierzu kann man wunderbar den Skript-Debugger in den Entwicklertools (a.k.a. F12) des Internet Explorers 8 nutzen.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7457.IE8_2D00_Entwicklertools_5F00_Debugger.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7457.IE8_2D00_Entwicklertools_5F00_Debugger.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dieser brachte dann vor allem als Ergebnis, dass scheinbar ein Zugriffsproblem besteht, weshalb wir f&amp;uuml;r einen Moment annahmen, dass es unter Umst&amp;auml;nden an den Rechten unseres Benutzer-Accounts liegen k&amp;ouml;nnte.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/1007.JS_2D00_Fehler_5F00_RTE_5F00_Debugger_5F00_cut.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/1007.JS_2D00_Fehler_5F00_RTE_5F00_Debugger_5F00_cut.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Als wir dann testweise dieselbe Seite einmal mit dem Firefox betrachteten, und dort das Developer-Tool &amp;quot;Firebug&amp;quot; zu Hilfe nahmen, kamen wir der Sache eindeutiger auf dem Grund.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/5775.JS_2D00_Fehler_5F00_RTE_5F00_Firebug_5F00_blur.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/5775.JS_2D00_Fehler_5F00_RTE_5F00_Firebug_5F00_blur.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dort konnten wir erkennen, dass es scheinbar ein Problem mit einer von uns erstellten CSS-Datei gibt.&lt;/p&gt;
&lt;h3&gt;Die L&amp;ouml;sung&lt;/h3&gt;
&lt;p&gt;Genau die von uns eigens f&amp;uuml;r das Theming bzw. Customizing des SharePoint erstellte CSS-Datei war der Grund f&amp;uuml;r den Javascript-Fehler. Naja, nicht direkt die Datei selber, sondern vielmehr die Art und Weise, wie wir die Datei in der Masterpage eingebunden haben.&lt;/p&gt;
&lt;p&gt;Um n&amp;auml;mlich m&amp;ouml;glichst flexibel und schnell f&amp;uuml;r die Testumgebung des Kunden entwickeln zu k&amp;ouml;nnen, haben wir die CSS-Datei auf einen unserer Server ausgelagert und in der Masterpage dann per absoluten Pfad eingebunden.&lt;/p&gt;
&lt;p&gt;Sobald aber die &amp;quot;Bearbeiten&amp;quot;-Funktion des Ribbons genutzt wird, und die Funktionalit&amp;auml;ten des Rich Text Editors erforderlich werden, versucht die Datei &amp;quot;sp.ui.rte.js&amp;quot; alle vorhandenen Styles aus der aktuellen Seite zu ziehen, da diese ja auch die Styles f&amp;uuml;r die &amp;quot;Formatvorlagen&amp;quot; und die &amp;quot;Markupformatvorlagen&amp;quot; beinhalten (die sich in der &amp;quot;HTMLEditorStyles.css&amp;quot; im Layouts-Ordner befinden).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Was nun scheitert ist der Zugriff auf die Styles der &amp;quot;externen&amp;quot; CSS-Datei, und genau das l&amp;ouml;st den Javascript-Fehler aus.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Die L&amp;ouml;sung lautet also: eigene CSS-Dateien f&amp;uuml;r das Theming bzw. Customizing M&amp;Uuml;SSEN auf dem System selbst liegen, idealerweise z.B. im &amp;quot;themeable&amp;quot;-Ordner, damit ein richtiger Zugriff darauf erfolgen kann.&lt;/p&gt;
&lt;p&gt;Viele Gr&amp;uuml;&amp;szlig;e,&lt;/p&gt;
&lt;p&gt;Christian Otto&lt;br /&gt;&lt;a target="_blank" href="http://www.maximago.de/"&gt;www.maximago.de&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://sharepointcommunity.de/aggbug.aspx?PostID=24036" width="1" height="1"&gt;</description><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Branding/default.aspx">Branding</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Design/default.aspx">Design</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/CSS/default.aspx">CSS</category></item><item><title>4 Ebenen des SharePoint-Branding und das Pareto-Prinzip</title><link>http://sharepointcommunity.de/blogs/cotto/archive/2010/11/25/4-ebenen-des-sharepoint-branding-und-das-pareto-prinzip.aspx</link><pubDate>Thu, 25 Nov 2010 11:41:00 GMT</pubDate><guid isPermaLink="false">1eb0e3d2-d83a-44d0-b840-d81a9d15b663:23982</guid><dc:creator>Christian Otto</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sharepointcommunity.de/blogs/cotto/rsscomments.aspx?PostID=23982</wfw:commentRss><comments>http://sharepointcommunity.de/blogs/cotto/archive/2010/11/25/4-ebenen-des-sharepoint-branding-und-das-pareto-prinzip.aspx#comments</comments><description>&lt;p&gt;Ich habe bei den Jungs von SharePoint Blues einen Artikel gefunden, in dem sie die M&amp;ouml;glichkeiten des SharePoint-Brandings auf vier unterschiedliche Ebenen aufteilen &amp;ndash; und auch sagen, wo man aus ihrer Sicht als Designer ganz schnell abwinken sollte (Aufgrund Schwierigkeiten, Aufwand, etc.).&lt;/p&gt;
&lt;p&gt;Das Ganze bringen sie mit dem Pareto-Prinzip in Verbindung, nach dem man 80% der Kunden bzw. Besucher bereits mit 20% seiner Arbeit &amp;uuml;berzeugen kann, man aber 80% seiner Arbeit aufbringen muss, um auch die &amp;uuml;brigen 20% der Besucher zu &amp;uuml;berzeugen.&lt;/p&gt;
&lt;p&gt;Ihr findet den Artikel hier: &lt;a target="_blank" href="http://www.sharepointblues.com/2010/09/17/four-levels-of-branding/"&gt;http://www.sharepointblues.com/2010/09/17/four-levels-of-branding/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Viele Gr&amp;uuml;&amp;szlig;e,&lt;/p&gt;
&lt;p&gt;Christian Otto&lt;br /&gt;&lt;a target="_blank" href="http://www.maximago.de"&gt;www.maximago.de&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://sharepointcommunity.de/aggbug.aspx?PostID=23982" width="1" height="1"&gt;</description><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Branding/default.aspx">Branding</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Pareto/default.aspx">Pareto</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Design/default.aspx">Design</category></item><item><title>Branding-Besonderheiten in SharePoint 2010</title><link>http://sharepointcommunity.de/blogs/cotto/archive/2010/09/28/theming-besonderheiten-in-sharepoint-2010.aspx</link><pubDate>Tue, 28 Sep 2010 06:54:00 GMT</pubDate><guid isPermaLink="false">1eb0e3d2-d83a-44d0-b840-d81a9d15b663:21536</guid><dc:creator>Christian Otto</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://sharepointcommunity.de/blogs/cotto/rsscomments.aspx?PostID=21536</wfw:commentRss><comments>http://sharepointcommunity.de/blogs/cotto/archive/2010/09/28/theming-besonderheiten-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;Nachdem nun immer mehr unserer Kunden auf SharePoint 2010 gewechselt sind, und demzufolge entsprechende Branding-Projekte entstanden sind, m&amp;ouml;chte ich hier zum Einstieg in der SharePointCommunity einige grundlegende Erfahrungen das 2010er-Branding betreffend loswerden.&lt;/p&gt;
&lt;p&gt;In diesem ersten Beitrag von mir sind sicher auch Details enthalten, die jetzt nicht f&amp;uuml;r jeden absolutes Neuland sind, aber mir war es wichtig, mal mit einem &amp;Uuml;berblick zu starten. Los geht&amp;acute;s.&lt;/p&gt;
&lt;p&gt;Schauen wir uns also die Besonderheiten und Neuerungen an, die vor allem das Entwickeln von Master Pages sowie das SharePoint-Theming generell betreffen.&lt;/p&gt;
&lt;h3&gt;Das Ribbon (oder im Deutschen &amp;quot;Men&amp;uuml;band&amp;quot;): always on top&lt;/h3&gt;
&lt;p&gt;Das Ribbon ist eine der offensichtlichsten Neuerungen im SharePoint 2010 und wurde schon an vielen Stellen beschrieben und diskutiert. Es dockt sich im oberen Bereich des Browsers an und ist immer sichtbar, auch wenn andere Bereiche der Seite m&amp;ouml;glicherweise scrollbar sind. Dies wird dadurch gew&amp;auml;hrleistet, dass das Ribbon sich in einem eigenen Container befindet, und der Rest der Seite (durch ein clientseitiges Script, im Folgenden &amp;quot;ECMAScript&amp;quot;) an die restliche, zur Verf&amp;uuml;gung stehende Browserh&amp;ouml;he (den Viewport) angepasst und bei Bedarf mit Scrollbalken versehen wird. Es entsteht dadurch ein &amp;quot;frame&amp;quot;-&amp;auml;hnliches Gef&amp;uuml;hl, das wir von vielen Webseiten noch aus den 1990er-Jahren kennen. Der obere Bereich ist fix, der untere Bereich scrollbar. Wie die Positionierung der Bereiche erreicht wird, dazu u.a. im Folgenden mehr.&lt;/p&gt;
&lt;h3&gt;Die Standard Master Page und ihr Markup im Detail&lt;/h3&gt;
&lt;p&gt;Die v4.master kommt als die neue Standard Master Page im SharePoint 2010 und bringt in ihrem Markup einige erw&amp;auml;hnenswerte Besonderheiten mit, die hier nun kurz vorgestellt werden. Diese sind vor allem auch dann relevant, wenn man f&amp;uuml;rs Branding oder Customizing auf die v4.master zur&amp;uuml;ckgreift und sie als Vorlage f&amp;uuml;r eine eigene Master Page verwendet.&lt;/p&gt;
&lt;p&gt;Schauen wir uns also den Quellcode der v4.master an bestimmten Stellen einmal genauer an.&lt;/p&gt;
&lt;h4&gt;Head&lt;/h4&gt;
&lt;p&gt;Im Head-Bereich finden wir zun&amp;auml;chst ein Script bzw. wird innerhalb eines Scripts eine Variable mit &amp;quot;true&amp;quot; definiert, womit festgelegt wird, dass es sich tats&amp;auml;chlich um einen SharePoint in Version 4 (MOSS 2010) handelt:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/8037.v4true.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/8037.v4true.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Body&lt;/h4&gt;
&lt;p&gt;Das n&amp;auml;chste relevante Markup steckt im body-Tag:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/2677.body_2D00_scroll.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/2677.body_2D00_scroll.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das &amp;quot;scroll&amp;quot;-Attribut (nicht XHTML 1.0 Strict konform!) erzwingt im Internet Explorer ein Verbergen der Scrollleisten. F&amp;uuml;r andere Browser wird dem body-Element zus&amp;auml;tzlich die Klasse &amp;quot;v4master&amp;quot; vergeben, mit der ebenfalls die Scrollleisten ausgeblendet werden.&lt;/p&gt;
&lt;p&gt;Warum aber soll der body nicht scrollbar sein? Damit das Ribbon immer am oberen Browserrand &amp;quot;haftet&amp;quot;, und damit seine H&amp;ouml;he der des Viewports, also des gesamten sichtbaren Bereichs im Browserfenster entspricht. Dies ist vor allem dann wichtig, wenn die Dialog-Fenster in Form von Popups in Erscheinung treten, da diese sich zentriert &amp;uuml;ber der Seite (bzw. &amp;uuml;ber dem body) positionieren.&lt;/p&gt;
&lt;p&gt;Aus eigener Erfahrung sollte man dieses gesamte Verhalten m&amp;ouml;glichst unangetastet lassen, denn wenn man z.B. ein Scrollen der gesamten Seite erzwingen m&amp;ouml;chte (d.h. die H&amp;ouml;he des body ist u.U. gr&amp;ouml;&amp;szlig;er als der Viewport), dann verschwinden die Dialog-Fenster m&amp;ouml;glicherweise aus dem sichtbaren Bereich!&lt;/p&gt;
&lt;h4&gt;Ribbon&lt;/h4&gt;
&lt;p&gt;Den n&amp;auml;chsten wichtigen Bereich in der v4.master stellt das Ribbon bzw. der Ribbon-Container dar.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/2158.ribbon.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/2158.ribbon.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das ECMAScript (s.o.), welches f&amp;uuml;r die Positionierung des Ribbons verantwortlich ist, verwendet die ID &amp;quot;s4-ribbonrow&amp;quot;, um den Ribbon-Container ausfindig zu machen, d.h. die ID darf nicht ver&amp;auml;ndert werden.&lt;/p&gt;
&lt;p&gt;Die Klasse &amp;quot;s4-pr&amp;quot; bringt den Container auf die volle Breite, &amp;quot;pr&amp;quot; steht dabei f&amp;uuml;r &amp;quot;page row&amp;quot;. Die Klasse &amp;quot;s4-ribbonrowhidetitle&amp;quot; wird verwendet, um bei der Ribbon-Positionierung festzulegen, in welchem Zustand sich das Ribbon gerade befindet. Der Wert ver&amp;auml;ndert sich, sobald das ECMAScript auf der Seite initialisiert wird.&lt;/p&gt;
&lt;p&gt;Das Ribbon-Control selbst sitzt innerhalb des Ribbon-Containers. Man sollte keine weiteren Elemente innerhalb des Containers platzieren, da dessen H&amp;ouml;he mittels statischer Werte gesetzt wird.&lt;/p&gt;
&lt;h4&gt;Workspace und bodyContainer&lt;/h4&gt;
&lt;p&gt;Unmittelbar auf den Ribbon-Container folgen zwei weitere essenzielle Element der Master Page: das &amp;quot;workspace&amp;quot;-Element sowie der &amp;quot;bodyContainer&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7444.workspace.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/7444.workspace.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das &amp;quot;workspace&amp;quot;-Element ist das Element, das scrollbar wird bzw. bleibt, auch wenn die Ribbon-Positionierung aktiv ist, stellt also quasi den &amp;quot;unteren Teil&amp;quot; der Frame-&amp;auml;hnlichen Ansicht dar.&lt;/p&gt;
&lt;p&gt;Auch hier ist die ID verpflichtend und darf nicht ver&amp;auml;ndert werden, da das o.g. Script das Element &amp;uuml;ber seine ID anspricht. Direkt innerhalb des &amp;quot;workspace&amp;quot;-Elements sitzt der &amp;quot;bodyContainer&amp;quot;, dessen ID von Bedeutung ist, da damit innerhalb des Scripts die Breite des Seiteninhalts ermittelt wird.&lt;/p&gt;
&lt;p&gt;Beide Elemente sind also Pflicht, sonst kann das System nicht funktionieren!&lt;/p&gt;
&lt;h4&gt;Die titlerow&lt;/h4&gt;
&lt;p&gt;Weiterhin von Interesse ist die &amp;quot;titlerow&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharepointcommunity.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/3247.titlerow.png"&gt;&lt;img style="border:1px solid black;" src="http://sharepointcommunity.de/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/cotto/3247.titlerow.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Auch dieses Element muss eine spezielle ID haben, aber die Ribbon-Positionierung funktioniert auch, wenn die ID fehlt. Wenn man die ID entfernt, aber das Element bel&amp;auml;sst, so wird die Title Area nicht von der Seite entfernt, sobald man ein Ribbon-Tab &amp;ouml;ffnet, was ansonsten passiert.&lt;/p&gt;
&lt;h4&gt;Dialog-Modus/Popups&lt;/h4&gt;
&lt;p&gt;Wie schon erw&amp;auml;hnt erscheinen die Dialog-Fenster bzw. Popups immer zentriert im Viewport des Browsers, &amp;uuml;berlagern den eigentlichen Seiteninhalt und grauen diesen im Hintergrund aus.&lt;/p&gt;
&lt;p&gt;Bei Verwendung einer eigenen Master Page greift diese auch f&amp;uuml;r die Dialog-Fenster, die innerhalb eines iFrame eine komplette HTML-Seite beinhalten, auf die das Master Page Layout angewandt wird. Dadurch kann es hier zu ungewollten Darstellungen kommen, so dass z.B. Navigations- oder Layout-Elemente in den Dialog-Fenstern erscheinen, die dort nicht gew&amp;uuml;nscht sind.&lt;/p&gt;
&lt;p&gt;Um bestimmte Elemente auszublenden, sobald die Seite im Dialog-Modus geladen wird, wird die Klasse &amp;quot;s4-notdlg&amp;quot; eingesetzt. Diese beinhaltet ein &amp;quot;display: none;&amp;quot;, und man kann diese Klasse f&amp;uuml;r beliebige eigene Elemente verwenden, um diese in der Dialog-Ansicht nicht darzustellen.&lt;/p&gt;
&lt;h4&gt;ECMA-Script zur Ribbon-Positionierung&lt;/h4&gt;
&lt;p&gt;Der genaue Code, d.h. die Funktion zur Ribbon-Positionierung, findet sich in der Datei &amp;quot;init.debug.js&amp;quot; innerhalb des Layout-Ordners, dort als Funktion &amp;quot;FixRibbonAndWorkspaceDimensions()&amp;quot;.&lt;/p&gt;
&lt;p&gt;Die Logik, die die Ribbon-Positionierung verantwortet, wird auf drei Arten ausgel&amp;ouml;st: wenn die Seite l&amp;auml;dt, wenn das Browserfenster vergr&amp;ouml;&amp;szlig;ert oder verkleinert wird, und wenn das Ribbon vergr&amp;ouml;&amp;szlig;ert oder verkleinert wird, etwa wenn ein Tab angeklickt wird.&lt;/p&gt;
&lt;p&gt;Folgend der Ablauf der o.g. Funktion:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Existieren die Elemente &amp;quot;s4-ribbonrow&amp;quot;, &amp;quot;s4-workspace&amp;quot; und &amp;quot;s4-bodyContainer&amp;quot; (und &amp;quot;s4-titlerow&amp;quot;)? Fehlt eines der drei ersten Elemente, wird die Funktion nicht ausgef&amp;uuml;hrt.&lt;/li&gt;
&lt;li&gt;Hat das &amp;quot;workspace&amp;quot;-Element zus&amp;auml;tzlich die Klasse &amp;quot;s4-nosetwidth&amp;quot;? Wenn ja, so wird von keinem Element die Breite angepasst (hilfreich bei statischen Layouts mit festen Breiten).&lt;/li&gt;
&lt;li&gt;Anhand von statischen Werten sowie berechneten Werten wird dann die H&amp;ouml;he des Ribbon-Containers ermittelt. Sofern dieser mittels &amp;quot;visibility: hidden&amp;quot; ausgeblendet ist, wird die errechnete H&amp;ouml;he automatisch auf 0 gesetzt.&lt;/li&gt;
&lt;li&gt;Dann erfolgt die Berechnung des &amp;quot;workspace&amp;quot;-Containers, indem die gesamte Viewport-H&amp;ouml;he mit der H&amp;ouml;he und der Positionierung des Ribbon-Containers gegengerechnet wird. Die errechnete H&amp;ouml;he wird dann auf das &amp;quot;workspace&amp;quot;-Element angewandt, die Scrollleisten erscheinen dort bei Bedarf, d.h. abh&amp;auml;ngig von der Menge des dort gesetzten Contents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Die Ribbon-Positionierung aushebeln&lt;/h4&gt;
&lt;p&gt;M&amp;ouml;chte man die Positionierung des Ribbons umgehen bzw. so gestalten, dass das Ribbon mit dem Seiteninhalt mitscrollt, so muss man folgenderma&amp;szlig;en vorgehen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Die &amp;quot;_fV4UI&amp;quot;-Variable muss aus dem Head-Bereich entfernt werden.&lt;/li&gt;
&lt;li&gt;Die ID des &amp;quot;workspace&amp;quot;-Elements muss entfernt oder ver&amp;auml;ndert werden, damit das ECMAScript abbricht.&lt;/li&gt;
&lt;li&gt;Das &amp;quot;scroll&amp;quot;-Attribut muss aus dem &amp;quot;body&amp;quot;-Element entfernt werden.&lt;/li&gt;
&lt;li&gt;In den eigenen CSS-Dateien m&amp;uuml;ssen beim &amp;quot;body&amp;quot;-Element die Werte f&amp;uuml;r die Attribute &amp;quot;width&amp;quot;, &amp;quot;height&amp;quot; und &amp;quot;overflow&amp;quot; an die eigenen gew&amp;uuml;nschten Werte angepasst werden.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, dass war also mein erster (aber nicht letzter) Beitrag hier in der Community. Ich hoffe, ich habe einen guten grundlegenden Einblick in die Master Page Systematik und das Branding f&amp;uuml;r SharePoint 2010 gegeben. Weitere Branding-Erfahrungen und -Tipps folgen.&lt;/p&gt;
&lt;p&gt;Eine hilfreiche Quelle f&amp;uuml;r diesen Beitrag war u.a. ein Blog-Beitrag von Jonathan Kern, zu finden unter &lt;a target="_blank" href="http://blogs.msdn.com/b/sharepoint/archive/2010/04/06/customizing-ribbon-positioning-in-sharepoint-2010-master-pages.aspx"&gt;http://blogs.msdn.com/b/sharepoint/archive/2010/04/06/customizing-ribbon-positioning-in-sharepoint-2010-master-pages.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Viele Gr&amp;uuml;&amp;szlig;e,&lt;/p&gt;
&lt;p&gt;Christian Otto&lt;br /&gt;&lt;a target="_blank" href="http://www.maximago.de/"&gt;www.maximago.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://sharepointcommunity.de/aggbug.aspx?PostID=21536" width="1" height="1"&gt;</description><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Master+Page/default.aspx">Master Page</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Branding/default.aspx">Branding</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Customizing/default.aspx">Customizing</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Theming/default.aspx">Theming</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://sharepointcommunity.de/blogs/cotto/archive/tags/Ribbon/default.aspx">Ribbon</category></item></channel></rss>