Archive for the ‘CPS’ Category

Custom Navigation in a SharePoint Hosted App in SharePoint 2013

February 10, 2013 Leave a comment


I have been playing round with a SharePoint hosted app to learn about how it all works. This has been going well but i ran into more problems than i though i would when trying to implement a menu for my App.


If you are using the auto hosted or developer hosted app model then this is easy (ish) you use the new chrome control, create you menu links in JS and you are done. MS have some documentation on this that works great.


But i am creating a SharePoint hosted app. So this causes a few “problems”. The first one being that if i add a chrome control to my page i get 2 menu which is just silly.


Google wasn’t much help although i did find this post here

which pointed me in the right direction.


My first issue was actually getting hold of a copy of the master page that app’s use. I could not work out how to do this only having an office 365 tenant. In the end I grabbed the app.master and default.master from the GLOBAL folder in the hive on a on premise install.


The first thing i worked out is that the reference to “~masterurl/default.master”  seems to translate to the app.master from the GLOBAL folder in the HIVE.


So i made a copy of the app.master and added it to my project. Changing the elements.xml file as per the post linked above.


I also changed the link in my ASPX pages from ~masterurl/default.master to ~site/_catalogs/masterpage/<Name of my master page>.master


This assumes you have you elements file setup like




While doing this I noticed that there is a content place holder with an id of PlaceHolderLeftNavBar. This isn’t hidden.


So I added


into my Default.aspx page and loaded it into SharePoint.



Bingo I have a menu in the standard place in SharePoint. What is also nice is that if the user hits the “Focus on Content” button then the menu gets hidden.


But wait a minute we just setup our own master page, what was the point? Well at the moment you do not need you own master page but this does now mean you could move any of the other Content Place Holders to put a menu in a different location. It also helps get rid of some of the warnings in visual studio as it now knows the master you are using.


I do have an issue that  have to copy my <asp:menu> content onto all the pages. I tried using the XML data source but this appears to not be supported but there may be another way to store the menu logic centrally.


The next problem to solve was that we need to pass the query string values around the system, so these have to be added to the menu.

This can be done with some simple jQuery.




Just make sure this will run on all of the pages and your querystring values will be maintained between page loads

Sorry for the images but my code plugin was not working.

Hope this helps someone.

Categories: CPS, work Tags: ,

Visual Studio 2012 templates for SharePoint 2013

January 23, 2013 2 comments


So I just fired up Visual Studio 2012 and went to create a new SharePoint 2013 App just to play around with. Only to find that Visual Studio only has the 2010 templates available.


The search to find out what I needed to install wasn’t as quick and simple as I was hoping so now that I have worked it all out i may as well share with the rest of you.


Assuming you have Visual Studio 2012 installed. Go to


Scroll down and under the tools section there is a web downloader (Direct Link). Download and run it, it will download everything you are missing.


After a couple of restarts you can then create 2013 projects in visual studio


Hope that helps

Categories: CPS, work Tags: ,

Service descriptions for SharePoint 2013

November 26, 2012 1 comment


This post here

has a list of all the services in SharePoint 2013 and what version they are available in.


The interesting one for me is that SSRS is available in the E3 and E4 Office 365 plans. Not seen anything about that and I am interested as to how it will work.

Categories: CPS, work Tags:

How to hide the SharePoint ribbon

November 23, 2012 1 comment


Here is a quick post to show you how you can hide the SharePoint ribbon on a page using JavaScript. This was created by one of my colleagues so I am not sure of why the ribbon needed to be hidden but here is how.


function hideEditRibbon() {
var ribbon = SP.Ribbon.PageManager.get_instance().get_ribbon();
// Set the tab to the “Browse” tab
SelectRibbonTab("Ribbon.Read", true);
// Remove the “Edit” tab from a list from from the ribbon.

SP.SOD.executeOrDelayUntilScriptLoaded(function() {

var pm = SP.Ribbon.PageManager.get_instance();

pm.add_ribbonInited(function() {

var ribbon = null;
try {
ribbon = pm.get_ribbon();
catch (e) { }

if (!ribbon) {
if (typeof(_ribbonStartInit) == "function")
_ribbonStartInit(_ribbon.initialTabId, false, null);
else {


Just add this code to a page using the content editor web part and it will work.

Categories: CPS, work Tags: , ,

SharePoint 2013 certifications

September 17, 2012 2 comments


Not posted in a while and this is a very short post.

the post here

has an overview of some of the new exams for SharePoint 2013

Categories: CPS, work Tags: ,

Error when accessing ServiceJobDefinitions.aspx page from Central Admin

August 24, 2012 2 comments


So i went to manage a timer job and was presented with the following screen.



The ULS logs didn’t reveal too much information other than a nullreference exception.

There is however some more information in the widows application event log

There was an exception loading job definition "Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob" (id "48a2075b-37ac-4866-b498-997374621326"). Object reference not set to an instance of an object.





To fix the issue some PowerShell is needed to remove the job.


Run the following PowerShell script

$job = Get-SPTimerJob <guid of job>


The job definitions pages now loads Smile

Categories: CPS, work Tags: ,

Infopath “The following form template cannot be upgraded because it is not currently uploaded on this farm” #sp2010

August 1, 2012 2 comments

So what i was trying to do is upload a new form template to a clients QA system. Something that has been done tens of time since the system went live. But today I get.



Now i have never seen this message before so i instantly start googling to try and save the day.

I have to say not a lot of stuff around this error is available but there are a couple of MSDN forum posts that got me in the right direction.


The SharePoint farm in question has recently had some more servers added to the farm and what i suspect has happened is that the form files have not correctly deployed to the new servers. But to prove this i need the feature GUID that is created when you first upload a InfoPath form.


I found the quickest way to get this is to navigate to the site collection the form exists on. Go to Site settings and under Site collection Administrators select the Site Collection Features in the list you will see a feature that maps to the name of the XSN file.

Click on the Deactivate button (don’t worry there is a confirmation step). Now in the query string the feature GUID is shown. Copy this as you will need it later. You don’t need to deactivate the solution so can close the page if you wish.


I was then able to see, under Solution Management within central admin the WSP called the same GUID. Clicking on the WSP showed me that the wsp had not been deployed to all the servers in the farm. For some reason all of the other WSP in the list had all been deployed. I guess i was just lucky that this was the only one.


Now to fix the issue you need to run an STSADM command


stsadm -o uninstallfeature –id <the feature GUID you got from the query string> –force


This will remove the feature and i guess some other magic that fixes stuff.

Now the form can be upgraded without an error. Once the form has upgraded the feature is reactivated automatically (did for me anyway)

And YAY it all works again. 5 minutes job only took an hour


Hope this helps someone

Categories: CPS, work Tags: , ,