際際滷

際際滷Share a Scribd company logo
20140626 awpug-plonely in austin
Discussion
0 Who am I?
0 If Zope is a fish, what is Plone?
0 Pros & Cons of Plone
0 Prerequisites
0 Two ways to get started
0 The [parts] of Buildout
0 Content Types with Paster
0 Zope Page Templates (ZPT)
0 Resources
Who am I?
Work
Senior Manager Decernis
6 years Plone Development &
Project Management
Education
MA  Carnegie Mellon University
MSc  University of Bologna
Certified Scrum Master (CSM)
If Zope is a fish, what is Plone?
A very brief history
1995  Zope Corp founded
1998  Zope 2 released
1999  Plone project begun to skin CMFDefault
2001  Plone 1 released
2004  Zope 3 presents a new paradigm
2004  Plone 2 released
2005  Five (Zope 2 + 3) released
2006  Grok project started
2007  Plone 3 released
2009  Pyramid branches off
2010  Zope Toolkit (ZTK)
2010  Plone 4 released
Who uses Plone?
Governments/Agencies: Brazil, FBI, NASA, USAID
NGOs: Oxfam, Amnesty International, 
Universities: Wisconsin, Penn State, Harvard SEAS
Companies: Discover Magazine, Novell
Pros & Cons
 Intranets
 Shared documents
 Powerful workflow
 Batteries included
 Most secure CMS
 Well-documented
 Many developers
 Application &
Framework
 Non-standard setup
 High learning curve
 Confusing stack
 Themeing is hard
 RAM hungry
 Not broadly adopted
Why I chose Plone
0 Security a major concern
0 Customized workflow major need
0 Stable code base
0 Used by peer organizations in regulatory sector
0 Batteries Included: User Management, Content Types,
Workflow, Cacheing, Clustered Databases
0 Ease of content type development
0 Django too bleeding edge in 2008
0 Community involvement
Prerequisites
0 Internet Connection
0 Plone 4.2+ supports Python 2.7
0 PIL, GCC
0 virtualenv/virtuanevwrapper
0 Xcode (Mac)
0 Python Windows Extension (Windows)
0 Root access for production (VPS, Server, Laptop, etc.)
Mac: export ARCHFLAGS="-Wno-error=unused-command-
line-argument-hard-error-in-future"
The Plone Stack
Basic
 Webserver
 Zope
Intermediate
 Web Server
 ZEO Clients
 ZEO Server
Advanced
 Web Server
 Proxy/Load
Balancer
 ZEO Clients
 ZEO Server
Two ways to get started
Unified
Installer Buildout
Unified Installer is easy
$ wget
https://launchpad.net/plone/4.2/4.2.4/+downloa
d/Plone-4.2.4-UnifiedInstaller-r3.tgz
$ tar -zxvf Plone-4.2.4-UnifiedInstaller-
r3.tgz
$ cd Plone-4.2.4-UnifiedInstaller-r3
$ ./install.sh --
target=/Users/patrickwaldo/workspace/plone-
demo --instance=awpug-test --static-lxml=yes
standalone
$ cd /Users/patrickwaldo/workspace/plone-demo
$ ./bin/instance fg
The [parts] of Buildout
Getting started
$ mkdir awpug-plone
$ virtualenv --no-site-packages awpug-
python
$ cd awpug-plone
$ wget
http://svn.plone.org/svn/plone/buildout
s/plone-coredev/branches/4.2/
bootstrap.py
$ vi buildout.cfg
The [parts] of Buildout
[buildout]
extends =
http://dist.plone.org/release/4.2/versi
ons.cfg
parts += instance zopepy zopeskel
eggs =
Pillow
develop =
zcml =
The [parts] of Buildout contd
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs =
Plone
${buildout:eggs}
[zopepy]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = zopepy
scripts = zopepy
The [parts] of Buildout contd
[zopeskel]
recipe = zc.recipe.egg
eggs =
ZopeSkel
Paste
PasteDeploy
PasteScript
${buildout:eggs}
Bootstrapping it all together
$ cd awpug-demo
$ ../awpug-python/bin/python
bootstrap.py
$ ./bin/buildout
$ ./bin/instance fg
Default Content Types
Page Folder
Collection News Item
Event File
Image Link
Content Types with Paster
$ paster create --list-templates
$ paster create t archectype
awpug.content
$ cd awpug.content
$ paster addcontent contenttype
Remember to add your new package to your buildout!
Lets add a view
$ cd src/awpug.content
$ paster addcontent view
Zope Page Templates (ZPT)
tal:content = Fill tag with your content
tal:replace = Replace tag with content
tal:condition = If condition, then display tag
tal:repeat = Iterate through an object
tal:attributes = Fill a tag attribute (e.g. href)
Resources
docs.plone.org
#plone irce.freenode.net
Thank you!
Services and Systems to Help you Comply
in Global Markets
www.decernis.com

More Related Content

20140626 awpug-plonely in austin

  • 2. Discussion 0 Who am I? 0 If Zope is a fish, what is Plone? 0 Pros & Cons of Plone 0 Prerequisites 0 Two ways to get started 0 The [parts] of Buildout 0 Content Types with Paster 0 Zope Page Templates (ZPT) 0 Resources
  • 3. Who am I? Work Senior Manager Decernis 6 years Plone Development & Project Management Education MA Carnegie Mellon University MSc University of Bologna Certified Scrum Master (CSM)
  • 4. If Zope is a fish, what is Plone?
  • 5. A very brief history 1995 Zope Corp founded 1998 Zope 2 released 1999 Plone project begun to skin CMFDefault 2001 Plone 1 released 2004 Zope 3 presents a new paradigm 2004 Plone 2 released 2005 Five (Zope 2 + 3) released 2006 Grok project started 2007 Plone 3 released 2009 Pyramid branches off 2010 Zope Toolkit (ZTK) 2010 Plone 4 released
  • 6. Who uses Plone? Governments/Agencies: Brazil, FBI, NASA, USAID NGOs: Oxfam, Amnesty International, Universities: Wisconsin, Penn State, Harvard SEAS Companies: Discover Magazine, Novell
  • 7. Pros & Cons Intranets Shared documents Powerful workflow Batteries included Most secure CMS Well-documented Many developers Application & Framework Non-standard setup High learning curve Confusing stack Themeing is hard RAM hungry Not broadly adopted
  • 8. Why I chose Plone 0 Security a major concern 0 Customized workflow major need 0 Stable code base 0 Used by peer organizations in regulatory sector 0 Batteries Included: User Management, Content Types, Workflow, Cacheing, Clustered Databases 0 Ease of content type development 0 Django too bleeding edge in 2008 0 Community involvement
  • 9. Prerequisites 0 Internet Connection 0 Plone 4.2+ supports Python 2.7 0 PIL, GCC 0 virtualenv/virtuanevwrapper 0 Xcode (Mac) 0 Python Windows Extension (Windows) 0 Root access for production (VPS, Server, Laptop, etc.) Mac: export ARCHFLAGS="-Wno-error=unused-command- line-argument-hard-error-in-future"
  • 10. The Plone Stack Basic Webserver Zope Intermediate Web Server ZEO Clients ZEO Server Advanced Web Server Proxy/Load Balancer ZEO Clients ZEO Server
  • 11. Two ways to get started Unified Installer Buildout
  • 12. Unified Installer is easy $ wget https://launchpad.net/plone/4.2/4.2.4/+downloa d/Plone-4.2.4-UnifiedInstaller-r3.tgz $ tar -zxvf Plone-4.2.4-UnifiedInstaller- r3.tgz $ cd Plone-4.2.4-UnifiedInstaller-r3 $ ./install.sh -- target=/Users/patrickwaldo/workspace/plone- demo --instance=awpug-test --static-lxml=yes standalone $ cd /Users/patrickwaldo/workspace/plone-demo $ ./bin/instance fg
  • 13. The [parts] of Buildout
  • 14. Getting started $ mkdir awpug-plone $ virtualenv --no-site-packages awpug- python $ cd awpug-plone $ wget http://svn.plone.org/svn/plone/buildout s/plone-coredev/branches/4.2/ bootstrap.py $ vi buildout.cfg
  • 15. The [parts] of Buildout [buildout] extends = http://dist.plone.org/release/4.2/versi ons.cfg parts += instance zopepy zopeskel eggs = Pillow develop = zcml =
  • 16. The [parts] of Buildout contd [instance] recipe = plone.recipe.zope2instance user = admin:admin eggs = Plone ${buildout:eggs} [zopepy] recipe = zc.recipe.egg eggs = ${buildout:eggs} interpreter = zopepy scripts = zopepy
  • 17. The [parts] of Buildout contd [zopeskel] recipe = zc.recipe.egg eggs = ZopeSkel Paste PasteDeploy PasteScript ${buildout:eggs}
  • 18. Bootstrapping it all together $ cd awpug-demo $ ../awpug-python/bin/python bootstrap.py $ ./bin/buildout $ ./bin/instance fg
  • 19. Default Content Types Page Folder Collection News Item Event File Image Link
  • 20. Content Types with Paster $ paster create --list-templates $ paster create t archectype awpug.content $ cd awpug.content $ paster addcontent contenttype Remember to add your new package to your buildout!
  • 21. Lets add a view $ cd src/awpug.content $ paster addcontent view
  • 22. Zope Page Templates (ZPT) tal:content = Fill tag with your content tal:replace = Replace tag with content tal:condition = If condition, then display tag tal:repeat = Iterate through an object tal:attributes = Fill a tag attribute (e.g. href)
  • 24. Thank you! Services and Systems to Help you Comply in Global Markets www.decernis.com