World Plone Day 2012 Taipei

30
Python Plone 與與 2012 Taipei marr.tw @ gmail.com

description

This presentation in World Plone Day 2012 Taipei, held at RCHSS Academia Sinica, demos how to add collective.geo to a vanilla Plone, and overview to Plone customization. See photos at http://www.flickr.com/photos/marr/sets/72157629895465211/

Transcript of World Plone Day 2012 Taipei

Page 1: World Plone Day 2012 Taipei

Python 與 Plone 研習

2012 Taipei

marr.tw @ gmail.com

Page 2: World Plone Day 2012 Taipei

Plone = Python based CMS

CMS = Content in DatabaseAdded/Edited by User/Group

Managed via WorkflowSearchable with Index/Catalog

Page 3: World Plone Day 2012 Taipei

Plone = Python based CMS

CMS = Content in DatabaseAdded/Edited by User/Group

Managed via WorkflowSearchable with Index/Catalog

Page 4: World Plone Day 2012 Taipei

2 Admin Interfaces

ZMIhttp://localhost:8080/manage

Plone Setup

2 Browsers to See DisplayDisplay for Logged in User might be

different than Anonymous User

Page 5: World Plone Day 2012 Taipei

Content ID = URL

http://localhost:8080/mysitehttp://mysite.com/my_folder/my_itemhttp://mysite.com/my_item/edithttp://mysite.com/managehttp://mysite.com/@@manage-viewlets

Page 6: World Plone Day 2012 Taipei

Default Content Items

Page 7: World Plone Day 2012 Taipei

Example Page Editing

Page 8: World Plone Day 2012 Taipei

Example Page Viewing

Page 9: World Plone Day 2012 Taipei

One Folder Different Display

Page 10: World Plone Day 2012 Taipei

Example News Viewing

Page 11: World Plone Day 2012 Taipei

Example News Viewing

Page 12: World Plone Day 2012 Taipei

Python Building Blocks

Python Packages are distributed as Eggs

Python Package Indexhttp://pypi.python.org/

Example:easy_install docutils

pip docutils

Page 13: World Plone Day 2012 Taipei

Extend Plone with Add-onsPlone Add-on (Product) =~ Python Package (Egg)

Page 14: World Plone Day 2012 Taipei

Extend Plone with Add-onsPlone Add-on (Product) =~ Python Package (Egg)

Page 15: World Plone Day 2012 Taipei

How Plone Add-ons Work

Page 16: World Plone Day 2012 Taipei

Add-on Example: collective.geo

Edit buildout.cfg :

eggs = Plone Pillow lxml collective.geo.bundle

Page 17: World Plone Day 2012 Taipei

Manage Contents – The Hard Way

bin/plonectl debug

bin/plonectl run my_script.py

Page 18: World Plone Day 2012 Taipei

Undo Makes Life Easier

Page 19: World Plone Day 2012 Taipei

Import/Export Saves Your Day

Page 20: World Plone Day 2012 Taipei

Customization

Page 21: World Plone Day 2012 Taipei

CSS, JavaScript, SkinViewlet, Portlet

Theme

• Debug Mode for Responsive Update• Default Theme = Sunburst• http://localhost:8080/@@manage-viewlets• ZMI portal_skin / ploneCustom• Firefox + Firebug

Page 22: World Plone Day 2012 Taipei

Look Before You Code

模組軟體集散地http://plone.org/products

http://pypi.python.org/

Page 23: World Plone Day 2012 Taipei

Example: Stop Road Killing

IncidentContentType

Title

Description

Poster Name

Page 24: World Plone Day 2012 Taipei

Permissions and Roles

Page 25: World Plone Day 2012 Taipei

Catalog: Index and Metadata

ZMI / portal_catalog

Page 26: World Plone Day 2012 Taipei

Browser View

http://mysite.com/my_item/@@my_view

Page 27: World Plone Day 2012 Taipei

Workflow

States 狀態Transitions 動作

Page 28: World Plone Day 2012 Taipei

Content Rule

Triggering Event:• Object added to this container• Object modified• Object removed from this container• Workflow state changed

Page 29: World Plone Day 2012 Taipei

Live Search

EEA Faceted Navigation提供搜尋結果即時過濾功能

http://plone.org/products/eea.facetednavigation

Page 30: World Plone Day 2012 Taipei

Diazo

http://diazo.org/