Building an Anti-CMS

  • 3,537 views
Uploaded 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.

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.

More in: Technology , Sports
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,537
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
62
Comments
2
Likes
13

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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

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