Building a Bi-Lingual Content Management System (CMS)

3,679 views

Published on

By: Chris Owen, Amgueddfa Cymru – National Museum Wales
For: Museums Computer Group Spring Conference 2008
Wednesday 23rd April, 2008, Swansea
http://www.museumscomputergroup.org.uk/

Published in: Business, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,679
On SlideShare
0
From Embeds
0
Number of Embeds
47
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Building a Bi-Lingual Content Management System (CMS)

  1. 1. Building a bilingual CMS <ul><li>Chris Owen </li></ul><ul><li>Amgueddfa Cymru — National Museum Wales </li></ul>
  2. 2. Why build a CMS? <ul><li>Immediate need for content updating </li></ul><ul><li>Integration of existing databases </li></ul><ul><li>Initial needs were simple </li></ul><ul><li>Simplicity, easy platform for development </li></ul><ul><li>Ease of use for content authors </li></ul><ul><li>Workflow tailored to a bilingual site </li></ul>
  3. 3. Some uses of the CMS <ul><li>Amgueddfa Cymru web-site </li></ul><ul><li>Intranet </li></ul><ul><li>SCAN, other sites </li></ul><ul><li>Oriel 1 </li></ul><ul><li>Gallery touch-screens </li></ul><ul><li>CMS Admin </li></ul>
  4. 4. The web-site <ul><li>Visitor pages </li></ul><ul><li>Events & exhibition information </li></ul><ul><li>Corporate information </li></ul><ul><li>Educational resources </li></ul><ul><li>Rhagor </li></ul><ul><li>Blogs </li></ul>
  5. 12. How we built the CMS <ul><li>Admin web application came first </li></ul><ul><li>Created CMS with simple data-structures </li></ul><ul><li>Added security & workflow to the Admin </li></ul><ul><li>Added login features to CMS </li></ul><ul><li>Integrated the two </li></ul><ul><li>Migrate to more complex data-structures </li></ul><ul><li>Lots of new features... </li></ul>
  6. 13. Bilingual design <ul><li>Treat languages equally? </li></ul><ul><li>Splash screen versus different domain names? </li></ul><ul><li>Try to localise URLs </li></ul><ul><li>Place language switch in consistent location </li></ul><ul><li>Consider workflow for translation, entering content, etc. </li></ul>
  7. 14. Bilingual design <ul><li>Use two-character language codes </li></ul><ul><li>Naming conventions for files </li></ul><ul><li>Naming conventions for database fields </li></ul><ul><li>Never embed localised strings in code </li></ul>
  8. 15. Bilingual design <ul><li>SQL queries: select title_’.$cms->lang.’ as title </li></ul><ul><li>Reduces need to keep referring to language </li></ul><ul><li>Avoids potential bugs later </li></ul>
  9. 16. Amgueddfa CMS Features <ul><li>Multiple sites, themes </li></ul><ul><li>Content blocks system </li></ul><ul><li>Can launch lightweight version of CMS </li></ul><ul><li>Localisation features </li></ul><ul><li>Friendly URLs, unlikely to have broken links </li></ul><ul><li>Database-driven stylesheets </li></ul>
  10. 17. Amgueddfa CMS Features <ul><li>Integrated user authentication, groups </li></ul><ul><li>Users comments with approval </li></ul><ul><li>AJAX features </li></ul><ul><li>Plugins - WYSIWYG editing, movie player, captcha, etc. </li></ul><ul><li>Useful features - error reporting, emailing, querying, etc. </li></ul>
  11. 18. Architecture
  12. 20. Standard record view
  13. 21. Hierarchy view
  14. 22. Editing
  15. 23. Admin features <ul><li>Standard CMS site </li></ul><ul><li>Media management </li></ul><ul><li>Simple workflow features, messaging </li></ul><ul><li>WYSIWYG editing </li></ul><ul><li>Fine-grained security on resources </li></ul><ul><li>XML templates </li></ul><ul><li>Datatypes - PHP & JavaScript objects </li></ul>
  16. 24. Manage media
  17. 25. Manage media
  18. 26. Manage media
  19. 27. Metadata sets
  20. 28. Workflow
  21. 29. XML Templates
  22. 30. Datatypes
  23. 31. Content blocks <ul><li>PHP objects </li></ul><ul><li>Localised </li></ul><ul><li>Called with simple XML tag </li></ul><ul><li>Can return standard or text versions </li></ul><ul><li>Flexible calling of blocks in PHP code </li></ul><ul><li>AJAX features built-in </li></ul>
  24. 34. Inserting Blocks <ul><li><nmgw:media id=”232” class=”right” /> </li></ul><ul><li><nmgw:link id=”1”>Link text</nmgw:link> </li></ul><ul><li><nmgw:blog:entry id=”10” /> </li></ul><ul><li><nmgw:email:link name=”chris.owen”>... </li></ul><ul><li>$cms->get_block(‘media’, array(‘id’=>232)); </li></ul>
  25. 35. The future <ul><li>More user-centric features </li></ul><ul><li>People’s Collection, other collaborations </li></ul><ul><li>More use of metadata features </li></ul><ul><li>Ease of use, customised layouts </li></ul><ul><li>Open up CMS to external groups </li></ul><ul><li>Open-source Amgueddfa CMS? </li></ul>

×