Your SlideShare is downloading. ×
0
Building<br />an<br />Anti-CMS<br />(and how it’s changed our web team)<br />Michael Nolan<br />http://twitter.com/MikeNol...
Edge HillWTF?<br />
3 years<br />1 month<br />3 days<br />
© 1984 Charles Platt and David Langford; Micromania: The Whole Truth About Home Computers<br />
SOAP<br />RPC<br />REST<br />
SOAP<br />RPC<br />REST<br />
Anti-CMS?<br />
CMS?<br />
Loremipsumdolor sit amet, consecteturadipiscingelit. Nullabibendum, urna non luctus tempus, purusurnaposuere nisi, velfeug...
workflow, version control, roles, support, audit trail, kitchen sink...<br />
EVERYONE<br />HAS<br />ONE<br />
Reality<br />
Wrong People<br />
Training on…<br />System<br />
Training on…<br />Writingfor theWeb<br />
CMS inhibit creativity<br />
CMS are slow to adapt to new technologies<br />
CMS often tie you to the vendor for extensions<br />
News<br />
Events<br />
Courses<br />
/programmes<br />/music<br />
domain expert<br />
Press Releases<br />
Calendar Entries<br />
Courses?<br />
XCRI-CAP<br />
Propel ORM<br />* yes, we are still using symfony 1.0 and yes, I know we should upgrade<br />
$ symfony propel-init-admin frontend courseAdmin Course<br />
&lt;div class=&quot;vcard&quot;&gt;<br />&lt;a href=&quot;/performingarts/about/staff/phil-christopher&quot; class=&quot;u...
TAGS<br />
machine<br />TAGS<br />
ehu:news=count-on-edge-hill<br />
ehu:event=42<br />
ehu:course=accountancy<br />
ehu:profile=nolanm<br />
ehu:video=graduation-2009<br />
ehu:department=education<br />
Zend<br />Search<br />Lucene<br />
Atom, JSON, PHP, XCRI, iCal<br />
job done?<br />
contentordata<br />
Zend, Symfony, Cake, CI, Yii, Agavi...Django, RoR, .Net MVC, *ducks*<br />
(and how it’s changed our web team)<br />
( www || blogs || wiki )<br />
Building<br />an<br />Anti-CMS<br />(and how it’s changed our web team)<br />Michael Nolan<br />http://twitter.com/MikeNol...
Creative Commons<br />http://www.flickr.com/photos/dalelane/3089960339/<br />http://en.wikipedia.org/wiki/File:Edge_Hill,_...
Upcoming SlideShare
Loading in...5
×

Building an Anti-CMS

3,641

Published on

Slides from my PHP North West 2009 talk "Building an Anti-CMS (and how it's changed our web team)" based on my experiences leading Edge Hill University's Web Services team.

Published in: Technology, Sports
2 Comments
13 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,641
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
63
Comments
2
Likes
13
Embeds 0
No embeds

No notes for slide
  • So a little bit of background information about me and where I work.
  • Not in Birmingham
  • We train lots of these (teachers)
  • And these (nurses)
  • corporate website
  • portal
  • student communities. And of course attending lots of meetings.
  • So what is an Anti-CMS?
  • Allow non-technical users to update content
  • Provide a uniform template across the site
  • Keep sites up to date
  • Whole bunch of other stuff.
  • Because everyone else has one! In the higher education sector, most institutions went through this process in the last five or six years. Many are now on their second or third CMS.
  • The reality of many CMS deployments is:
  • The wrong people are given access to create content
  • Given training on how to use the system,
  • not how to write for the web
  • CMS inhibit creativity
  • Slow to adapt to new technologies
  • Little access to internals meaning often you need to go back to the vendor for extensions
  • They built the /programmes website and more recently /music and it turns out we did a similar kind of thing but without knowing it and obviously not as well!
  • They explained how they get a domain expert to sketch their world.  Ignore what the resulting website is going to look like and concentrate on real things.  In their case TV or radio programmes, channels, series and so on.
  • Course information was a trickier proposition but fortunately around the time we were redeveloping this area of the website another project did all the hard work for us.
  • An XML format called XCRI-CAP defines course information for marketing purposes quite neatly and we were able to convert that into a database.
  • To get a little bit technical, we use a web framework called Symfony.
  • The Propel ORM is built into this making defining database models a piece of cake.  
  • From these models an "admin generator" can automagically create an interface to create and manage records in the database.
  • Editing a few YAML configuration files and customising some templates results in a nice interface to the database.
  • With some test data in the database we can start to work on how the front end should work.  This is often done from two directions simultaneously by developer and designer.  The designer is creating Photoshop mock-ups of how these would ideally look
  • while the developer outputs nice, hopefully semantic HTML representing the data we want to display.  Through several iterations these come together to the final working design.
  • Where there’s an established structured way of presenting information like a microformat
  • We can use that as the basis of our code so here’s an example of a vCard we can create from the database.
  • Which can then be styled to look pretty.
  • This can be a delicate balancing act.  Pay too much attention to designs and you end up making horrible hacks to the code while we all know what happens when you leave a developer to design websites!
  • Hopefully we end up with some nice looking, usable and accessible designs for each area of the site but we can do more than this.  Now that we’re managing our data in a structured way we can start to reuse it across our sites.
  • So as well as a central news site
  • we can show stories from the stakeholder magazine
  • or those related to a particular department on their website just a little extra coding and tagging stories correctly.
  • In our Anti-CMS we use tags
  • or more specifically machine tags to say how different types of data is linked.
  • We can also do things that regular CMSs do but more customised to our requirements.
  • So when searching for courses you can see useful details rather than a random snippet of text from the page.
  • Likewise event search results have things like embedded microformats. Stefan is doing a session on how Zend and Symfony can be used together and I think Lucene might be one of the things he talks about.
  • Recently we were able to add search as you type to course searches in just a few minutes using a jQueryplugin hooked up to a JSON feed.
  • The talk title also promised to tell you how it changed our web team.
  • Part of our approach to this is questioning whether publishing to the corporate website is the best place for everything or if a blog or an area on our extranet wiki would be a more appropriate place for their content.
  • Ask me at PHPNW10 how it works out.
  • Transcript of "Building an Anti-CMS"

    1. 1. Building<br />an<br />Anti-CMS<br />(and how it’s changed our web team)<br />Michael Nolan<br />http://twitter.com/MikeNolan/<br />http://www.michaelnolan.co.uk/<br />http://blogs.edgehill.ac.uk/webservices/<br />http://joind.in/621/<br />
    2. 2.
    3. 3. Edge HillWTF?<br />
    4. 4.
    5. 5.
    6. 6.
    7. 7.
    8. 8.
    9. 9. 3 years<br />1 month<br />3 days<br />
    10. 10. © 1984 Charles Platt and David Langford; Micromania: The Whole Truth About Home Computers<br />
    11. 11. SOAP<br />RPC<br />REST<br />
    12. 12. SOAP<br />RPC<br />REST<br />
    13. 13.
    14. 14.
    15. 15.
    16. 16. Anti-CMS?<br />
    17. 17.
    18. 18. CMS?<br />
    19. 19.
    20. 20.
    21. 21. Loremipsumdolor sit amet, consecteturadipiscingelit. Nullabibendum, urna non luctus tempus, purusurnaposuere nisi, velfeugiatorcifelis in turpis. Curabiturvenenatiseros et enimlaoreet a sollicitudinipsumhendrerit. Quisqueurnaarcu, egestasnecvarius non, consectetur vitae libero. Nullarutrummalesuadasuscipit. Donecbibendumiaculisdolor sit ametmollis.<br />Last updated: 10 seconds ago<br />
    22. 22. workflow, version control, roles, support, audit trail, kitchen sink...<br />
    23. 23. EVERYONE<br />HAS<br />ONE<br />
    24. 24. Reality<br />
    25. 25. Wrong People<br />
    26. 26. Training on…<br />System<br />
    27. 27. Training on…<br />Writingfor theWeb<br />
    28. 28. CMS inhibit creativity<br />
    29. 29. CMS are slow to adapt to new technologies<br />
    30. 30. CMS often tie you to the vendor for extensions<br />
    31. 31.
    32. 32.
    33. 33.
    34. 34. News<br />
    35. 35. Events<br />
    36. 36. Courses<br />
    37. 37. /programmes<br />/music<br />
    38. 38. domain expert<br />
    39. 39. Press Releases<br />
    40. 40. Calendar Entries<br />
    41. 41. Courses?<br />
    42. 42. XCRI-CAP<br />
    43. 43.
    44. 44.
    45. 45. Propel ORM<br />* yes, we are still using symfony 1.0 and yes, I know we should upgrade<br />
    46. 46. $ symfony propel-init-admin frontend courseAdmin Course<br />
    47. 47.
    48. 48.
    49. 49.
    50. 50.
    51. 51.
    52. 52.
    53. 53. &lt;div class=&quot;vcard&quot;&gt;<br />&lt;a href=&quot;/performingarts/about/staff/phil-christopher&quot; class=&quot;url&quot;&gt;<br /> &lt;img class=&quot;photo&quot; src=&quot;/images/phil-christopher&quot; alt=&quot;Phil Christopher&quot; /&gt;<br />&lt;/a&gt;<br />&lt;h3 class=&quot;fn&quot;&gt;<br /> &lt;a href=&quot;/performingarts/about/staff/phil-christopher&quot;&gt;<br /> &lt;span class=&quot;given-name&quot;&gt;Phil&lt;/span&gt;<br /> &lt;span class=&quot;family-name&quot;&gt;Christopher&lt;/span&gt;<br /> &lt;/a&gt;<br />&lt;/h3&gt;<br />&lt;p class=&quot;role&quot;&gt;Head of Performing Arts&lt;/p&gt;<br />&lt;div class=&quot;tel&quot;&gt;<br /> &lt;span class=&quot;type&quot;&gt;Work&lt;/span&gt; 01695 584688<br />&lt;/div&gt;<br />&lt;div class=&quot;email&quot;&gt;<br /> &lt;a href=&quot;mailto:chrisp@edgehill.ac.uk&quot; <br /> title=&quot;chrisp@edgehill.ac.uk&quot;&gt;Email&lt;/a&gt;<br />&lt;/div&gt;<br />&lt;div class=&quot;vprofile&quot;&gt;<br /> &lt;a href=&quot;/performingarts/about/staff/phil-christopher&quot;&gt;View Profile&lt;/a&gt;<br />&lt;/div&gt;<br />&lt;div class=&quot;tags&quot;&gt;<br /> &lt;ul&gt;<br /> &lt;li&gt;&lt;a href=&quot;/profiles/tag/Directing&quot; rel=&quot;tag&quot;&gt;Directing&lt;/a&gt;&lt;/li&gt;<br /> &lt;li&gt;&lt;a href=&quot;/profiles/tag/Drama&quot; rel=&quot;tag&quot;&gt;Drama&lt;/a&gt;&lt;/li&gt;<br /> &lt;li&gt;&lt;a href=&quot;/profiles/tag/Performance&quot; rel=&quot;tag&quot;&gt;Performance&lt;/a&gt;&lt;/li&gt;<br /> &lt;li&gt;&lt;a href=&quot;/profiles/tag/Theatre&quot; rel=&quot;tag&quot;&gt;Theatre&lt;/a&gt;&lt;/li&gt;<br /> &lt;/ul&gt;<br />&lt;/div&gt;<br />&lt;/div&gt;<br />
    54. 54.
    55. 55.
    56. 56.
    57. 57.
    58. 58.
    59. 59.
    60. 60.
    61. 61. TAGS<br />
    62. 62. machine<br />TAGS<br />
    63. 63. ehu:news=count-on-edge-hill<br />
    64. 64. ehu:event=42<br />
    65. 65. ehu:course=accountancy<br />
    66. 66. ehu:profile=nolanm<br />
    67. 67. ehu:video=graduation-2009<br />
    68. 68. ehu:department=education<br />
    69. 69.
    70. 70.
    71. 71. Zend<br />Search<br />Lucene<br />
    72. 72.
    73. 73.
    74. 74. Atom, JSON, PHP, XCRI, iCal<br />
    75. 75.
    76. 76. job done?<br />
    77. 77. contentordata<br />
    78. 78. Zend, Symfony, Cake, CI, Yii, Agavi...Django, RoR, .Net MVC, *ducks*<br />
    79. 79. (and how it’s changed our web team)<br />
    80. 80.
    81. 81.
    82. 82.
    83. 83.
    84. 84. ( www || blogs || wiki )<br />
    85. 85. Building<br />an<br />Anti-CMS<br />(and how it’s changed our web team)<br />Michael Nolan<br />http://twitter.com/MikeNolan/<br />http://www.michaelnolan.co.uk/<br />http://blogs.edgehill.ac.uk/webservices/<br />http://joind.in/621/<br />
    86. 86. Creative Commons<br />http://www.flickr.com/photos/dalelane/3089960339/<br />http://en.wikipedia.org/wiki/File:Edge_Hill,_Liverpool.JPG<br />http://en.wikipedia.org/wiki/File:Groove_Armada.jpg<br />http://www.flickr.com/photos/cellphonesusie/2135374403/<br />http://www.flickr.com/photos/dcvision2006/3297075008/<br />http://www.flickr.com/photos/marquette/1812518264/<br />http://www.flickr.com/photos/wboessen/636999249/<br />http://www.flickr.com/photos/lokar/3345753029/<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×