Post on 15-Jan-2015
description
Plone :Evolving Python CMS
胡崇偉
marr.tw @ gmail.com
I Love WebDo You?
Encouraging Everyone
to Think in a Way
Scalable and Collaborative
Common Ways to Have Your Sites
1. Building Them with Frameworks
2. Running Them with CMSes
Existing FrameworksNever Satisfy Me,
So I Create My Own…
強者如是說
Plone = Python based CMS
CMS = Contents in DatabaseAdded/Edited by User/GroupManaged via WorkflowSearchable with Index/Catalog
Installation Options
1.Unified Installer
2./usr/bin/python
3.VirtualEnv
Content ID = URLhttp://localhost:8080/mysitehttp://mysite.com/my_folder/my_itemhttp://mysite.com/my_folder/my_item/viewhttp://mysite.com/my_item/edithttp://mysite.com/managehttp://mysite.com/@@manage-viewlets
http://www.sixfeetup.com/blog/10-reasons-why-plone-can-improve-your-seo
Solid Core• Proven Migration Path
• Good approximation of Security Track Records of All Stack Components
http://plone.org/products/plone/security/overview
Undo, Transaction, Versioning
Python’s dynamic nature allows developers to quickly develop applications, avoiding the compile cycle and static typing declarations required by other languages. The ZODB offers a similar benefit: developers who use the ZODB can store their objects transparently without any cumbersome mapping of objets to relational database tables.
Default Content Types
PageNews ItemEventImageFileLink
Folder
Collection
Editing
Display
One Folder Different Display
News Item Listing #1
News Item Listing #2
More ThanOut-Of-The-Box Functionalities
Needed?
With a Little Help from My Friends
Python Building Blocks
Python Packages are distributed as Eggs
Python Package Index
http://pypi.python.org/
Example:
easy_install docutils
pip docutils
Extend Plone with Add-ons
Plone Addon (Product) =~ Python Package (Egg)
How Plone Add-ons Work
zc.buildout helps to install addons
CMS = Forms in Database
Form = Content Type
Form = CMS Core
Content Type = Schema = Fields + Widgets
From Archetypes To Dexterity
Improved Content Type Building Framework
Dexterity Behaviors
Reusable components that can be
enabled on a per-type basis through enumeration in the FTI.
Diazo : UI Design + Contents
Diazo Concept
http://www.diazo.org/
Diazo In Action
http://screenr.com/snt8
Considerations
1. ZODB: a Double-edged Knife
2. Positioned as Enterprise Grade
3. Resource Availability
4. Integration Issues