Easily add jQuery tabs using the “Reusable Content” feature

This post is quite a fun one. Whilst I was working with a customer today someone came up to me and asked if it was possible to add tabs to their content pages to which I gave it a few seconds thought and I responded “sure that’s absolutely possible – leave it with me!”.

I then spent my commute home thinking about how tabs could be delivered for end-users to make use of without them having to meddle around with any code. Sure getting tabs to work in SharePoint is pretty straight forward and is something we’ve all done at least on a couple of occasions but I give more thought about making it easier for the end-users to consume rather than just meeting the customers requirement by putting in a solution that isn’t pretty nor easy to use.

Solution

I eventually decided to use, what I thought was a very simple approach to giving users the option to use tabs. My solution makes use of the tabs from the jQuery UI (http://jqueryui.com/tabs/) library. It starts with a small modification to the master page that is currently being used. The following code should be added before the closing </head> tag.

[code lang=”html”]
<link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script type="text/javascript">
// <![CDATA[
$(function() {
$("#tabs").tabs();
});
// ]]>
</script>
[/code]

I then added the following to the “Reusable Content” list in the root site of the Site Collection where I was adding tabs. Make sure that the “Automatic Update” is unchecked for this piece of reusable content.

Reusable Content item
Reusable Content item
Reusable Content Lists
Reusable Content Lists

Below is the code that should be added to the Reusable HTML field.
[code lang=”html”]
<div id="tabs">
<ul>
<li><a href="#tabs-1">Overtype tab 1 title here</a></li>
<li><a href="#tabs-2">Overtype tab 2 title here</a></li>
<li><a href="#tabs-3">Overtype tab 3 title here</a></li>
</ul>
<div id="tabs-1">Overtype tab 1 content here.</div>
<div id="tabs-2">Overtype tab 2 content here.</div>
<div id="tabs-3">Overtype tab 3 content here.</div>
</div>
[/code]

To add the tabs onto a content page you can simply select the item that has just been added to “Reusable Content” list by clicking on the “Insert” tab whilst editing the page and expanding the “Resumable Content” menu.

Reusable Content menu
Reusable Content menu

Rich text that represents the HTML markup for the tabs is then added onto the page. Each tab is represented by a bullet list item “<li>” and a content area “<div>”. The names of tabs you require can then be added by carefully overtyping the existing tab names. You must be careful not to introduce or remove any markup as this might prevent the tabs from working correctly.

Once you have entered the names of the tabs you can then add the appropriate content by overtyping the content that you wish to include in that tab. This content can consist of rich text such as tables, images and also web parts. Again you must be careful not to introduce or remove any markup. Any tabs that are no longer required can be carefully removed by deleting the bullet list item and content area.

Tabs demonstration
Tabs demonstration

There are other ways to achieve the same result but I thought this was a simple approach using out-of-the-box functionality. Happy tabbing!

Embed code in a SharePoint 2013 web part page

A quick post here to share a new feature in SharePoint 2013 that enables you to easily embed code such as javascript and CSS into the content area of a web part page for example.

Insert action to embed code
Insert action to embed code

Previously we did this by editing the page source or by creating lots of text files and linked them using the “Content Link” parameter in “Content Editor Web Parts (CEWP’s)”. Now we can easily embed code on a content page where SharePoint places it is in a lovely dedicated snippet section that is only visible when you edit the page.

Code embed in page content
Code embed in page content
Embed code window
Embed code window

When you add any javascript SharePoint converts the “edit snippet” link as shown above to a web part where you then edit the content much like the “Content Editor Web Part”.

Why WordPress and not SharePoint?

Many people have said to me “your using WordPress for your blog but you’re a SharePoint Consultant” and my response is typical “but why must use SharePoint – I guess you also have a problem with me using a Mac?”.

Yes I do work with SharePoint – in fact it goes beyond just working with it but we won’t go there. I have developed websites for many years and typical chosen to build these on the WordPress platform – it’s adaptable and responsive to the differing requirements and yet it doesn’t need weeks of custom development. Not only that but it was built for blogging and the user interface is more in tune to writing blog posts. Secretly I knew if I used SharePoint for my blog it would become more of a job than a hobby with all the extra work it would need.

SharePoint is just not the blogging platform for me – let’s just say when I’m blogging I want the night off!