The logic and managment of the Sueetie CMS
Patterns: Sueetie CMS Objectives
The Sueetie Content Management System is designed to enable community administrators to quickly create content pages to supplement the other primary content generation tools in Sueetie, specifically blogs, discussion forums, media postings and of course the wiki.
Sueetie comes with a default content.aspx page in the default Lollipop theme's /pages folder that you can customize easily. The default layout is shown here on the
Sueetie CMS Pages with a global area, a sidebar content area, a CMS page list display, and the main body content area.
Sueetie CMS supports assignment of permissions to both view and edit content pages. Each Sueetie Content Page also has an IsPublished setting so that pages are only viewable to non-editors when the editor sets the page as published. Content pages can include any content and consist of Sueetie Content Page Parts, a type of Sueetie Content Part specifically designed for Content Pages. A Sueetie Content Page can have unlimited Content Parts. Content parts are edited in real-time on the page with Sueetie's TinyMCE-based Content Part Editor.
Sueetie Content Pages are members of a Content Group. Each Content Group can use it's own .ASPX page or share an .ASPX page with other Content Groups. Each Content Group can have unlimited pages.
Sueetie CMS is fully integrated into the Sueetie Data Framework supporting community-wide access functions like searching and tagging. Those functions are not yet available, but below is an example of how Sueetie CMS activity is displayed in Sueetie Site Activities.

Sueetie Content Pages
A Sueetie Content Page consists of any number of Content Parts, both unique to the page and global to the Content Page Group or Entire Site. Users with edit permissions will see small edit icons on content pages with each Content Part that launch the TinyMCE-based WYSIWYG Editor. Below are screenshots of an empty content page and the WYSIWYG Editor.


Creating Content Pages
Content Pages are created in the Sueetie Content Administration area. Here is a screenshot of the Content Page Area. You can view the primary features of Sueetie CMS as reflected in the administration menu: 1) Create CMS Groups, 2) Create CMS Pages, 3) Move Pages to other CMS Groups, 4) Duplicate Existing Pages, 5) Edit CMS Page Content Parts and 6) Edit non-CMS Content Parts.

Most fields are optional, with only PageKey and Page Title being required.

Moving and Duplicating CMS Content Pages¶
Sueetie CMS Pages are part of a CMS Group. We're going to discuss groups in a minute, but first we're going to demonstrate moving CMS Content Pages from one group to another. It's important to note that we are not only moving (and optionally duplicating) a Sueetie CMS Page, but any Content Parts that page contains. We demonstrated CMS Content Parts above.
To move a CMS Content Page we first select the CMS Group in which the Page resides.

Then we select the page and select the group to where we want to move the page. We can change any CMS Page properties or keep them the same. This is a real-world example where we're moving the Sueetie.com "Terms of Service" CMS Page from the "About Sueetie" CMS Group to the "Sueetie.com Site Support" group.

Securing Content Pages
You can easily secure Content Pages by restricting access to Sueetie Roles. Let's look at a quick example. We have a page on Sueetie.com titled "Sueetie and You." We're going to set the Readership Role for that page to "Registered," which would allow all registered users to view the page but not anonymous users.

Now when an anonymous user attempts to view the page they are shown the Sueetie Not Authorized Page, which you can customize to display any message you wish.

Content Groups
Sueetie CMS pages include a physical content.aspx page, but all pages are virtual. That is, Url Rewriting is occurring to serve an unlimited number of content pages from a common physical page. This is in part why Content Groups were created, to designate page urls for content pages. Content Groups were also created to support multiple page layouts and editor assignments.
Each Content Group is associated with a Sueetie Application. The Content Group uses the Sueetie Application's unique Application Key for addressing and identifying pages and content parts. Sueetie includes the default application CMS with the application key of "cms." If you look at a Sueetie.com CMS page like
Sueetie Total Care you'll see its url is
/cms/Sueetie-Total-Care.aspx. "cms" is the content group's key and serves to distinguish its pages as Sueetie Content Pages. Our "Sueetie.com Site Support" group has the Sueetie Application the key of "support," in which case the url for the Content Group Pages would be
/support/some-content-page.aspx.One of the reasons each Content Group is associated with a Sueetie Application is to integrate all CMS content in the Sueetie Framework Data Core architecture for searching, tagging and other services. Content parts and pages are dependent on the content group's application key, so it is very important that you set your CMS application key to its final value BEFORE working with your CMS Content Group. Sueetie (coming in v4.0 in 2012 Q1)
does support renaming both application keys, CMS group keys and individual page keys without breaking search or any page links.
Creating New Content Groups
You will most likely wish to customize the default "CMS" Content Group for your own purposes. You may also wish to add new Content Groups. You manage Content Groups in Sueetie Content Administration Area. Here is a screenshot of the Content Groups Administration Form.

Remember that each Content Group is associated with a Sueetie Application and uses that application's unique key for addressing and identifying content group objects. The application must be created on the Sueetie Applications administration form. Here is a screenshot of the Sueetie Application list with the default "cms" application listed at bottom.
If you are using another unique key for your Content Group (like the
/services/content-page.aspx example above for a Services area, start by changing the "cms" application key to "services." Then proceed to customize your Content Page Group. Notice the Sueetie CMS Application has a CMS Application Type. If you create multiple Content Page Groups, be sure to assign them the CMS Application Type as well.

When you create a new Content Group, the dedicated Sueetie CMS Application must already exist. If it does not yet exist the Content Group Page will display a "Not Available" value in the Application dropdown where normally any available CMS Applications would be listed. Simply create the application and return to manage your Content Group.
Content Groups and Url Rewriting¶
Each Sueetie Content Group has an entry in the Sueetie urls.config file located in /util/config. The main item to point out here is the "contenturl" property. This is a new property in the SueetieUrl object. Let's say our page url is
/cms/cms-welcome-page.aspx.On a page request, the Sueetie UrlRewrite httpModule reads through the urls in the cached urls.config file, then obtains the Content GroupKey from the "cms/" Uri segment of the address along with the Content Page's "page stub" property (in our example above, "cms-welcome-page") and rewrites the url to the contenturl property with that page's content page ID.
<url name="content_home" path="/cms/{0}.aspx" contenturl="/themes/{0}/pages/content.aspx?pg={1}" />
Content Page Navigation Control
Sueetie CMS also includes a Content Page Navigation Control which can be used as a navigation menu for a Content Page Group. Here is a version of the Page Navigation Control as used on the
Sueetie.com CMS Pages. 
You can include any content page properties you wish to include and use the Page Navigation Control for any purpose. You can display such properties as author, last updated or page description, for instance. The Page Navigation Control can be arranged alphabetically, by date created, last updated, or by the page's DisplayOrder property.
You can choose not to display pages on the group's Page Navigation Control by clearing the "Display on Group Nav Lists" checkbox.

Managing CMS Content Parts
As we touched on earlier, each Content Page consists of one or move Content Parts. You can edit all CMS content directly on the CMS Page or you can do so in Sueetie CMS Administration. Below is the CMS Content Part Edit page where you can edit any CMS Page Content Part in our WYSIWYG editor. You will notice that you can also update any properties of the containing Page of that part. You can edit the same page properties on the CMS Page Administration form, but it is often helpful to enter information like Meta-Keywords and other content properties when you have direct access to the page's content via its content parts.

SEO Enhancements
We designed Sueetie CMS to be SEO-Smart, so we were sure to include the page's title in the url and add Keyword and Description metatag support. We see metakeyword and metadescription properties in the preceding screenshot. Here are what the generated metatags look like.

Inline New Page Creation
You can create new CMS Pages inline, or directly from any CMS Page Editor Window. (Feature added in Sueetie v4.1.) To create a new CMS Page from any existing CMS Page, click on the "New" Page Editor button as shown below.

The New CMS Page Form displays with basic page properties: Title, Page Slug and unique Page Key. You also have the option of populating the page with all content on the existing page. You can also select whether the page should display on Site and Content Page Group Navigation Lists upon publishing the page.

Upon creating the page you are redirected to the page so that you can immediately begin work on the page. Because it is not published and therefore not available on navigation lists you would use the new page's slug to edit the page prior to publication, or you can always edit the page in CMS Adminstration. Here's an example of using the page slug url.
http://yoursite/cms/your-page-slug.aspxPublishing Inline
Sueetie CMS knows if a page is Published and if not gives you the option of publishing the page without going into Sueetie CMS Administration. The "Publish" checkbox displays only for non-published pages.

Inline Publishing Logic Rules
Here are a few miscellaneous rules when publishing inline.
- The new page is created in the existing page's Content Page Group
- The new page takes on the security of the existing page
- The new page is not publicly available (published) until you publish it as described above
- Properties of the new page like Abstract, Meta Keywords, Meta Description and Navigation Display Order are set in CMS Administration if you wish to use them
Top