Missing the Apps you can add Zone When Adding a New App

January 16, 2014

This week a client mentioned an issue when they want to add new apps to their sites. The issue is that they do not see the Apps you can add zone on the app creation page (your-site/_layouts/15/addanapp.aspx). They only see the Noteworthy apps:

Noteworthy Apps

Noteworthy Apps

The sites on which this problem occurs have custom branding applied. On the standard OOTB master pages, the problem doesn't occur. This means that it would be a problem with the custom branding itself that I implemented.

I thought of two possibilities:

  1. Or it's CSS related, it could be that I hidden something to much;
  2. Or it's a content placeholder that's hidden.

Investigation

A quick look to the HTML of the page showed me that it wasn't a CSS related problem, because the Apps you can add HTML mark-up wasn't there. This meant that it had to be a content placeholder that I had hidden.

The second thing I did was setting the Visible property of all the content placeholders to True that were hidden. This way you can quickly see if it's a content placeholder problem.

Content Placeholders

Content Placeholders

After a page refresh, the Apps you can add zone became visible:

Apps you can add

Apps you can add

Next thing to do is finding which content placeholder is causing this problem. Eventually it turned out that the problem occurred by the content placeholder PlaceHolderPageTitleInTitleArea that was hidden. What doesn't make sense at first, because the Apps you can add zone is not added via this content placeholder.

I debugged the sp.storefront.debug.js file, and in that file I saw that Apps you can add zone requires a HTML element with the following ID ms-pageTitleCurrentNode. It doesn't matter where this is located in the page, it just need to be there.

Here is the code snippet from the sp.storefront.debug.js file:

Solution

This ms-pageTitleCurrentNode element gets automatically added on the page, when the content placeholder PlaceHolderPageTitleInTitleArea is visible.

So you have two options:

  1. Set the Visible property for the PlaceHolderPageTitleInTitleArea content placeholder to False;
  2. Add some extra HTML mark-up to your master page like this:

I went for the last option, because I didn't need the other mark-up in my page.

 

Comments