Posts

Client Side Override the Site Logo's link in an SharePoint Site

In SharePoint sites that have any kind of hierarchy of subwebs, it is frequently desirable to override the logo's link behavior to link back to the root of the site collection.   There's a bunch of guidance on how to do this by overriding the master page, but not much on how to do this client-side, to avoid MasterPage manipulation.   Here's a script that helps to do this: //update site icon link, SP overrides any direct reassignment so you have to change the existing ID //and then create a dummy element with the existing ID to avoid future JS errors. //read old link id var prevId = $("#DeltaSiteLogo > a").attr('id'); //change the id $("#" + prevId).attr({       'id':'CustomSiteLogo',       'title': 'Employee Portal Home',       'href':window.location.protocol + "//" + window.location.host }); $("#DeltaSiteLogo > a").after("<a id='" + prevId + "...

Connect-PnPOnline : For security reasons DTD is prohibited in this XML document. error

Until today I had never received this error when trying to connect to SPO.    If you get this error there's a good chance it's related to missing records on the DNS server your machine is relying upon.  If not set, there's a good chance you're using your ISP's DNS servers, whose records may not be as up to date as others.  The quick fix (at least for me) was to alter my DNS settings to point to more reliably up-to-date DNS.   Here's a how to fix this issu (on Windows 10, if you aren't using windows 10, follow your OS instructions on updating DNS settings and then just jump to step 4 below) along with a few options for DNS settings that I tested: Click Start and type "View Network Connections. Right-Click your adapter that connects to the internet and choose properties Choose TCP/IP v4 and then click the "Properties" button At the bottom of the IP v4 properties window, select the radio button that says "Use the following DNS Server ...

Reordering the default content type for document sets

Had a particularly annoying time with this as the document sets were already in use and was attempting to do this in SharePoint Online.    My scenario was that I was using document sets and only wanted document sets in the root folder.  So I set the other ctypes as not visible, but then the customer asked to default to one of the content types that wasn't previously set up at the top of the list, and I couldn't reorder in the "Document Set Setting" option of the document set content type because there's a multi-select box with no up/down functionality for these.   As a last ditch effort I went back to the List Settings and just made all content types visible on the new button, which enabled the documents that were supposed to created in the document set to be created at the root level (temporarily).  Then I reordered the content types, then set the non-docset content types back to not being visible.  VOILA! to my surprise that solved the problem....

Setting up an SP2013 VM on Azure, with a GUID-less DB

Image
Critical Path Training produces a number of excellent training courses, books, and free resources.   If you haven't checked out their  Inside SharePoint 2013  book, you definitely should.  It's a pretty comprehensive guide to what Developers need to know (initially) to do SP2013 Development. I typically build their VM when I first start using the next version of SharePoint and often make it my baseline for general development.   This year however I've decided to spice it up a bit and go for an install without the Configuration Wizard and a GUID-less database instance, per  Todd Klindt/Shane Young's book  because their guide is more close to an enterprise level configuration.  I also wanted install and configure it in Azure, so I can get to it wherever I am (and free up some  SSD  space on my PC). The Critical Path VM guide can be downloaded  here .  You'll need a (free) account to download the guide.  I sug...

SharePoint Solution Downloader

Special thanks to Djamel Chagour and his response to my MSDN thread (which linked to this blog post ) to solve my issue of grabbing solutions from the Solution store so I could drop them on another server. His post is more complex and deals with generating the stsadm commands for a batch deployment. Mine is the dumbed down version that just pulls the files so I can readd them as I need them. Here's the code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Microsoft.SharePoint; using Microsoft.SharePoint.Administration; using System.Xml; using System.Web; namespace Mirant.SharePoint.Administration.WSPDownloader { class Program { static void Main( string [] args) { bool hasErrors = false ; if (args.Length != 1) { Console.WriteLine( "Usage: Company.SharePoint.Administration.WSPDownloader directory...

Movin on Up: Converting a VDI to a VHD to move from VirtualBox to Azure

Months (years?) behind the rest of the world, I've finally decided it's time to get my VMs up to Azure (no more SSD swapping between PC and laptop despite having a easily mountable caddy in my work laptop and this sweet caddy in my PC . As a loyal VirtualBox user I opted for VDI rather than VHD, but now I must convert.  So here's what I did: Uninstall VBox Guest Additions from the VM Shut the VM down (don't save the state). Remove the VDI from the Virtual Media Manager in Virtual box before running the command below Run the following command using Run As Administrator by right-clicking on the command prompt (from the VBox Install directory unless you've set the PATH variable):  VBoxManage clonehd e:\SP2013DEV.vdi  c:\SP2013DEVaz.vhd --format VHD In the above command the first file is the source VDI the second is the destination VHD. Wait for the magic to happen it should take a while since VMs with SP on them are pretty big.  Going from one drive to another...

Deleted Site Collection continues to show up in Central Admin

In working through my last post  I managed to leave a remnant in Central Admin of a removed Host Named Site Collection that was stored in the default HNSC Content database.   After many attempts to repair in a more acceptable way, (DB Repairs, removing/adding content db, etc) I finally realized that the issue wasn't in my HNSC content db, but rather a leftover reference in the SharePoint_Config DB .  Taking a page from the book-of-things-you-should-never-do-in-SharePoint, I found the reference in the SiteMap table and had to manually delete that row.   I backed up the database first in anticipation of impending doom , but it seems to have done the trick. I'm going to poke around the internet a little more, hoping there's a better way to clean this up or even some timer job or other process that takes care of this in the future, but if you know of the better way, please post it.