27
Plone : Evolving Python CMS 胡崇偉 marr.tw @ gmail.com

Plone -- Evolving Python CMS

Embed Size (px)

DESCRIPTION

A short talk at Python Hsinchu User Group gathering on 2012/09/17. Plone is a long existing CMS (Content Management System) software in the Python world, and one of the most powerful. In short, a CMS runs a database storing contents that are added/edited by User/Group, managed via Workflow, and searchable with Index/Catalog. We will showcase Plone's existing features, demonstrating how it performs as a CMS product, also preview the coming technologies Plone will embrace.

Citation preview

Page 1: Plone -- Evolving Python CMS

Plone :Evolving Python CMS

胡崇偉

marr.tw @ gmail.com

Page 2: Plone -- Evolving Python CMS

I Love WebDo You?

Encouraging Everyone

to Think in a Way

Scalable and Collaborative

Page 3: Plone -- Evolving Python CMS

Common Ways to Have Your Sites

1. Building Them with Frameworks

2. Running Them with CMSes

Page 4: Plone -- Evolving Python CMS

Existing FrameworksNever Satisfy Me,

So I Create My Own…

強者如是說

Page 5: Plone -- Evolving Python CMS

Plone = Python based CMS

CMS = Contents in DatabaseAdded/Edited by User/GroupManaged via WorkflowSearchable with Index/Catalog

Page 6: Plone -- Evolving Python CMS

Installation Options

1.Unified Installer

2./usr/bin/python

3.VirtualEnv

Page 8: Plone -- Evolving Python CMS

Solid Core• Proven Migration Path

• Good approximation of Security Track Records of All Stack Components

http://plone.org/products/plone/security/overview

Page 9: Plone -- Evolving Python CMS

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.

Page 10: Plone -- Evolving Python CMS

Default Content Types

PageNews ItemEventImageFileLink

Folder

Collection

Page 11: Plone -- Evolving Python CMS

Editing

Page 12: Plone -- Evolving Python CMS

Display

Page 13: Plone -- Evolving Python CMS

One Folder Different Display

Page 14: Plone -- Evolving Python CMS

News Item Listing #1

Page 15: Plone -- Evolving Python CMS

News Item Listing #2

Page 16: Plone -- Evolving Python CMS

More ThanOut-Of-The-Box Functionalities

Needed?

With a Little Help from My Friends

Page 17: Plone -- Evolving Python CMS

Python Building Blocks

Python Packages are distributed as Eggs

Python Package Index

http://pypi.python.org/

Example:

easy_install docutils

pip docutils

Page 18: Plone -- Evolving Python CMS

Extend Plone with Add-ons

Plone Addon (Product) =~ Python Package (Egg)

Page 19: Plone -- Evolving Python CMS

How Plone Add-ons Work

zc.buildout helps to install addons

Page 20: Plone -- Evolving Python CMS

CMS = Forms in Database

Form = Content Type

Page 21: Plone -- Evolving Python CMS

Form = CMS Core

Content Type = Schema = Fields + Widgets

Page 22: Plone -- Evolving Python CMS

From Archetypes To Dexterity

Improved Content Type Building Framework

Page 23: Plone -- Evolving Python CMS

Dexterity Behaviors

Reusable components that can be

enabled on a per-type basis through enumeration in the FTI.

Page 24: Plone -- Evolving Python CMS

Diazo : UI Design + Contents

Page 25: Plone -- Evolving Python CMS

Diazo Concept

http://www.diazo.org/

Page 26: Plone -- Evolving Python CMS

Diazo In Action

http://screenr.com/snt8

Page 27: Plone -- Evolving Python CMS

Considerations

1. ZODB: a Double-edged Knife

2. Positioned as Enterprise Grade

3. Resource Availability

4. Integration Issues