Build Python CMS The Plone Way

  • 1,923 views
Uploaded on

A short talk at Taipei Python User Group gathering on 2012/11/29.

A short talk at Taipei Python User Group gathering on 2012/11/29.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

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

Actions

Shares
Downloads
3
Comments
0
Likes
3

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

Transcript

  • 1. Build Python CMS The Plone Way 胡崇偉 marr marr.tw @ gmail.com
  • 2. Common Ways to Have Your Sites 1. Building Them with Frameworks 2. Building Them with CMSesYou are here Your Website here
  • 3. Please Guide Me …
  • 4. Plone = Python based CMS CMS = Contents in Database Added/Edited by User/Group Managed via Workflow Searchable with Index/Catalog or simply… Forms in Database
  • 5. Installation Options 1. Unified Installer 2. /usr/bin/python 3. VirtualEnv
  • 6. Quality Assurance
  • 7. Solid Core• Proven Migration Path• Good approximation of Security Track Records of All Stack Componentshttp://plone.org/products/plone/security/overview
  • 8. Undo, Transaction, Versioning How Plone Database Interacts with ApplicationsPython’s dynamic nature allowsdevelopers to quickly develop applications,avoiding the compile cycle and statictyping declarations required by otherlanguages. The ZODB offers a similarbenefit: developers who use the ZODB canstore their objects transparently withoutany cumbersome mapping of objets torelational database tables.
  • 9. Welcome to Plone College http://mysite.ploud.com/ • Announcement • About Us • People
  • 10. Default Content Types Page Folder Item News Collection Event• Announcement Image• About Us File Link• People
  • 11. Editinga Page• Title• Summary• Body Text
  • 12. Sharing Setting•Can Add•Can Edit•Can Review•Can View
  • 13. One Folder Different Display
  • 14. News Item Listing #1
  • 15. News Item Listing #2
  • 16. Content Rule
  • 17. More ThanOut-Of-The-Box Functionalities Needed? With a Little Help from My Friends
  • 18. Python Building BlocksPython Packages are distributed as Eggs Python Package Index http://pypi.python.org/ Example: easy_install docutils pip docutils
  • 19. How Plone Add-ons Workzc.buildout helps to install addons
  • 20. Extend Plone with Add-onsPlone Addon (Product) =~ Python Package (Egg)
  • 21. Forms are Common in CMS Form = Content Type
  • 22. Form = CMS CoreContent Type = Schema = Fields + Widgets
  • 23. ArcheTypes Content FrameworkATNewsItemSchema = ATCTSchema.copy() + Schema(( TextField(text‘, required = False, widget = RichWidget(label=‘Body Text’) ), ImageField(‘image‘, required = False, widget = ImageWidget(label=‘Lead Image’) ),
  • 24. From Archetypes To DexterityImproved Content Type Building Framework
  • 25. Fields and Widgets
  • 26. Dexterity BehaviorsReusable components that can be enabled on a per-type basis through enumeration in the FTI.
  • 27. Dexterity Behaviors Example Reusable components that can be enabled on a per-type basis through enumeration in the FTI.
  • 28. Deco is Coming
  • 29. Diazo : Theming Engine
  • 30. Diazo Concepthttp://www.diazo.org/
  • 31. Diazo In Actionhttp://screenr.com/snt8
  • 32. Plone API 1. Portal 3. Users 2. Content 4. Groupsfrom plone import apiportal = api.portal.get()catalog = api.portal.get_tool(name="portal_catalog")user = api.user.create(email=alice@plone.org)
  • 33. SQL Integration1. Database Adapter + Z SQL Method • mysqldbda / psycopg2. ORM (SQLAlchemy) • ContentMirror3. Pickle • RelStorage
  • 34. Considerations1. Product vs Framework2. ZODB: a Double-edged Knife3. Positioned as Enterprise Grade4. Resource Availability5. Integration Issues
  • 35. Try It –http://Ploud.com website using the Plone Create a CMS in less than 10 seconds. Free with basic features or pay to get more features and storage.
  • 36. Thank You