Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

In most of the CMS software I've worked with there is a simple method for identifying user-editable parts of a theme. In Concrete5, for example you can add something like:

<?php
   $a = new Area('Main Content');
   $a->display($c);
?>

in any old <div> and simply change 'Main Content' to whatever name is appropriate for that area. Glancing over the default Master Pages (as well as some others I've downloaded) that snippet seems to be some variant of asp:ContentPlaceHolder in SharePoint's master pages, but there's one thing I can't seem to find documentation on...

Aside from the 30 or so "required" placeholders can "custom" placeholders be created to add additional user-editable areas to a theme? In other words, can I create a layout with, say, Twitter Bootstrap and then use asp:ContentPlaceHolder to define the editable areas in the same way that I can use the above code snippet to "concrete-ize" a theme for C5? In addition to the "main" content area can I have other custom content areas?

share|improve this question
add comment

2 Answers 2

up vote 1 down vote accepted

What do you mean as "user editable"? The master page & content placeholders concept is not related in any way to the end user capabilities to edit page - it's the way to centralize common page elements in the ASP.NET and is useful for page designer or programmer and not to end user. If you need an "editable" page you need to look at web part page concept - it allows to define zones in the page for users to place webparts including Content Editor Web part which allows to create a rich text content on the page.

UPDATE: The content placeholders and the webpart pages infrastructure is not related to each other at all. Master pages (http://msdn.microsoft.com/en-us/library/wtxbf3hh(v=vs.90).aspx) is the ASP.NET concept that allows page developers to extract common layout and logic from multiple pages to avoid copy-paste etc. It not affects page "editableness". It simply save developers time and efforts. The webpart pages concept is one of the central concepts in the SharePoint (MS calls it "composite applications") - it allows end users to personalize page content by adding, editing and removing modules on the page. These modules is called portlets in other portal software. And in every webpart page there's one or more web part zones - they are the sections in the page there user can add a webpart.

So the master page with placeholders is a "template" and the webpart page with the webpart zones is a "template too but only the latter is the template to define editable page layout.

share|improve this answer
    
OK, semantics, but yes I need a zone in which SharePoint users with adequate privileges may place a web part. I need several of them, actually. –  David Perry Feb 28 '12 at 15:24
    
So you need to create a webpart page, don't you? Do I understand right your requirements? Then you need to define several webpart zones in that page. See the example underthehood.ironworks.com/2010/09/… –  Alex Boev Feb 28 '12 at 15:33
    
Yes! Assuming that works as described that's exactly what I need. Out of curiosity, is the content placeholder concept even related or did I seriously mis-interpret code here? –  David Perry Feb 28 '12 at 15:49
    
See the update. –  Alex Boev Feb 28 '12 at 16:34
    
Sorry for the delay in acceptance, I prefer to test things before accepting and I just got in to work to try this out. Works beautifully, thanks! –  David Perry Feb 28 '12 at 18:02
add comment

Yes, you can add as many asp:ContentPlaceHolder's as you want in your master. Just make sure you add the same placeholder to your Page Layout as well, like this:

<asp:content ContentPlaceHolderID="<your custom name>" runat="server" />
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.