Multiple editable blocks per page
Posted: Wed Sep 22, 2004 8:12 pm
The feature that I would most like to see in CMS is the ability to edit multiple HTML blocks per page. I have written down some idea's about this and I would very much like to hear what you think about it.
Currently only one block per page is possible:
To really separate content from layout it would be preferable to restrict editing to the pure content parts of the webpage:
I think that on the "content management" page each page would link to a list of content blocks coupled to that page.
The names of these blocks could be defined in the templates, together with a description:
Besides a description, also more properties could be added, such as content type (which would define the invoked editor) like "richtext", "Single line", "Color". Furthermore, some properties could be added. For "richtext" this could be a set of styles styles that is selectable from the editor.
Now the story becomes a little more complex: An lot of flexibility would be gained if it would be possible to, from one page, access content blocks assigned to other pages
Imagine a template "Main template" on which a page "Frontpage" is based:
And imagine a template "Second template" on which a page "Contentpage" is based:
Where page="this" points to the current page. If this is the default value for the page property it could be optionally left out
There is one ugly aspect to this setup. A reference to a page (page="Frontpage") is hardcoded in the template. A page with this name, based on template "Main template" should always exist in order to access this data.
The advantage is, though, that in this manner editing a value on one page will propagate through the whole website. This would be nice for page titles, meta tags and all kinds of other content.
Another feature that I think would be really very cool, is an edit marker (for lack of a better word) to mark editable content regions in preview mode. Clicking on these markers (for example:
) will transport you to the respective content editor. The markers should be placed at a logical place in the page, usually just in front or after the editable block but not in a tag, as that would break the HTML
An demonstration of this kind of markers can be found here http://testsite.contemplated.net/cgi-bi ... ltered.cgi
1. press demo page.cnt
2. choose Edit page
3. press one of the edit markers

4. edit block
I realise that might make CMS made easy a bit more complex, but mainly for the programmers, so no problem there
. For site builders the complexity could slightly increase, but that is also a matter of choice. The simplest page you could build is not much complexer than it is now:
For content managers it might even be simpeler than it is now, with click-and-edit tags included in the preview. So, just some thoughts, that I hope are interesting.
Currently only one block per page is possible:
Code: Select all
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body>
<layout>
{content}
<layout>
<__body>
</__html>
Code: Select all
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body>
<layout>
{content name="section 1"}
<layout>
{content name="section 2"}
<layout>
<__body>
</__html>
The names of these blocks could be defined in the templates, together with a description:
Code: Select all
<linkedcontent name="Section 1" desc="This is section 1">
<linkedcontent name="Section 2" desc="This is section 2">
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body>
<layout>
{content name="section 1"}
<layout>
{content name="section 2"}
<layout>
<__body>
</__html>
Now the story becomes a little more complex: An lot of flexibility would be gained if it would be possible to, from one page, access content blocks assigned to other pages
Imagine a template "Main template" on which a page "Frontpage" is based:
Code: Select all
<linkedcontent name="site bckcol" desc="Background color of the whole website" type="color">
<linkedcontent name="Section 1" desc="This is section 1" type="richtext">
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body bgcolor="{content name="site bckcol" page="Frontpage"}">
{content name="section 1" page="this"}
<__body>
</__html>
Code: Select all
<linkedcontent name="Section 1" desc="This is section 1" type="richtext" styles=['Normal ','Big']>
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body bgcolor="{content name="site bckcol" page="Frontpage"}">
{content name="section 1" page="this"}
<__body>
</__html>
There is one ugly aspect to this setup. A reference to a page (page="Frontpage") is hardcoded in the template. A page with this name, based on template "Main template" should always exist in order to access this data.
The advantage is, though, that in this manner editing a value on one page will propagate through the whole website. This would be nice for page titles, meta tags and all kinds of other content.
Another feature that I think would be really very cool, is an edit marker (for lack of a better word) to mark editable content regions in preview mode. Clicking on these markers (for example:

Code: Select all
<linkedcontent name="bckcol" desc="Background color of page" type="color">
<linkedcontent name="Section 1" desc="This is section 1" type="richtext">
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body bgcolor="{content name="bckcol" page="Frontpage"}">
{marker name="bckcol" page="Frontpage"}
{marker name="section 1"}
{content name="section 1"}
<__body>
</__html>
An demonstration of this kind of markers can be found here http://testsite.contemplated.net/cgi-bi ... ltered.cgi
1. press demo page.cnt
2. choose Edit page
3. press one of the edit markers


4. edit block
I realise that might make CMS made easy a bit more complex, but mainly for the programmers, so no problem there

Code: Select all
<linkedcontent name="Section 1" desc="This is section 1" type="richtext">
<__html>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</__body>
<layout>
{content name="section 1"}
<layout>
<__body>
</__html>