Use SharePoint Callouts to Create an In-page Tour

SharePoint 2013’s Callouts are used frequently throughout its UI to display contextual information. They also happen to be a great tool for creating in-page tours to guide users through learning about key features on a page. The first time I encountered one of these “tours” was after a Facebook redesign several years ago. Of course, […]

Bookmarklet to Remove Zero-width Spaces (​) from SharePoint Pages

When editing pages in SharePoint, the rich text editor inserts zero-width spaces to assist with text selection. Unfortunately it does not always remove these when a page is saved. These characters appear as ​ in Chrome’s dev tools, for example. These “leftovers” can cause spacing issues for content authors, so we created a bookmarklet to […]

“Cannot Read Property ‘STS’ of Undefined” When Using SP.UI.ModalDialog in SharePoint 2013

I’m using SharePoint’s built-in modal dialog for a single page application I’ve been developing. When I refresh the page to test changes I’ll randomly get an error saying that “Cannot read property ‘STS’ of undefined.” I’m using the Script-on-demand functions that should make things work: SP.SOD.executeFunc(‘sp.ui.dialog.js’, ‘SP.UI.ModalDialog’, myFunction); Looking at the stack trace, I can […]

Useful CSS Classes in SharePoint 2013

Screenshot of the corev15.css file from SharePoint 2013

SharePoint 2013’s corev15.css file comes with a bunch of useful CSS classes. It doesn’t compare to something like Zurb Foundation or Bootstrap, but there’s enough in there to allow you to write less CSS for your custom apps. It’s also a great way to ensure that your app blends in with the SharePoint UI for a more consistent […]

Book Release: Black Magic Solutions for White Hat SharePoint

Book cover for Black Magic Solutions for White Hat SharePoint

I contributed a chapter to the book Black Magic Solutions for White Hat SharePoint which is now available on Amazon. The book was organized by Mark Miller and includes chapters from several SharePoint community members. Mark’s goal was to break away from the traditional publishing model and self-publish an ebook in just a few months. You […]

Using ASP.NET ServerVariables in a SharePoint Data View Web Part

Quite often I find myself needing to use a server variable in a SharePoint data view web part. These are very useful for getting information that would otherwise not be available to use in a DVWP. There are several resources that explain how to use server variables, so check those out if you haven’t used them before.

Instead of building the server variable parameters using the Common Data View Tasks menu in SharePoint Designer, I find it faster to just type them in when I need to use several of them. With that in mind, I decided to create a quick reference for the most common ASP.NET server variables I use so I can just copy/paste them from this page rather than look them up on MSDN or w3schools.com. There are other server variables, but this is my blog, so I’m only posting the ones most useful to me :). (more…)

Introducing SPTools: A GUI for Performing Batch Tasks on SharePoint Lists

About a year ago I started writing JavaScript functions to perform batch tasks on SharePoint lists using SPServices. I did this because SharePoint didn’t offer the functionality I needed out of the box, and I’m limited to SharePoint Designer for all development at my workplace. After writing several of these functions for one-off projects (mostly site maintenance and cleanup tasks dealing with hundreds of items at a time), I realized that there might be a benefit to creating an easy-to-use toolset for the most common tasks I was performing. (more…)

Deleting SharePoint Sites is Fun

This afternoon I performed an audit of several SharePoint team sites. Over half of them had not been touched in a year or more. Some of them were just an empty team site that had never been used. I deleted them. Don’t build a SharePoint site if it isn’t actually needed.

A CAML Query Quick Reference

I’ve been doing a lot of work with SPServices and SharePoint lists lately, and I find myself using the same CAML queries over and over. Unfortunately I don’t always remember how to format some of the more common queries, so I decided to make a quick reference. There are already some good tools and resources out […]