Editable content like header, picture, or rich HTML text can be displayed on any ASP.NET web page by an ElasticWCM Content Control. There are multiple types of content controls serving different types of content and providing different functionality. Most widely used are StringField, ImageField, and HtmlField controls.
There is one special ElasticWCM control - Page Toolbar - that must be present on any page holding Content Controls. Page Toolbar is a set of buttons providing authorized users with a way to perform content management. Behind the scenes it also conducts all communications with the cloud-based ElasticWCM Content Database.
ElasticWCM controls do not require any programming. Just drag and drop them on any ASP.NET page and configure property values.
Every ASP.NET page implementing content management functionality must have a Page Toolbar control on it. The best place for the Page Toolbar is a Master Page.
Here is an example of how the Page Toolbar might look for a user having permissions to edit the page:
It displays type of current environment (Development, Staging, or Production), content management buttons, and Help link.
The Toolbar was created by the following code in the footer area of a Master Page:
<ewcm:PageToolbar runat="server" DisplayLinkButtons="true" EditorTheme="Sunny" />
Here optional DisplayLinkButtons parameter defines if the buttons will be displayed as links or buttons. Optional EditorTheme parameter defines colors used in the Page Editor screen. ElasticWCM uses standard jQuery themes (see jQuery ThemeRoller).
ElasticWCM Content Controls display editable content on ASP.NET web pages.
In the current version of the ElasticWCM.Client.dll there are six content controls: StringField, TextField, HtmlField, ImageField, DateTimeField, and ScheduledRedirectField.
StringField - displays one line of plain text (HTML-encoded by default)
TextField - displays multiple lines of plain text (HTML-encoded by default)
HtmlField - displays rich HTML (without HTML-encoding, surrounded by a <div> tag)
ImageField - displays image (clean <img> tag)
DateTimeField - displays date, optional time, and time zone
ScheduledRedirectField - manages scheduled redirect from current page, useful for scheduled publishing or removal of pages.
FieldName, VaryByParams, and GlobalScope control parameters
FieldName is a required parameter for any Content Control. It can be any string describing purpose of the field to help users relate field to a page area while performing content management.
VaryByParams is another very important parameter of any ElasticWCM Content Control. It specifies the name (or comma delimited list of names) of QueryString parameter to consider while identifying the content field.
If for example, a content field on the Article.aspx page specifies VaryByParams="topic", this field will display different content for URLs Article.aspx, Article.aspx?topic=localweather and Article.aspx?topic=worldweather. So, here we essentially have three different content pages referencing the same Page Template.
The VaryByParams parameter provides the ability to create unlimited number of content pages using a single page template (in this example Article.aspx). It also allows sharing of some content between multiple pages by using different combinations of QueryString parameters for different content fields.
The GlobalScope parameter tells the system that content of this control should not depend on the current page URL. No matter what current page is the value of the StringField control with FieldName="Header Text" GlobalScope="Top Header" will be the same. If you navigate to a web page, click Edit Page button and modify the content of this field, the new value will be displayed on all site pages. You can modify it from another page, and again that modification would be a global one.
This is what you usually want from a content field placed on the Master page - you'd like it to stay the same for all site pages. Without GlobalScope specified this field would hold different values for different pages - if you modified it on the Default page the new content would be displayed only on the Default page, others would have the old content.
Together the FieldName and the GlobalScope parameters uniquely identify the field - a field with FieldName="Logo Image" GlobalScope="Top Header" and a field with FieldName="Logo Image" GlobalScope="Footer" are different fields.