SlideShare a Scribd company logo
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 CMSes

You are here
                            Your Website
                            here
Please Guide Me …
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
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 Components
http://plone.org/products/plone/security/overview
Undo, Transaction, Versioning
   How Plone Database Interacts with Applications
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.
Welcome to Plone College


 http://mysite.ploud.com/

  • Announcement
  • About Us
  • People
Default Content Types
                  Page
                 Folder Item
                  News
                 Collection
                  Event
• Announcement    Image
• About Us        File
                  Link
• People
Editing
a 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 Than
Out-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
How Plone Add-ons Work
zc.buildout helps to install addons
Extend Plone with Add-ons
Plone Addon (Product) =~ Python Package (Egg)
Forms are Common in CMS


   Form = Content Type
Form = CMS Core


Content Type = Schema
             = Fields + Widgets
ArcheTypes Content Framework

ATNewsItemSchema = 
 ATCTSchema.copy() + Schema((
  TextField('text‘, required = False,
     widget = RichWidget(label=‘Body Text’)
  ),
  ImageField(‘image‘, required = False,
     widget = ImageWidget(label=‘Lead Image’)
  ),
From Archetypes To Dexterity




Improved Content Type Building Framework
Fields and Widgets
Dexterity Behaviors


Reusable 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 FTI.
Deco is Coming
Diazo : Theming Engine
Diazo Concept

http://www.diazo.org/
Diazo In Action




http://screenr.com/snt8
Plone API
   1. Portal              3. Users
   2. Content             4. Groups
from plone import api

portal = api.portal.get()
catalog =
  api.portal.get_tool(name="portal_catalog")
user = api.user.create(email='alice@plone.org')
SQL Integration
1. Database Adapter + Z SQL Method
  • mysqldbda / psycopg
2. ORM (SQLAlchemy)
  • ContentMirror
3. Pickle
  • RelStorage
Considerations
1.   Product vs Framework
2.   ZODB: a Double-edged Knife
3.   Positioned as Enterprise Grade
4.   Resource Availability
5.   Integration Issues
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.
Thank You

More Related Content

PDF
Pinkoi Platform
PDF
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
ODP
Pyramid Lighter/Faster/Better web apps
PDF
HTML5 multimedia - where we are, where we're going
PDF
Mobile Web Speed Bumps
PDF
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
PDF
Debugging WordPress Performance using EasyEngine
PPTX
PHP and FastCGI Performance Optimizations
Pinkoi Platform
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
Pyramid Lighter/Faster/Better web apps
HTML5 multimedia - where we are, where we're going
Mobile Web Speed Bumps
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
Debugging WordPress Performance using EasyEngine
PHP and FastCGI Performance Optimizations

What's hot (20)

PDF
WordPress Development Tools and Best Practices
PDF
Mobile Hybrid Development with WordPress
PDF
Improve WordPress performance with caching and deferred execution of code
PDF
Making the web faster
PPT
Life on the Edge with ESI
PPTX
Ruby in the Browser - RubyConf 2011
PPTX
Php push notifications
PDF
Evolution of The Twitter Stack
PDF
Php Performance On Windows
PPTX
Anthony Somerset - Site Speed = Success!
PPTX
Measuring web performance
PDF
WordPress Server Security
PDF
High Performance JavaScript (Amazon DevCon 2011)
PPTX
PHP Indonesia - Nodejs Web Development
PDF
Afrimadoni the power of docker
PPT
Os Henrikson
PPTX
Js engine performance
PPSX
Electron - Build cross platform desktop apps
PPTX
Managing Multisite: Lessons from a Large Network
WordPress Development Tools and Best Practices
Mobile Hybrid Development with WordPress
Improve WordPress performance with caching and deferred execution of code
Making the web faster
Life on the Edge with ESI
Ruby in the Browser - RubyConf 2011
Php push notifications
Evolution of The Twitter Stack
Php Performance On Windows
Anthony Somerset - Site Speed = Success!
Measuring web performance
WordPress Server Security
High Performance JavaScript (Amazon DevCon 2011)
PHP Indonesia - Nodejs Web Development
Afrimadoni the power of docker
Os Henrikson
Js engine performance
Electron - Build cross platform desktop apps
Managing Multisite: Lessons from a Large Network
Ad

Similar to Build Python CMS The Plone Way (20)

PDF
Plone -- Evolving Python CMS
PDF
BathCamp #32 - CMS Smackdown! - Plone
KEY
Eric Steele – World Plone Day 2010 – Plone 4 Overview
PDF
Python - A Comprehensive Programming Language
PPT
Plone For Developers - World Plone Day, 2009
ODP
Plone pwns
ODP
A winning combination: Plone as CMS and your favorite Python web framework as...
PDF
George Thiruvathukal, User Experiences with Plone Content Management
PDF
Building Content Types with Dexterity
PDF
Python intro for Plone users
PDF
Plone is great... Python is too!
ODP
Introduction to Plone (PyCon Ireland 2010)
PDF
Plone
PDF
10 Things About Plone - Software Freedom Day 2008
PDF
Plone Content Management System Demo Presentation
PDF
Why Plone Will Die
PDF
Content Mirror
ODP
Plomino plone conf2010
PDF
10 Things You Probably Didn't Know About Plone
PPTX
Content delivery Plone Symposium East 2010
Plone -- Evolving Python CMS
BathCamp #32 - CMS Smackdown! - Plone
Eric Steele – World Plone Day 2010 – Plone 4 Overview
Python - A Comprehensive Programming Language
Plone For Developers - World Plone Day, 2009
Plone pwns
A winning combination: Plone as CMS and your favorite Python web framework as...
George Thiruvathukal, User Experiences with Plone Content Management
Building Content Types with Dexterity
Python intro for Plone users
Plone is great... Python is too!
Introduction to Plone (PyCon Ireland 2010)
Plone
10 Things About Plone - Software Freedom Day 2008
Plone Content Management System Demo Presentation
Why Plone Will Die
Content Mirror
Plomino plone conf2010
10 Things You Probably Didn't Know About Plone
Content delivery Plone Symposium East 2010
Ad

More from TsungWei Hu (19)

PDF
Odoo Development
PDF
開源教 教我 Odoo 管理 ERP 和 CRM
PDF
Plone Zwiki
PDF
Ten Years After: An Integrator's Tale
PPTX
from passion import profession
PPTX
Computer Programming For Everyone
PPTX
ElasticSearch Introduction
PPTX
Open Source Technologies for Contents and Maps
PPTX
The Zen of Language Choice
PPTX
Diazo: Bridging Designers and Programmers
PPT
CMS Showdown For NPO
PDF
Python for Application Integration and Development
PPTX
World Plone Day 2012 Taipei
PPTX
Workteam with oDesk
PDF
Proud Plone on Cloud
PDF
Sahana Taiwan Development
ODP
Plone - A Comprehensive Content Management Solution
PPT
Introduction to Python Programming
PPT
Developing with pyGTK in EeePC
Odoo Development
開源教 教我 Odoo 管理 ERP 和 CRM
Plone Zwiki
Ten Years After: An Integrator's Tale
from passion import profession
Computer Programming For Everyone
ElasticSearch Introduction
Open Source Technologies for Contents and Maps
The Zen of Language Choice
Diazo: Bridging Designers and Programmers
CMS Showdown For NPO
Python for Application Integration and Development
World Plone Day 2012 Taipei
Workteam with oDesk
Proud Plone on Cloud
Sahana Taiwan Development
Plone - A Comprehensive Content Management Solution
Introduction to Python Programming
Developing with pyGTK in EeePC

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PDF
cuic standard and advanced reporting.pdf
PDF
Approach and Philosophy of On baking technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
KodekX | Application Modernization Development
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Big Data Technologies - Introduction.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Electronic commerce courselecture one. Pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Spectral efficient network and resource selection model in 5G networks
Programs and apps: productivity, graphics, security and other tools
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
cuic standard and advanced reporting.pdf
Approach and Philosophy of On baking technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KodekX | Application Modernization Development
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Big Data Technologies - Introduction.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Machine learning based COVID-19 study performance prediction
Electronic commerce courselecture one. Pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Build Python CMS The Plone Way