Build Python CMS       The      Plone       Way       胡崇偉 marr    marr.tw @ gmail.com
Common Ways to      Have Your Sites 1. Building Them with Frameworks 2. Building Them with CMSesYou are here              ...
Please Guide Me …
Plone = Python based CMS CMS = Contents in Database       Added/Edited by User/Group       Managed via Workflow       Sear...
Installation Options  1. Unified Installer  2. /usr/bin/python  3. VirtualEnv
Quality Assurance
Solid Core• Proven Migration Path• Good approximation of  Security Track Records of  All Stack Componentshttp://plone.org/...
Undo, Transaction, Versioning   How Plone Database Interacts with ApplicationsPython’s dynamic nature allowsdevelopers to ...
Welcome to Plone College http://mysite.ploud.com/  • Announcement  • About Us  • People
Default Content Types                  Page                 Folder Item                  News                 Collection  ...
Editinga Page• Title• Summary• Body Text
Sharing Setting•Can Add•Can Edit•Can Review•Can View
One Folder Different Display
News Item Listing #1
News Item Listing #2
Content Rule
More ThanOut-Of-The-Box Functionalities          Needed? With a Little Help from My Friends
Python Building BlocksPython Packages are distributed as Eggs         Python Package Index        http://pypi.python.org/ ...
How Plone Add-ons Workzc.buildout helps to install addons
Extend Plone with Add-onsPlone Addon (Product) =~ Python Package (Egg)
Forms are Common in CMS   Form = Content Type
Form = CMS CoreContent Type = Schema             = Fields + Widgets
ArcheTypes Content FrameworkATNewsItemSchema =  ATCTSchema.copy() + Schema((  TextField(text‘, required = False,     widge...
From Archetypes To DexterityImproved Content Type Building Framework
Fields and Widgets
Dexterity BehaviorsReusable components that can be   enabled on a per-type basis through enumeration in the FTI.
Dexterity Behaviors Example  Reusable components that can be     enabled on a per-type basis   through enumeration in the ...
Deco is Coming
Diazo : Theming Engine
Diazo Concepthttp://www.diazo.org/
Diazo In Actionhttp://screenr.com/snt8
Plone API   1. Portal              3. Users   2. Content             4. Groupsfrom plone import apiportal = api.portal.get...
SQL Integration1. Database Adapter + Z SQL Method  • mysqldbda / psycopg2. ORM (SQLAlchemy)  • ContentMirror3. Pickle  • R...
Considerations1.   Product vs Framework2.   ZODB: a Double-edged Knife3.   Positioned as Enterprise Grade4.   Resource Ava...
Try It –http://Ploud.com website using the Plone       Create a     CMS in less than 10 seconds.     Free with basic featu...
Thank You
Upcoming SlideShare
Loading in...5
×

Build Python CMS The Plone Way

2,035

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,035
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Build Python CMS The Plone Way

  1. 1. Build Python CMS The Plone Way 胡崇偉 marr marr.tw @ gmail.com
  2. 2. Common Ways to Have Your Sites 1. Building Them with Frameworks 2. Building Them with CMSesYou are here Your Website here
  3. 3. Please Guide Me …
  4. 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. 5. Installation Options 1. Unified Installer 2. /usr/bin/python 3. VirtualEnv
  6. 6. Quality Assurance
  7. 7. Solid Core• Proven Migration Path• Good approximation of Security Track Records of All Stack Componentshttp://plone.org/products/plone/security/overview
  8. 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. 9. Welcome to Plone College http://mysite.ploud.com/ • Announcement • About Us • People
  10. 10. Default Content Types Page Folder Item News Collection Event• Announcement Image• About Us File Link• People
  11. 11. Editinga Page• Title• Summary• Body Text
  12. 12. Sharing Setting•Can Add•Can Edit•Can Review•Can View
  13. 13. One Folder Different Display
  14. 14. News Item Listing #1
  15. 15. News Item Listing #2
  16. 16. Content Rule
  17. 17. More ThanOut-Of-The-Box Functionalities Needed? With a Little Help from My Friends
  18. 18. Python Building BlocksPython Packages are distributed as Eggs Python Package Index http://pypi.python.org/ Example: easy_install docutils pip docutils
  19. 19. How Plone Add-ons Workzc.buildout helps to install addons
  20. 20. Extend Plone with Add-onsPlone Addon (Product) =~ Python Package (Egg)
  21. 21. Forms are Common in CMS Form = Content Type
  22. 22. Form = CMS CoreContent Type = Schema = Fields + Widgets
  23. 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. 24. From Archetypes To DexterityImproved Content Type Building Framework
  25. 25. Fields and Widgets
  26. 26. Dexterity BehaviorsReusable components that can be enabled on a per-type basis through enumeration in the FTI.
  27. 27. Dexterity Behaviors Example Reusable components that can be enabled on a per-type basis through enumeration in the FTI.
  28. 28. Deco is Coming
  29. 29. Diazo : Theming Engine
  30. 30. Diazo Concepthttp://www.diazo.org/
  31. 31. Diazo In Actionhttp://screenr.com/snt8
  32. 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. 33. SQL Integration1. Database Adapter + Z SQL Method • mysqldbda / psycopg2. ORM (SQLAlchemy) • ContentMirror3. Pickle • RelStorage
  34. 34. Considerations1. Product vs Framework2. ZODB: a Double-edged Knife3. Positioned as Enterprise Grade4. Resource Availability5. Integration Issues
  35. 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. 36. Thank You
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×