<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Mavention</title><link>http://www.mavention.nl/rss</link><description>Mavention laatste nieuws en blog posts</description><ttl>60</ttl><atom:link href="http://www.mavention.nl/rss" rel="self" type="application/rss+xml" /><item><title>Mavention organiseert 22 mei DIWUG event</title><link>http://www.mavention.nl/nieuws/Mavention-organiseert-22-mei-DIWUG-event</link><pubDate>Tue, 21 May 2013 07:00:00 GMT</pubDate><dc:creator>Bert Verzijl</dc:creator><guid isPermaLink="true">http://www.mavention.nl/nieuws/Mavention-organiseert-22-mei-DIWUG-event</guid><description><![CDATA[<p class="mv-Element-PIntro">Op woensdag 22 mei is Mavention de sponsor van het DIWUG event in de Caballero fabriek, waar Mavention ook gevestigd is. </p><p class="mv-Element-P">De Dutch Information Worker User Group (DIWUG) is de Nederlandse community rondom SharePoint en de wereld rondom de 'information worker'. Tijdens de aankomende community avond worden een tweetal presentaties gegeven over relevante onderwerpen rondom het SharePoint platform.<br> <br>Om 18.00 uur start de avond met een hapje en een drankje. Na een korte introductie door Mavention zal Marianne van Wanrooij (Connected Solutions) starten met een sessie over de nieuwe Office integratie features in SharePoint 2013. Stefan Strube (2die4 it solutions) vertelt aansluitend hoe je als power user de zoekresultaten er beter uit kan laten zien, zonder dat je er een ontwikkelaar bij hoeft te roepen! Zoals gebruikelijk wordt de avond afgesloten met een SharePint!</p><p class="mv-Element-P">Mavention heeft dit event al verschillende keren mogen organiseren en hoopt ook dit keer weer op een hoge opkomst en een interessante avond. Kijk voor meer informatie over de Diwug op de, door Mavention gerealiseerde website, <a href="http&#58;//www.diwug.nl/"><span lang="NL">www.diwug.nl</span></a> Inschrijven kan via deze site. </p>]]></description></item><item><title>Inconvenient rootfolder parameter in discussions</title><link>http://www.mavention.nl/blog/inconvenient-rootfolder-parameter-in-discussions</link><pubDate>Fri, 17 May 2013 14:00:00 GMT</pubDate><dc:creator>Albert-Jan Schot</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/inconvenient-rootfolder-parameter-in-discussions</guid><description><![CDATA[<p>As many of you would probably know there are some caveats when working with URL’s in SharePoint. Some documentation will tell you the URL’s are in fact case insensitive, while other information on the internet will let you to believe that in fact are case sensitive and using a wrong casing can result in major issues. </p><p>Now as most things in SharePoint the answer to the result of that discussion is&#58; ‘it depends’.</p><p>If you would enter your URL to your SharePoint environment like&#58;  </p><p> 
   <a href="#">http&#58;//SomeIntranet</a> </p><p>While IIS knows your site as </p><p>
   <a href="#">http&#58;//someintranet</a> </p><p>You would be redirected correctly, without any errors or hassle. However if you would have a wrong casing in your RootFolder when uploading documents might end up in the wrong place, as is proven in 
   <a href="http&#58;//mqsharepoint.blogspot.nl/2010/10/sharepoint-is-case-sensitive.html" target="_blank">a blog post about SharePoint is Case-Sensitive</a>.</p><p>Having that in mind I didn’t take much risks and always used the correct casing in my URL’s having no problem with it. However I recently was called in on a project that had a strange issue&#58; For some of the users of an intranet the reply’s they made on discussions were not stored and posting them didn’t give an error. Now for most of the users their replies showed up perfectly so my first thought was to check the ULS logs to make sure there were no exceptions thrown when posting replies.</p><p>Since there was nothing there I moved up to ruling out the usual, but since there was no real pattern I didn’t find much usefully, and was not able to reproduce the error. However at some point it struck me that if there weren’t any errors the replies should be there. So I created a view that actually showed all items (by default a Discussion board list only shows the ContentType Discussion), and all the ‘missing’ replies showed up in the rootfolder instead of the discussion. Since discussions are some sort of folder with extra metadata it all started to make sense. If the wrong URL is used the reply cannot be saved to the correct discussion. So I dug up the IIS logs and checked all the reference URLS.</p><p>Now that is where it all started to become a bit frustrating though. Within SharePoint there are two ways to enter a discussion. You could either use&#58;</p><p> 
   <a href="#">http&#58;//someintranet/list/discussionboard/My%20First%20Discussion</a></p><p>Or you could use the following&#58;</p><p> 
   <a href="#">http&#58;//someintranet/list/discussionboard/view.aspx?RootFolder=http%3A%2F%2Fsomeintranet%2Flist%2Fdiscussionboard%2FMy%2520First%2520Discussion%20</a></p><p>Both of these URLs will end up serving you with the same discussion. Now in both discussions you would have the reply button allowing you reply to any given question. If you would hit reply you would always end up with an URL that looks like this&#58;</p><p> 
   <a href="#">http&#58;//someintranet/list/discussionboard/NewForm.aspx?RootFolder=http%3A%2F%2Fsomeintranet%2Flist%2Fdiscussionboard%2FMy%2520First%2520Discussion%20&amp;ContentTypeId=0x0107&amp;DiscussionParentID=17</a></p><p>After some playing around the DiscussionParentID I figured it can be safely deleted from the request, as it seems not to be used anywhere. Leaving only the RootFolder parameter there. Now if you would have wrong capitalization there you would end up with replies in the rootfolder instead of the discussion. So while checking the IIS logs for the request that were made and having the ULS logs to check what happened there I managed to figure it out. If you would enter the following URL</p><p> 
   <a href="#">http&#58;//SOMEINTRANET/list/discussionboard/My%20First%20Discussion</a> two things will happen. Your URL will be translated to the lowercase version that is the correct one but not before a RootFolder parameter is constructed containing the wrong capitalized version of your URL, ending up in something like</p>
<a href="#">http&#58;//someintranet/list/discussionboard/NewForm.aspx?RootFolder=http%3A%2F%2FSOMEINTRANET%2Flist%2Fdiscussionboard%2FMy%2520First%2520Discussion%20&amp;ContentTypeId=0x0107&amp;DiscussionParentID=17</a>
<p>Now as you can see spotting a difference in the URL above (a wrong one) and the working one above that is quite hard, and since it will not throw an error or log anything about not being able to store to the correct discussion figuring it out took me a bit longer then I wished for. What happens under the head is that SharePoint constructs the rootfolder parameter before it rewrites to the corrected URL this having a ‘wrong’ rootfolder parameter. The logic that constructs the rootfolder also implements some caching thus every time a rootfolder parameter is already present it will take that into account. So once you hit a discussion wrongly (with&#58; 
   <a href="#">http&#58;//SOMEINTRANET/list/discussionboard/My%20First%20Discussion</a>) you have a wrong RootFolder parameter, and every call from within that discussionboard will fail when replying to a discussion. </p><p>So whenever you are missing replies in your discussion board make sure to check the rootfolder for replies and make sure you are not reference some wrongly capitalized URL &#58;-).</p><p>Originally posted at&#160;<a href="http&#58;//www.sharepointappie.nl/inconvenient-rootfolder-parameter-in-discussions/">http&#58;//www.sharepointappie.nl/inconvenient-rootfolder-parameter-in-discussions/</a>&#160;</p>]]></description></item><item><title>SharePoint 2013 WCM Bootcamp in the Netherlands</title><link>http://www.mavention.nl/blog/sharepoint-2013-wcm-bootcamp-netherlands</link><pubDate>Fri, 17 May 2013 14:00:00 GMT</pubDate><dc:creator>Waldek Mastykarz</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/sharepoint-2013-wcm-bootcamp-netherlands</guid><description><![CDATA[<p>SharePoint 2013 offers new and improved capabilities for building public-facing websites. Find out how to leverage those capabilities to build modern public-facing websites.</p><p>On June 11 in Utrecht, The Netherlands Microsoft Netherlands organizes a day-long event focused on the new and improved capabilities that SharePoint 2013 offers for building public-facing websites.</p><p>During this SharePoint 2013 WCM Bootcamp you will learn how to build websites using responsive web design and bring your website to live using the SharePoint 2013 content publishing capabilities. Additionally you will learn how to plan, design and build websites by making the best use of the new functionality that SharePoint 2013 offers you.</p><p>The event will consist of two tracks&#58; one focused on the user experience side of public-facing websites and one focused on their architecture. Together you will have a unique opportunity to learn how to build great websites with SharePoint 2013.</p><p>I will be presenting sessions in the architecture track. Other presenters are <strong>Fredrik Holm</strong> (Senior Program Manager Lead at Microsoft, where he leads a team that is responsible for Web Content Management features in addition to many Search based features) and <strong>Josh Stickler</strong> (Program Manager at Microsoft, where he's responsible for a variety of SharePoint 2013 Web Content Management features, including the Design Manager and Variations).</p><p><a href="https&#58;//msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032554364&amp;Culture=nl-NL&amp;community=0">Register now for the WCM Bootcamp</a> and see you in Utrecht on June 11.</p><p>Originally posted at <a href="http&#58;//blog.mastykarz.nl/sharepoint-2013-wcm-bootcamp-netherlands/?utm_source=mavention&amp;utm_medium=preview&amp;utm_campaign=Mavention%20Blog">http&#58;//blog.mastykarz.nl/sharepoint-2013-wcm-bootcamp-netherlands/</a></p>]]></description></item><item><title>Inconvenient Catalog Item Page and ‘Page not found’ (404) experience</title><link>http://www.mavention.nl/blog/inconvenient-catalog-item-page-page-not-found-404-experience</link><pubDate>Fri, 17 May 2013 13:00:00 GMT</pubDate><dc:creator>Waldek Mastykarz</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/inconvenient-catalog-item-page-page-not-found-404-experience</guid><description><![CDATA[<p>Using one Catalog Item Page you can publish the contents of hundreds of items on your website. But what will you see if you type the wrong URL?</p><h2>SharePoint 2013 Search-driven publishing</h2><p>One of the great improvements in SharePoint 2013 is the search-driven publishing model, where the content is published using SharePoint 2013 Search. A particularly interesting scenario of leveraging the search-driven publishing model is cross-site publishing, where content is stored in one or more catalogs and published on your public website.</p><p>When working with cross-site publishing, the content is retrieved from SharePoint 2013 Search index and rendered using a Catalog Item Page. A Catalog Item Page is a Publishing Page with a number of Catalog Item Reuse Web Parts that are responsible for retrieving the right item and rendering its contents on the page. Following screenshot present a sample blog post published using the SharePoint 2013 cross-site publishing capability on the mavention.com website&#58;</p><p><a href="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/01.png"><img width="480" height="319" alt="Blog post published using the SharePoint 2013 cross-site publishing capability on the mavention.com website" src="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/01_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>In most scenarios one of the Catalog Item Reuse Web&#160; Parts placed on the Catalog Item Page is responsible for retrieving the right catalog item based on the information from the URL. And while it works just fine when the URL is typed as expected, the problems start when the URL refers to a catalog item which does not exist.</p><h2>Catalog Item Not Found</h2><p>If your visitors mistype a URL of a catalog item, all that they will see is an empty page&#58;</p><p><a href="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/02.png"><img width="480" height="308" alt="Empty page displayed after mistyping the URL of a catalog item" src="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/02_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>Although SharePoint 2013 allows you to configure a ‘Page not found’ page, it isn’t displayed for non-existing catalog items.</p><p>So why is it happening and, what’s more important, what can we do about it?</p><h2>How it works&#58; catalog items</h2><p>When publishing content from catalogs there are two types of pages that you have to configure&#58; the Category Page and the Catalog Item Page. Both are routed to, using the mapping information stored in the navigation taxonomy of your Site Collection. Following screenshot presents a sample configuration of the Category and Catalog Item pages for a navigation term.</p><p><a href="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/03.png"><img width="480" height="389" alt="Category and Catalog Item pages configuration for a navigation term" src="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/03_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>When you configure a Catalog Item Page for a navigation term, every URL that is located below that term will be rerouted to that Catalog Item Page, for example if <em>Blog</em> is our category located at the <em><a href="http&#58;//www.mavention.com/blog/">/blog</a></em> URL, then <a href="http&#58;//www.mavention.com/blog/mavention-com-live">the blog post about us launching the mavention.com website, located at /blog/mavention-com-live URL</a> will be rerouted to the Catalog Item Page responsible for rendering blog posts.</p><p>Unfortunately during the rerouting process SharePoint doesn’t check if the requested catalog item exists or not&#58; after all the logic that you configured for retrieving the catalog item is stored on the Catalog Item Page to which SharePoint is rerouting you and there is no way SharePoint could guess it.</p><p>Once on the Catalog Item Page, the Catalog Item Reuse Web Part located there takes over the control. Using the information from the URL it executes a search query which returns the requested catalog item which is then rendered on the page.</p><p>The challenge with the Catalog Item Reuse Web Part is that it’s no more than a Search Web Part&#58; it either finds something or not; it contains no additional logic based on the number of retrieved results. As a consequence, if no catalog item is found, no information is rendered on the page.</p><h2>Better Catalog Item Not Found experience</h2><p>From the end user perspective there should be no distinction between how the website handles non-existing Publishing Pages, Category Pages and Catalog Item Pages. In either of those cases the website should let the visitor know that the requested page does not exist and it could suggest some alternatives based on the requested non-existing URL. To put it simple, it should display a <a href="http&#58;//blog.mastykarz.nl/better-sharepoint-2010-page-not-found-404-mavention-page-not-found-widget/">proper ‘Page not found’ page</a>.</p><p>In order to make the Catalog Item Reuse Web Part distinct between existing and non-existing catalog item URLs you have to extend it and check the number of retrieved results. The following snippet presents the extended Catalog Item Reuse Web Part that handles non-existing catalog item URLs&#58;</p><pre class="brush&#58; csharp;">public class MaventionCatalogItemReuseWebPart &#58; CatalogItemReuseWebPart &#123;
    protected override void Render(System.Web.UI.HtmlTextWriter writer) &#123;
        if (GetNumResults() &lt; 1) &#123;
            HttpContext.Current.Server.TransferRequest(String.Format(&quot;&#123;0&#125;?url=&#123;1&#125;&quot;, SPContext.Current.Site.FileNotFoundUrl, HttpContext.Current.Request.RawUrl));
        &#125;
        else &#123;
            base.Render(writer);
        &#125;
    &#125;

    private int GetNumResults() &#123;
        int numResults = -1;

        ResultTableCollection syncResult = AppManager.GetSyncResult(QueryGroupName);
        ResultTable rt = syncResult.Filter(&quot;TableType&quot;, TargetResultTable).FirstOrDefault();
        if (rt != null) &#123;
            numResults = rt.TotalRows;
        &#125;

        return numResults;
    &#125;
&#125;
</pre><p>If you would use this extended version of the Catalog Item Reuse Web Part instead of the one provided with SharePoint 2013 and would navigate to a URL of a non-existing catalog item, instead of an empty page you would be presented with a ‘Page not found’ page&#58;</p><p><a href="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/04.png"><img width="480" height="179" alt="The ‘Page not found’ page displayed when trying to navigate to a non-existing catalog item" src="http&#58;//blog.mastykarz.nl/images/Inconvenient-Catalog-Item-Template-Page-_BCCF/04_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><h2>Summary</h2><p>One of the new capabilities of SharePoint 2013 is cross-site publishing where content stored in a catalog can be published on one or more Site Collections. Unfortunately, when using cross-site publishing, SharePoint doesn’t handle properly non-existing catalog item URLs by itself. By leveraging the extensibility capabilities of SharePoint 2013 you can add support for proper handling of non-existing catalog item URLs with minimal effort.</p><p>Originally posted at <a href="http&#58;//blog.mastykarz.nl/inconvenient-catalog-item-page-page-not-found-404-experience/?utm_source=mavention&amp;utm_medium=preview&amp;utm_campaign=Mavention%20Blog">http&#58;//blog.mastykarz.nl/inconvenient-catalog-item-page-page-not-found-404-experience/</a></p>]]></description></item><item><title>Optimizing SharePoint 2013 websites for mobile devices</title><link>http://www.mavention.nl/blog/optimizing-sharepoint-2013-websites-mobile-devices</link><pubDate>Tue, 07 May 2013 16:00:00 GMT</pubDate><dc:creator>Waldek Mastykarz</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/optimizing-sharepoint-2013-websites-mobile-devices</guid><description><![CDATA[<p>The mobile market is growing continuously, and in the near future, more mobile devices than desktop computers will be used to surf the web. To ensure a user-friendly experience, we must optimize Internet websites for presenting content across the different devices. SharePoint 2013 offers a number of options for optimizing public-facing websites for mobile devices. Depending on your requirements, you can choose one or a combination of several options.</p><p>Read more about optimizing SharePoint 2013 websites for mobile devices in <a href="http&#58;//blogs.msdn.com/b/sharepointdev/archive/2013/05/07/optimizing-sharepoint-2013-websites-for-mobile-devices.aspx">my article published on the SharePoint Dev Blog</a>.</p><p>Originally posted at <a href="http&#58;//blog.mastykarz.nl/optimizing-sharepoint-2013-websites-mobile-devices/?utm_source=mavention&amp;utm_medium=preview&amp;utm_campaign=Mavention%20Blog">http&#58;//blog.mastykarz.nl/optimizing-sharepoint-2013-websites-mobile-devices/</a></p>]]></description></item><item><title>Spaarne Ziekenhuis lanceert website over zorg bij kanker</title><link>http://www.mavention.nl/nieuws/Spaarne-Ziekenhuis-lanceert-website-over-zorg-bij-kanker</link><pubDate>Wed, 01 May 2013 14:00:00 GMT</pubDate><dc:creator>Bert Verzijl</dc:creator><guid isPermaLink="true">http://www.mavention.nl/nieuws/Spaarne-Ziekenhuis-lanceert-website-over-zorg-bij-kanker</guid><description><![CDATA[<p class="mv-Element-PIntro">Op www.zorgbijkanker.nl heeft het Spaarne Ziekenhuis alle informatie over behandeling en zorgverlening bij kanker in het Oncologiecentrum bij elkaar gebracht. Zo heeft het nieuwe Oncologiecentrum van het Spaarne Ziekenhuis niet alleen een fysieke plek, maar ook een virtuele plek gekregen. Deze nieuwe website ontwikkelde Mavention op het SharePoint 2013 platform.&#160; </p><p class="mv-Element-P">Bij de diagnose kanker komt er heel veel op iemand af. Om de behandeling zo goed mogelijk te ondersteunen, vormt de website een extra informatieschakel tussen de patiënt en de behandelaars. De website geeft informatie over alles wat met kanker te maken heeft&#58; over onderzoek, verschillende kankersoorten, diagnose, behandelingen, mogelijkheden voor begeleiding en advies en over het team van specialisten dat bij de zorg betrokken is. Daarnaast zijn er ervaringsverhalen van patiënten te vinden.</p><p class="mv-Element-P"><strong>Toegevoegde waarde SharePoint 2013</strong><br> De nieuwe website zorgbijkanker.nl &#160;is ontwikkeld&#160; binnen de nieuwste versie van SharePoint; het SharePoint 2013 platform. De belangrijkste toegevoegde waarde van SharePoint 2013 voor het Oncologiecentrum is dat de reeds bestaande content op www.spaarneziekenhuis.nl op een slimme manier (her)gebruikt wordt en op één plaats beheerd hoeft te worden. <br>De navigatie en structuur van de website is opgebouwd met behulp van 'Managed navigation and term set' binnen SharePoint. Daarnaast worden technieken toegepast zoals zoekmachineoptimalisatie (SEO), eenvoudig leesbare URLs (Friendly URLs) en 'image renditions' voor de optimalisatie voor het weergeven van afbeeldingen. </p>]]></description></item><item><title>Mavention en Mavim organiseren seminar SharePoint en BPM</title><link>http://www.mavention.nl/nieuws/Mavention-en-Mavim-organiseren-seminar-SharePoint-en-BPM</link><pubDate>Tue, 30 Apr 2013 17:00:00 GMT</pubDate><dc:creator>Bert Verzijl</dc:creator><guid isPermaLink="true">http://www.mavention.nl/nieuws/Mavention-en-Mavim-organiseren-seminar-SharePoint-en-BPM</guid><description><![CDATA[<p class="mv-Element-PIntro">Op donderdag 23 mei a.s. organiseren Mavention en Mavim het seminar 'Completeer informatie in SharePoint én breng Business Process Management (BPM) tot leven'. Dit seminar laat zien hoe procesinformatie, die opgemaakt en beheerd wordt in Mavim Rules, ontsloten kan worden via SharePoint. </p><p class="mv-Element-P"><br>In drie inspirerende sessies wordt ingegaan op de volgende onderwerpen&#58;<br> - Hoe kunt u veranderingen doorvoeren en tegelijkertijd procesinformatie borgen in de organisatie?<br> - Hoe brengt u op een gestructureerde manier procesinformatie naar de werkvloer?<br> - Hoe krijgt u controle op de gehele 'document life cycle' van kwaliteitsdocumenten?<br> - Welke interessante mogelijkheden biedt het nieuwe SharePoint 2013 platform?<br> Centraal in dit seminar staat de <span lang="NL"></span><a href="http&#58;//www.mavention.nl/producten/rules-sharepoint-publicatie">koppeling </a>tussen Mavim Rules en SharePoint, die Mavention en Mavim gezamenlijk hebben ontwikkeld.&#160; De combinatie van beide producten biedt een unieke kans voor de volledige integratie van BPM, kennis delen en samenwerken.<br> <br>Locatie<br> Wij nodigen u van harte uit deze middag bij te wonen op locatie bij Mavention in de Caballero Fabriek unit 40 in Den Haag. Bekijk het <span lang="NL">volledige </span><a href="http&#58;//www.mavim.nl/assets/files/pdf/Programma%20BPM%20for%20Sharepoint%20130523.pdf">programma </a>van het seminar. De aansluitende borrel biedt ruimte voor discussie en het delen van ervaringen.<br> <br>Aanmelden of meer informatie?<br> Wilt u zich aanmelden voor dit gratis seminar? Stuur dan een email naar <a href="mailto&#58;Bert.verzijl@mavention.nl"><span lang="NL">Bert.verzijl@mavention.nl</span></a> en vermeld in het onderwerp 'aanmelden seminar'. U kunt ook bellen met 070 820 02 31.</p>]]></description></item><item><title>Inconvenient embedding SlideShare presentations and other widgets in SharePoint 2013 Publishing Pages</title><link>http://www.mavention.nl/blog/inconvenient-embedding-slideshare-presentations-widgets-sharepoint-2013-publishing-pages</link><pubDate>Tue, 30 Apr 2013 15:00:00 GMT</pubDate><dc:creator>Waldek Mastykarz</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/inconvenient-embedding-slideshare-presentations-widgets-sharepoint-2013-publishing-pages</guid><description><![CDATA[<p>One of the improved capabilities of SharePoint 2013 is embedding widgets in rich content. And while it seems to just work at the first glance, it can be very inconvenient in certain scenarios.</p><h2>Widgets as a part of rich content</h2><p>With the explosive growth of social media in the last years, more and more content is created and shared on different networks. Referring to that content from rich content is a powerful mechanism that the web offers us to further enrich its value.</p><p>The idea of linking to content on the web using hyperlinks is not new and while it just works, it has its limitations. By following the link the user leaves one context and moves into another. This scenario is far from user-friendly especially if you want to discuss some external content. Widgets – short snippets of HTML markup, offer a great alternative, as they allow you to embed the content directly within your page. In this approach your visitors have direct access to the external content without losing the context of your website.</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/01.png"><img width="480" height="421" alt="SlideShare presentation embedded on a web page" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/01_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><h2>Widgets and SharePoint</h2><p>The concept of embedding external content using widgets is not new and has been around for quite some time now. In the past working with widgets in SharePoint was quite challenging. The main reason for this were the security features implemented in the rich text editor used by SharePoint for creating and managing rich content. Because of the security features all of the widgets markup would be removed from the rich content. The only way to embed widgets was to use Web Parts, which in the past couldn’t be mixed with content.</p><p>With the introduction of Web Parts in content, SharePoint 2010 made it easier for us to embed widgets in rich content. While the security features of the rich content editor would still not allow us to embed widgets directly in content, we were offered the ability of adding Web Parts containing those widgets in content.</p><p>In SharePoint 2013 the support for embedding widgets has been improved even further. A new option called <em>Embed Code</em> has been introduced that allows us to embed widgets in page.</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/02.png"><img width="480" height="196" alt="The ‘Embed Code’ option highlighted in the Ribbon in SharePoint 2013" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/02_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>Depending on the widget, it will embed it either as-is or in a special Script Web Part; in both cases assuming that the user editing the content has sufficient permissions to embed widgets.</p><p>The distinction between the so called script-safe widgets (which are embedded as-is) and script widgets is exactly the reason of the inconvenience.</p><h2>Inconvenient widgets and search-driven publishing</h2><p>One of the new capabilities introduced with SharePoint 2013 is the new search-driven content publishing model, where SharePoint 2013 Search is used to publish the content between different Site Collections, Web Applications or even Farms. After indexing, the content becomes available to any number of publishing sites, assuming they have access to the Search Service Application that has indexed that content.</p><p>One of the consequences of using search-driven publishing is, that, as it’s based on search, it only publishes the indexed content. The binaries or the Web Parts are not included in the index and therefore not published using search-driven publishing.</p><h3>Inconvenient widgets&#58; a sample scenario</h3><p>To illustrate you the problem, let’s take look at a sample scenario. Let’s try to include a YouTube video and a SlideShare presentation on a publishing page that is going to be published using the new search-driven publishing model. For the YouTube video we will use the following widget&#58;</p><pre class="brush&#58; xml;">&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http&#58;//www.youtube.com/embed/4pY-GEprwAY&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</pre><p>For the SlideShare presentation we will use the deck from my latest presentation on the SharePoint Evolution Conference in London&#58;</p><pre class="brush&#58; xml;">&lt;iframe src=&quot;http&#58;//www.slideshare.net/slideshow/embed_code/19008586&quot; width=&quot;427&quot; height=&quot;356&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border&#58;1px solid #CCC;border-width&#58;1px 1px 0;margin-bottom&#58;5px&quot; allowfullscreen webkitallowfullscreen mozallowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom&#58;5px&quot;&gt; &lt;strong&gt; &lt;a href=&quot;http&#58;//www.slideshare.net/waldekm/p-m307-building-intelligent-websites-with-sharepoint-2013&quot; title=&quot;P&amp;amp;M307 Building intelligent websites with SharePoint 2013&quot; target=&quot;_blank&quot;&gt;P&amp;amp;M307 Building intelligent websites with SharePoint 2013&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;http&#58;//www.slideshare.net/waldekm&quot; target=&quot;_blank&quot;&gt;Waldek Mastykarz&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
</pre><p>As you can see, both snippets are very similar&#58; they are both basically an iframe and the SlideShare snippet contains some additional text and a link to my other presentations.</p><p>So what do we get if we try to insert those two snippets on a publishing page in SharePoint 2013?</p><p>When embedding the YouTube widget everything seems to be okay&#58;</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/03.png"><img width="480" height="469" alt="Inserting YouTube video snippet on a publishing page in SharePoint 2013" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/03_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>However when we try to embed the SlideShare widget SharePoint will present us with a slightly different experience&#58;</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/04.png"><img width="418" height="480" alt="Embedding a SlideShare widget on a publishing page in SharePoint 2013" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/04_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>First we get a warning that the widget will be embedded as a Web Part. Then, after we pressed the <em>Insert</em> button, we will see how different the two widgets are displayed&#58;</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/05.png"><img width="354" height="480" alt="YouTube and SlideShare widgets embedded on a publishing page" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/05_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>While the YouTube widget is embedded directly in the page, the SlideShare widget has been embedded as a Web Part.</p><p>Should you publish this page now using the new SharePoint 2013 search-driven publishing model, you will only see the YouTube video.</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/06.png"><img width="480" height="265" alt="Publishing page with two widgets published using the search-driven publishing model. Only YouTube video is displayed" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/06_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>The only thing that is left of the SlideShare widget is the HTML markup reference to where the Script Web Part is supposed to be placed, but the Web Part itself isn’t there.</p><p>So why is this happing exactly, and, what’s more important, is there anything that we can do about it?</p><h2>Script-safe widgets</h2><p>As I mentioned before SharePoint 2013 distinguishes between two types of widgets&#58; script-safe widgets and script widgets. When embedding widgets in rich content, script-safe widgets are embedded as-is. Script widgets on the other hand are embedded within Script Web Parts. As script widgets are more complex, they require more permissions comparing to script-safe widgets to be embedded in rich content, which is additional security measure to ensure for the security of the publishing site.</p><p>For a widget to be script-safe it has to fulfill two requirements. First of all it may not contain a <em>script<strong> </strong></em>tag. Secondly its contents must originate from a script-safe domain. SharePoint 2013 contains a configurable list of script-safe domains, which by default contains the following domains&#58;</p><ul><li>youtube.com
</li><li>youtube-nocookie.com
</li><li>player.vimeo.com
</li><li>bing.com
</li><li>office.microsoft.com
</li><li>skydrive.live.com</li></ul><p>Looking back at our two widgets&#58; even though our SlideShare widget didn’t contain any <em>script</em> tags, the <em>slideshare.net</em> domain isn’t listed in the list of safe domain what causes the whole widget to be marked as script-unsafe and therefore embedded using a Web Part.</p><p>If you decide to trust SlideShare widgets and allow your users to embed them in rich content, the only thing that you need to do is to add the <em>slideshare.net</em> domain to the list of safe domains. This is a per-Site Collection setting that can be done using the following PowerShell code snippet&#58;</p><pre class="brush&#58; ps;">$site = Get-SPSite http&#58;//mavention
$site.ScriptSafeDomains.Add('slideshare.net')
</pre><p>After running this code snippet your users will be able to embed SlideShare presentation snippets similarly to how they embed YouTube videos.</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/07.png"><img width="345" height="480" alt="SlideShare presentation widget embedded as a script-safe widget" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/07_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>As script-safe widgets are a part of the rich content they will also be published when using the search-driven publishing model.</p><p><a href="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/08.png"><img width="480" height="357" alt="SlideShare presentation displayed on a publishing page published using the search-driven publishing model" src="http&#58;//blog.mastykarz.nl/images/Embedding-SlideShare-presentations-and-o_CA13/08_thumb.png" border="0" style="border&#58;0px currentcolor;padding-top&#58;0px;padding-right&#58;0px;padding-left&#58;0px;display&#58;inline;background-image&#58;none;" /></a>&#160;</p><p>Should you want to remove a domain from the list of script-safe domains, you can use the following PowerShell code snippet&#58;</p><pre class="brush&#58; ps;">$site = Get-SPSite http&#58;//mavention
$site.ScriptSafeDomains.Remove('slideshare.net')</pre><h2>Summary</h2><p>SharePoint 2013 contains improved support for embedding widgets in rich content. Unfortunately in some scenarios widgets get embedded as Web Parts which will prevent them from being published when using the new search-driven publishing model. For some widgets adding the domain of the originating site to the list of the script-safe domains can prevent them from being embedded via the Script Web Part and make them available for publishing using the search-driven publishing model.</p><p>Originally posted at <a href="http&#58;//blog.mastykarz.nl/inconvenient-embedding-slideshare-presentations-widgets-sharepoint-2013-publishing-pages/?utm_source=mavention&amp;utm_medium=preview&amp;utm_campaign=Mavention%20Blog">http&#58;//blog.mastykarz.nl/inconvenient-embedding-slideshare-presentations-widgets-sharepoint-2013-publishing-pages/</a></p>]]></description></item><item><title>Presenting at SharePoint Connections Amsterdam 2013</title><link>http://www.mavention.nl/blog/presenting-sharepoint-connections-amsterdam-2013</link><pubDate>Fri, 19 Apr 2013 08:00:00 GMT</pubDate><dc:creator>Waldek Mastykarz</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/presenting-sharepoint-connections-amsterdam-2013</guid><description><![CDATA[<p>On the upcoming SharePoint Connections Amsterdam 2013 conference I will be presenting a session on SharePoint 2013 Web Content Management.</p><h2>Real-life building public-facing websites with SharePoint 2013</h2><p>SharePoint 2013 ships with a variety of new and improved WCM-capabilities. In this session we will walk through the new SP2013 WCM functionality and discuss how you can apply it in real-world solutions and get the most out of it when building public-facing websites.</p><p>Although this is the same session as the one I presented earlier this week on the <a href="http&#58;//www.sharepointevolutionconference.com/index.html">SharePoint Evolution Conference 2013 in London</a> I’m quite sure that by the end of the year, based on the new experiences from building real-life public-facing websites, the content will be changed and updated. After I presented the session in London I also got some good feedback which I will incorporate into the presentation as well.</p><h2>Register now</h2><p><a href="http&#58;//www.nccomms.com/Sharepoint_Connections/Home.aspx">Register now</a> as there is a great lineup of <a href="http&#58;//www.nccomms.com/Sharepoint_Connections/Speakers.aspx">speakers</a> and <a href="http&#58;//www.nccomms.com/Sharepoint_Connections/Agenda.aspx">sessions</a>. See you in Amsterdam in November!</p><p>Originally posted at <a href="http&#58;//blog.mastykarz.nl/presenting-sharepoint-connections-amsterdam-2013/?utm_source=mavention&amp;utm_medium=preview&amp;utm_campaign=Mavention%20Blog">http&#58;//blog.mastykarz.nl/presenting-sharepoint-connections-amsterdam-2013/</a></p>]]></description></item><item><title>SharePoint Evolution Conference 2013 presentations</title><link>http://www.mavention.nl/blog/sharepoint-evolution-conference-2013-presentations</link><pubDate>Fri, 19 Apr 2013 07:00:00 GMT</pubDate><dc:creator>Waldek Mastykarz</dc:creator><guid isPermaLink="true">http://www.mavention.nl/blog/sharepoint-evolution-conference-2013-presentations</guid><description><![CDATA[<p>Last week on the SharePoint Evolution Conference 2013 I presented two sessions on SharePoint 2013 Web Content Management.</p><h2>P&amp;M302 Real-life building public-facing websites with SharePoint 2013</h2><p>SharePoint 2013 ships with a variety of new and improved WCM-capabilities. In this session we will walk through the new SP2013 WCM functionality and discuss how you can apply it in real-world solutions and get the most out of it when building public-facing websites.</p><div style="margin-bottom&#58;5px;"><strong><a title="P&amp;M302 Real-life building public-facing websites with SharePoint 2013" href="http&#58;//www.slideshare.net/waldekm/pm302-reallife-building-publicfacing-websites-with-sharepoint-2013" target="_blank">P&amp;M302 Real-life building public-facing websites with SharePoint 2013</a> </strong>from <strong><a href="http&#58;//www.slideshare.net/waldekm" target="_blank">Waldek Mastykarz</a></strong> </div><h2>P&amp;M307 Building intelligent websites with SharePoint 2013</h2><p>SharePoint 2013 supports us with building intelligent websites&#58; websites that adapt their experience to different devices but also their content to visitors. In this session we will discuss what intelligent websites are and how we can leverage new capabilities of SharePoint 2013 to build them.</p><div style="margin-bottom&#58;5px;"><strong><a title="P&amp;M307 Building intelligent websites with SharePoint 2013" href="http&#58;//www.slideshare.net/waldekm/p-m307-building-intelligent-websites-with-sharepoint-2013" target="_blank">P&amp;M307 Building intelligent websites with SharePoint 2013</a> </strong>from <strong><a href="http&#58;//www.slideshare.net/waldekm" target="_blank">Waldek Mastykarz</a></strong> </div><h2>Recap</h2><p>The SharePoint Evolution Conference 2013 was yet again a great experience. I would like to thank Steve, Zoe and the rest of the crew for organizing this awesome event&#58; thank you!</p><p>If you attended the event you will receive all of the event’s content within a few weeks time. In the meanwhile let me know should you have any questions about any of my presentations and if you attended my sessions, once again&#58; thank you and I hope you learned some new useful information.</p><p>Originally posted at <a href="http&#58;//blog.mastykarz.nl/sharepoint-evolution-conference-2013-presentations/?utm_source=mavention&amp;utm_medium=preview&amp;utm_campaign=Mavention%20Blog">http&#58;//blog.mastykarz.nl/sharepoint-evolution-conference-2013-presentations/</a></p>]]></description></item></channel></rss>