dominoGuru.com
Your Development & Design Resource
Lotus Notes CMS Client Utility v1.0 on OpenNTF.org!
12/14/2009 02:45 PM by Chris Toohey
I've just uploaded the v1.0 release of my Lotus Notes CMS Client Utility on OpenNTF.org - complete with a simple example website/content showing not only the simple HTML, CSS, JavaScript, XML, and other web content management capabilities, but also things like Render Kits and the lite-blogging capabilities of the application.
Synopsis
This application is pretty simple, as is it's intended job: maintain web content via some pretty simple yet reusable feature functionality, and allow you to click a single button to export the entire website to a local or remote directory.
Here's a quick overview of the design of the Lotus Notes CMS Client Utility:
Content
A Content document is designed to hold a reusable snippet of
markup, be in HTML, CSS, JavaScript, XML, etc.. Using the value stored in the
Permalink item, your content can be keyed to copy the contents of the
Content document. I use this for content that is found across many
different pages that may often change: for example, if your website maintained
an omnipresent web poll, you could easily create a Content
document with a permalink of webpoll. Then, across your Render
Kits and Pages, you could simply refer to
<<webpoll>>
in the markup.
Once published, the contents of each Content document is pushed to any such template-style CMS element that uses them; you can update 300+ Pages with the click of a single button!
Documents
Documents consist of the following items: Title, Description, Keywords, Permalink, Comments Enabled?, Status, Publication Date, Author, Location, and Body. They are designed to act as the default contents of the CMS, and basically can be used to create a simple weblog with the Lotus Notes CMS Client Utility.
Events
Events consist of the following items: Title, Description, Keywords, Event Type, Permalink, Status, Event Date, Start Time, End Time, Location, Hosted/Chair, and Body. Like Documents, Events are basically there to allow you to create and maintain event calendars online.
Media
Pretty simple really - think Images and File Resources.
As an added bonus, you can select from the Actions Menu the Upload Media function, which will walk you through importing a single or multiple file resource from your local machine.
Pages
There are really two (2) types of Pages: Pages and Templates.
Pages can be used to create - for example - a JavaScript Library, Stylesheet, or a specific landing page (such as index.html, weblog.html, etc.).
The powerful feature here is the ability to use Content and
Render Kit content via the mail-merge like feature functionality of
the Lotus Notes CMS Client Utility. Simply put, you can easily add your example
<<webpoll>>
to the Page!
The Template can be used as a render template for Documents and Events. You can evaluate which Documents and Events are rendered with a given Template via it's Formula item, which uses the View Selection Formula syntax to include or restrict which NotesDocuments you include when you render and export the resulting Pages.
Render Kit
Think Content that uses a View Selection Formula to set which Documents or Entries are included, and then iterates through each NotesDocument matching the defined criteria to create a large blob of markup.
In other words, Render Kits are like View Design Elements.
Here is an example of the Render Kit Formula:
<span class="entry">
<h3><<title>></h3>
<h4><<timestamp>> | <<author>> |
<<location>></h4>
<span class="body">
<<body>>
</span>
<h5><a
href="pages/<<permalink>>">permalink</a> |
<<keywords>> | <a
href="pages/<<permalink>>#comments">Comments</a>&
lt;/h5>
</span>
This would result in a pretty simple weblog entry.
In the Render Kit, as mentioned, I can set the View Selection Formula and the Formula for what is displayed, but I can also set a limit to the number of NotesDocuments returned and whether I count from the ubound or the lbound of the returned NotesDocumentCollection.
With this, I can do things like include the latest 5 weblogs on a page, permalink them as <<weblog_latest>> and use them on any Page.
I can also grab upcoming Events, and use <<events_upcoming>>.
I can also grab upcoming Events, and use <<events_upcoming>>, but this time on a Page named iCalendar.ics and import them into any iCalendar-friendly C&S application or cloud service!
Preferences
The Preferences allow you to set not only keywords, but also the target export directory (or Publish Location) for the CMS:
Conclusion
I use this utility to run a Yahoo! Small Business Services-hosted website for my son's Football league: www.pvcubs.com .
It is a simple site, but the job is made even easier using my Lotus Notes CMS Client Utility.
If I need to make a change to a page, or make a change to the schedule that would result in me needing to change all of the pages on the site, it's a simple single-location change, Publish, and a FileZilla directory sync.
You can download the Lotus Notes CMS Client Utility v1.0 on openNTF.org right now, and as always, feel free to leave a comment with your thoughts and suggestions on new features for v1.1!