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

Playing with Blocks: 6 Pro Tips for Building Yo...

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
Tweet

More Decks by Calvin Hendryx-Parker

Other Decks in Technology

Transcript

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

    Super-Charged Plone Site Calvin Hendryx-Parker, CTO Plone Conference 2012
  2. #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
  3. #PloneConf • Application Security Track Record • Fine grained Security

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

    just bolted on #1: Use APIs vs embedded iframes
  5. #PloneConf • Version control • Mailing list • Last release

    • Size of community #2: Criteria for Evaluating Your Options
  6. #PloneConf • Java Based • Full-Text Search • Web Services

    API • Standards Based Interfaces • Scalable • XML Configuration • Extensible What is Solr?
  7. #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
  8. #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)
  9. #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."""
  10. #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
  11. #PloneConf Rosetta Project • Wasn't really a CMS • Semantic

    Web Application • Abused Zope and Plone
  12. #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