Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Playing with Blocks: 6 Pro Tips for Building Your Next Super-Charged Plone Site

Playing with Blocks: 6 Pro Tips for Building Your Next Super-Charged Plone Site

While there is much to be said for the convenience of being able to work with a single tool, oftentimes it is better to look at a best-of-breed approach to technology. Plone relies on open standards, which enable the “gluing together” of disparate platforms. Six Feet Up has successfully architected and deployed solutions that tie best-of-breed products together while keeping things simple to manage and analyze. In this talk, Six Feet Up CTO Calvin Hendryx-Parker will use recent deployments as examples to demonstrate the power of Plone combined with other tools, such as the Moin Moin wiki, Vanilla Forum, Open ID authentication, WordPress blog, Solr search engine, etc. Come and learn pro tips that will help you in your next integration project.


Calvin Hendryx-Parker

October 12, 2012


  1. Playing with Blocks: 6 Pro Tips for Building Your Next

    Super-Charged Plone Site Calvin Hendryx-Parker, CTO Plone Conference 2012
  2. #PloneConf We love Plone!

  3. #PloneConf • Workflow • WYSIWYG tools for editing • WebDAV

    and FTP built in for managing content • Collections • Versioning, Staging and Locking • Support for Word and PDF document indexing Does so many things for us
  4. #PloneConf • Application Security Track Record • Fine grained Security

    Permissions We sleep soundly at night with Plone
  5. #PloneConf • Make a great impression • SEO • Not

    just bolted on #1: Use APIs vs embedded iframes
  6. #PloneConf EBSCO Content Integration

  7. #PloneConf SEO Hell

  8. #PloneConf Integration Bliss

  9. None
  10. #PloneConf WordPress Blog and ZenPhoto

  11. None
  12. #PloneConf • Version control • Mailing list • Last release

    • Size of community #2: Criteria for Evaluating Your Options
  13. #PloneConf Spam Takeover?

  14. #PloneConf Mailing List Neglect

  15. #PloneConf Anyone Home?

  16. #PloneConf Activity?

  17. #PloneConf Questionable Roadmap

  18. #PloneConf Corporate Takeover

  19. #PloneConf Hope

  20. #PloneConf #3: Leverage SSO and centralized Authentication

  21. #PloneConf • SAML • OpenID • OAuth • Mozilla Personas

    (BrowserID) Web SSO
  22. #PloneConf • Pre-existing OpenID Authentication • Plone CMS • Moin

    Moin Wiki • Vanilla Forum Real World Usage
  23. None
  24. #PloneConf #4: Supercharge your search with Solr

  25. #PloneConf • Java Based • Full-Text Search • Web Services

    API • Standards Based Interfaces • Scalable • XML Configuration • Extensible What is Solr?
  26. #PloneConf • ZCatalog Index • Doesn't depend on Plone •

    Utilizes new foreign_connections Connection Method • Pass through Solr Queries • Direct access to the Solr Response SolrIndex
  27. #PloneConf Spelling

  28. None
  29. #PloneConf External Content

  30. None
  31. #PloneConf import MoinMoin.events as ev def handle(event): if isinstance(event, ev.PageRenamedEvent):

    handle_renamed(event) elif isinstance(event, ev.PageRevertedEvent): handle_reverted(event) elif isinstance(event, (ev.PageChangedEvent, ev.PageCopiedEvent, ev.TrivialPageChangedEvent)): handle_changed(event) elif isinstance(event, ev.PageDeletedEvent): handle_deleted(event)
  32. #PloneConf class IFakeBrainView(Interface): """Utility methods for updating the Wiki fake

    brains. """ def getFakeBrainId(url): """Generate an id based on the provided URL. The id is always the same for an item. """ def updateFakeBrain(type, title, description, date, url): """Parameters: * Content type * Title * Description * Date * URL to the item Grab the id of the item using getFakeBrainId. If the item already exists, we update it, otherwise we create it. """ def deleteFakeBrain(id): """Given an item id, delete it from the catalog.""" def processUpdate(): """Accept a POST and dispatch appropriately."""
  33. #PloneConf • Can replace several ZCatalog indexes • Remove any

    indexes you have replaced • Use it for all Text Indexes • Still Utilize the ZCatalog Indexes for Everything Else Solr Tips
  34. #PloneConf Pro Tip #5: Beware of Over Customization

  35. #PloneConf The story of KARL 1.0 • Xapian • Windows

    • Tasty Tags • Deliverance
  36. #PloneConf Rosetta Project • Wasn't really a CMS • Semantic

    Web Application • Abused Zope and Plone
  37. #PloneConf • PubMed unicode data coming back for SFARI •

    Data you get today may be fine, but what happens months down the road • Make sure to test what you think Plone will do • Mock External Dependancies #6: Testing, Testing, Testing
  38. #PloneConf Q&A @calvinhp calvin@sixfeetup.com Let's keep building with Blocks