Lipstick on a Pig - European Plone Symposium 2009

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Lipstick on a Pig - European Plone Symposium 2009 - Presentation Transcript

    1. Lipstick on a Pig Dynamically re-skinning a legacy .NET portal with python Matt Hamilton [email_address]
    2. Introduction
      • Dynamically re-skinning a .NET portal site
      • Can't name the client
      • Portal for teachers in the UK
      • Aggregating content across legacy portal, Plone and Moodle
    3. Who Am I
      • Technical Director of Netsight
        • Web development firm in UK
      • 10 years experience with Zope/Plone
      • More of an integrator than core developer
        • I get involved in all those sticky projects of merging Plone in with other systems in an enterprise
    4. Where Were We?
    5. Existing Portal (1.0)
      • Five years old by November 2009
      • User registrations: 46,681
      • Course enrolments: 33,664
      • Resource Bank views: 247,911
    6. Existing Portal (1.0)
    7. Problems with Current Portal
      • Look-and-feel
        • Not very compelling
      • Usability
        • Challenging in places
      • A poor content management system
        • Can't really edit general content, so use a separate FTP server and Dreamweaver
      • Vendor lock-in
        • Even small changes, very expensive
    8. The Future - Portal 2.0
      • Usability, Design and Content Review April 2008
      • Strategic Review August 2008
      • Feasibility Studies Jan 2009
      • Pilot Demonstrator (“Portal V1.5”) March 2009
    9. Design Review
    10. Architecture Review
      • Portal 1.0 - Monolithic, tightly coupled, poor separation of skin
    11. Architecture Review
      • Portal 2.0 - Extensible, loosely coupled, good separation of skin
    12. How Do We Get There? Remember: We Can't Touch the Existing System!
    13. The Cunning Plan Skin 1.0 Portal 1.0 Existing Portal Module of functionality e.g. portfolio Browser
    14. Total Skin Graft! Portal 1.5 New skin via xpath and xslt transformation. Web server needs to handle SSL. Together they give us nice URLs. web server transformation proxy Skin 2.0 Browser Skin 1.0
    15. Deliverance
      • Several Different Projects
        • xdv
        • Deliverance 0.3
      Nate just talked about Deliverence, so I won't go on about it
    16. WSGI
      • WSGI allows you to write small modules chained together in a 'pipeline'
      • Many small filters combined together as you need
      • Lots of existing components out there
      • Very easy to write new ones
    17. WSGI Power - The Pipeline [pipeline:portal] pipeline = theme.portal ploneinterceptor xslt linkrewrite htmlcleaner source.portal [filter:theme.portal] use = egg:dv.xdvserver#xdv theme_uri = file://%(here)s/theme/theme.html rules = %(here)s/rules/content.xml [filter:ploneinterceptor] use = egg:ns.ploneinterceptor#ploneinterceptor [filter:xslt] use = egg:dv.xdvserver#xslt xslt_file = %(here)s/rules/transform.xsl [filter:linkrewrite] use = egg:ns.linkrewrite#linkrewrite [filter:htmlcleaner] use = egg:ns.htmlcleaner#htmlcleaner [app:source.portal] use = egg:Paste#proxy address = http://www.theexistingsite.org.uk/
    18. Link Rewriting
      • Old URL:
        • http://www.theclient.org.uk/WebPortal.aspx?page=1&module=DB920A53-01EA-4886-8878-F2CDF5FA8CFD&mode=101&IsNonNewsDB920A53_01EA_4886_8878_F2CDF5FA8CFD=True&newsIdDB920A53_01EA_4886_8878_F2CDF5FA8CFD=11208#10
        • 205 characters!
      • New URL:
        • http://www.theclient.org.uk/news/11208#10
        • 41 characters!
    19. HTML Cleanup
      • LXML rules!
        • from lxml.html.clean import Cleaner cleaner = Cleaner(...) # Pretty print the HTML dom = document_fromstring(body) body = etree.tostring(dom, pretty_print=True) # Clean the HTML body = cleaner.clean_html(body)
    20. Result
      • Old
        • 70kb of HTML
        • 120 Validation errors, 61 warnings
      • New
        • 40Kb of HTML
        • 27 Errors, 1 warning (mainly xhtml/html conflicts)
        • No significant performance impact
    21. Putting all together
    22. End Result New Style Portal content
    23. Complications
      • Navigation
        • One page, two content sources, how is the navigation built?
      • Search
        • Search needs to go across multiple systems
        • Will soon be looking at Solr, Xapian, Google Mini
      • .NET viewstate postback
        • Massive hidden state variable, form wraps entire site!
    24. Questions? [email_address]

    + Matt HamiltonMatt Hamilton, 6 months ago

    custom

    702 views, 0 favs, 0 embeds more stats

    A talk I gave at the European Plone Symposium 2009 more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 702
      • 702 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 14
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories