Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Why use CMS?
• Distributed content creation & editing• Reuse content and components• Standardized page design• User accounts and security
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
ContentDatabase
HTML
InputForms
ADA
WML
PDAProprietary
RSS-XML
Content
1. Input Once…
…Output Many Formats
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
ContentDatabase
HTML
InputForms
ADA
WML
PDAProprietary
RSS-XML
Template&
CSS
Template&
CSS
Template&
CSS
WMLTemplate
TemplateHTML
ClippingCSS
TemplateXMLCSS
Content
DesignSeparate Content from Design
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
ContentDatabase
HTML
InputForms
ADA
WML
PDAProprietary
RSS-XML
Content Design
DesignDatabase
Template
Separate Content from Design
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
ContentDatabase
HTML
InputForms
ADA
WML
PDAProprietary
RSS-XML
Content Design
DesignDatabase
Template
Separate Content… …from Design
DesignForm
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
ContentDatabase
HTML
InputForms
ADA
WML
PDAProprietary
RSS-XML
Design
DesignDatabase
Template
InputForms
InputForms
InputForms
InputForms Content
Expert
Staff
Faculty
User-drivenFAQ
Syndicated NewsDesignForms
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Separate Content from Design:
Queries thispage (Records=1, Time=0ms)SQL = select * from tblPageDefs where pID=1 (Records=1, Time=10ms)
pagecontent (Records=2, Time=0ms) SQL = select * from tblPageContent where pid=1 and post=1 order by displayorder
menudata (Records=1, Time=0ms) SQL = select * from tblMenuContent where post=1 and pID=1
menu (Records=41, Time=0ms) SQL = select * from tblMenuContent where (menulevel1 > 0) and (menuID=1) order by menulevel1, menulevel2, menulevel3, menulevel4 …
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Classes
Data Architecture:
• News• Calendar• Publications• User data and requests• FAQs
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Classes
Data Architecture: Display
• News• Calendar• User data and requests• FAQs
tblNews tblCalendar ……
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Classes
Data Architecture: Display
• News• Calendar• User data and requests• FAQs
tblNews tblCalendar ……Display Modules
cf_News cf_Calendar
• Custom tags, CFCs, …• Query & output …
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Data Architecture: Display
Banner
Menu
Layout
News
Calendar
…
Content Module is a query and <cfoutput> loop.
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Data Architecture: Display
Banner
Menu
Layout
News
Calendar
…
Layout Module is a query and <cfoutput> loop also. It “knows” what modules to call from the Page Content table.
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Data Architecture: Display
Banner
Menu
Layout
News
Calendar
…
The page template queries the design table to select from available Layout Modules.
Features
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Data Architecture: Display
Banner
Menu
Layout
News
Calendar
…
Separate modules for Banner and Menu. The page template queries the page design table to determine what banner and menu modules to call. (Can have no menu)
Features
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Data Architecture: Display
Banner
Menu
Layout
News
Calendar
…Features
Page ID ties all modules, banner and content
The Menu is a separate object
!!!
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Data Architecture: Menu
• Separate module
• 4 Nested levels
• Only relationship to content is page ID. Can be
external URLs.
• Page design and menu construction separate
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Integrating Web Content: Keywords
tblNews
Contentdatabase
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Integrating Web Content: Keywords
tblNews tblKeywords
Contentdatabase
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Integrating Web Content: Keywords
tblNewstblNewsXKeywords
tblKeywords
select vcTitle,vcImageURL,vcPDFURL,vcHTMLURL… from tblPublications where (bDistribute<>0) and (post <>0) and (iPublicationID IN
(SELECT iPublicationID FROM tblPublicationsByKeywords WHERE iKeywordID IN (6)))
order by title
Contentdatabase
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Integrating Web Content: Keywords & Meta Data
tblNewstblNewsXKeywords
tblKeywords
Contentdatabase
Meta Keywords
Meta data(Web search)
KeywordHierarchy
Web Search
Content Management Systems – Christian Vinten-Johansen
Content Management Systems
Integrating Web Content: Multiple Queries!
Queries
thispage (Records=1, Time=10ms) SQL = select * from tblPageDefs where pID=1 menudata (Records=2, Time=0ms) SQL = select * from tblMenuContent where post=1 and pID=1 menu (Records=41, Time=0ms) SQL = select * from tblMenuContent where (menulevel1 > 0) and (menuID=1) order by menulevel1, menulevel2, menulevel3, menulevel4 pagecontent (Records=5, Time=0ms) SQL = select * from tblPageContent where pid=1 and post=1 order by displayorder GetImageRecords (Records=4, Time=10ms) SQL = select imageID from tblRotateImages where post=1 and horses=1 GetEntry (Records=1, Time=0ms) SQL = SELECT * FROM tblRotateImages WHERE imageID = 25 getseminars (Records=0, Time=10ms) SQL = SELECT * FROM tblSeminars WHERE (datediff("d", getdate(), exdate) > 0) AND (active =1) ORDER BY exyear, exmonth, exday getnews (Records=52, Time=60ms) SQL = SELECT * FROM tblNews WHERE (datediff("d", getdate(), exdate) > 0) AND (post = 1) ORDER BY priority ASC, postDate DESCgetcalendar (Records=5, Time=20ms) SQL = SELECT * FROM tblCalendar WHERE (datediff("d", getdate(), exdate) > 0) AND (post = 1) ORDER BY exdate ASC, priority ASC
Content Management Systems – Christian Vinten-Johansen
Content Management SystemsSecuring Web Content: User Accounts:
Content Management Systems – Christian Vinten-Johansen
Content Management SystemsSecuring Web Content: User Accounts:
SELECT DISTINCT formAccountID, userID, formID, active FROM tblFormAccounts WHERE formID = 17 and userID= 'cjohansen'
Content Management Systems – Christian Vinten-Johansen
Content Management SystemsSecuring Web Content: User Accounts:
select formAccountID, userID, formID, active from tblFormAccounts where formAccountID = 12
Content Management Systems – Christian Vinten-Johansen
Content Management Systems