Introduction
MCMS Site Manager desktop application requires a network connected
workstation to execute and manage your content management system site. But many
of times when a MCMS web site is deployed there is no access to the production
server to luanch Site Manager and manage your site. In this case we need a web
based site manager, one that would allow you to manage your contents right where
your site is host on the internet. This sample shows you how to write a web
based site manager using C# and ASP.Net. This web based site management tool can
manage your channels, posting, resources, templates, via your posting status and
custom properties.
This samples uses Internet Explorer Web Control such as treeview control and
tabstrip control. Internet Explorer is a required when installing MCMS.
To install this, just unzip the whole project into your folder. Add virtual
directory to your IIS and import the sdo file. The code for site manager is
under the folder CMSSiteManager.
Site Manager Dialog
Site Manager Dialog Page
consists of a tabstrip, a left panel and a right panel. The left panel is a
treeview which is the channels and the right panel is a datagrid which a list of
the postings in the channel. Clicking on the treeview item will reload the
datagrid postings on the right panel. Click the treeview and click on Create
button will popup a window to create new channel, click on delete button will
delete the channel and click on properties button will allow you to modify
channel property. On the right panel click on the checkbox to multi select
posting. You can multi select posting and approve/submit them all or you can
delete them all. Click on the link will navigate to the posting.
Console Menu
Build on WoodgroveNet sample project, I have customized the edit console menu
and added a Site Manage item to the menu. The menu is now draggable.
The site manager menu item is added to the bottom of the console menu. To the
menu items to the console, first you create a custom control derived from
Microsoft.ContentManagement.WebControls.ConsoleControls.BaseNewWindowAction
and then you resgister this control in the console page directive.
CMSSiteManager.cs
public class CMSSiteManager : Microsoft.ContentManagement.WebControls.ConsoleControls.BaseNewWindowAction
{
public CMSSiteManager()
{
this.Text = "Site Manager";
}
...
}
DefaultConsole.ascx
<@ Register TagPrefix="sitemanager" NameSpace="WoodgroveNet.CmsSiteManager" Assembly="WoodgroveNet">
...
<sitemanager:cmssitemanager id="SiteManagerAction" runat="Server">
<a id="ViewSiteManager" onclock="<%# Container.ActionJavascript%>;return false>
<%# Container.Text %>
</a>
</sitemanager:cmssitemanager>
...
The derived class method ActionJavascript() opens a new window to host
the site manager ui. The buttons such as create channel on site manager
dialog also opens new window. This may be a problem with popup blocker. To
see these popup window you may have to disabled the popup blocker or register
this site with your popup blocker to allow popup window.
Unfinished Business
Here is a list of things that needed to complete this example.
- User roles management tab
- Enchance resource management
- Enchange template management
- Unlock feature
- Import and Export
Conclusion
I hope this gives an idea on what you can do to expends on the site manager.
With a web based site manager you can build a more better user experience for
editing and managing contents on the web.