Tutorials
Tutorials provide in-depth treatment of a particular topic.
- Creating a new theme for Plone: a real-world example (Plone 2.1, 2.5)
- In this tutorial, Alexander Limi will show you how to take a default Plone site and put a totally different look on it. (Not updated for Plone 3.0)
- Customization for developers
- This tutorial provides an overview of how to customise different aspects of Plone 3
- Customizing the viewlets in main_template
- Since Plone 3.0, main_template.pt calls viewlet managers instead of METAL macros. Learn from this tutorial how viewlets can be programmatically reordered, hidden or added (from a product on the filesystem).
- How to upload your package to Plone.org
- This tutorial explains how to distribute your packages to Plone.org using the standard Distutils commands.
- Installing Plone 3 with the Unified Installer
- The Unified Installer is a kit for installing Zope and Plone from source on most Unix-like systems, including Linux, BSD, OS X and Solaris. This tutorial introduces its use and options.
- Introduction to the ZODB
- An overview of the ZODB, Transactions and ZEO. Delivered at the Plone Conference 2007, Naples.
- Managing projects with Buildout
- Learn about eggs, setuptools and dependency management, and how to use Buildout to set up a development environment.
- Plone 3 - Apache2/SSL - Squid on FreeBSD 7 with PF
- How to configure a Plone 3 production server with Squid and Apache 2 + SSL on a FreeBSD 7 server with PF, the packet filter.
- Testing in Plone
- This tutorial will explain how to write safer, better code that makes you look more professional. That's right - it's time to write tests, for everything you do. Don't worry, it's not boring or complicated, you just need to learn how.
- Understanding permissions and security
- Plone uses a combination of low-level Zope permissions, roles, local roles and workflows to manage permissions on objects. Understanding these will help you manage how, and by whom, your Plone site is accessed.
- Using Add-on Products
- There are many third-party add-on Products for Plone that can give you additional functionality, often at the click of a button. However, not all Products are created equal. Knowing how to install, test, evaluate and extend them is important. Read on.
- What controls what you see
- This tutorial breaks down the main display elements in a Plone site, and shows you how to control and customize the appearance of each element.
- ArchGenXML 1.x- Getting started
- ArchGenXML is a code-generator for CMF/Plone applications (Products) based on the Archetypes framework. It parses UML models in XMI-Format (.xmi, .zargo, .zuml), created with applications such as ArgoUML, Poseidon or ObjectDomain. This tutorial will help you get started developing applications with the aid of ArchGenXML. Please note ArchGenXML 1.x is not supported any longer and should be used only to maintain existing projects. If you're starting a new project, use ArchGenXML 2 instead.
- b-org: Creating content types the Plone 2.5 way
- Plone 2.5 brings us closer to the promised land of Zope 3. Zope 3 brings us a new way of working. This tutorial will show how to marry the old and the new, to make Plone products that are more extensible, better tested and easier to maintain.
- Benefit NOW from using GenericSetup and Zope 3 technologies
- Impress your colleagues by using GenericSetup and Zope 3 views efficiently and with minimal effort! This tutorial shows you how to add a new view, how to use it, how to add a new content type and how to hook it all up.
- Best Practices for Plone development
- Based on the talk given by Joel Burton at the Plone Conference in Vienna, this Tutorial discusses some of the best practices for Plone development. If you are doing site development with Plone and want to keep your sanity, this is a must-read. Requires some familiarity with Zope and Plone.
- Building Custom Content Types with ArgoUML and ArchGenXML and Permitting Anonymous Content Submission
- And howto on creating a custom content type with ArgoUML and ArchGenXML, and allowing anonymous submission of that content.
- Collaboration: Using the Sharing Tab
- This tutorial explains many common use cases for collaborating within Plone. You will find examples of the many ways you can control content editing and adding by users.
- Common Plone programming recipes
- Basics of accessing and modifying objects programmatically using Python, Plone's programming language.
- Content Creation with Kupu and Other WYSIWYG Editors
- This tutorial introduces the Kupu interface and explains how to insert images, create FAQ pages, and use Kupu's ResolveUID feature. It was written by Quintagroup content manager for end-users and is compatible with Kupu 1.4.x.
- Converting text with Portal Transforms and the MIME Types Registry
- In this tutorial, you will learn how Plone and Archetypes keeps track of content MIME types, and how PortalTransforms enables you to convert between content of different MIME types. You will learn how to register a new MIME type, and how to create new transforms.
- Creating Content Rule Conditions and Actions
- This tutorial shows how to create a new type of condition that site administrators can use to construct Content Rules in Plone 3.
- Creating Documentation for Plone.org
- Best practices and tips for writing good documentation for plone.org
- Creating Plone Skin Products with Plone Skin Dump
- This tutorial is helpful for Plone skins designers who have some experience with creating custom look and feel for Plone and want to release their work as file-system Plone Skin Product. Plone developers might find this product useful as well.
- Creating public websites with staging and custom skins
- In this tutorial, Martin Aspeli plays investigative journalist, deciphering Alan's ramblings to find out exactly how Enfold deploy real sites with staging and different authoring and public skins.
- Creating SQL content types with collective.tin
- collective.tin is a library for creating RDBMS backed content types on top of SQLAlchemy. collective.lead is used for transaction integration. collective.mercury supports the autogeneration of interfaces, model and db files by introspecting the RDBMS schema. This approach does not require zodb stubs. Versioning is optional. Workflow status and history (if required) are stored in the database. (This tutorial is very much a work in progress, but I figured it may be useful to make it public now)
- Creating Workflows in Plone
- This documentation explains the purpose of the DCWorkflow product and how to make use of it. DCWorkflow is a CMF Product for Zope, and Plone's workflows are built using it.
- Customizing AT View Templates
- This tutorial describes the steps to produce a fully-customized view of an Archetypes object. This is applicable to tweaking little details of the default AT behavior as well as gutting and re-building the view from scratch.
- Debugging tips and tricks (a real-life example)
- Follow a programmer through the process of debugging a real-life bug. Watch and learn how to use a few of the tips and tricks, in the context of a full solution.
- Developing and Debugging Plone Products with PIDA
- Basic instructions on using the PIDA integrated development framework to develop and debug Plone (and Zope) products
- Developing Plone with Eclipse
- This tutorial gives a comprehensive view and advanced tips how to set-up Eclipse and utilize advanced functionality to gain ultimate Plone development productivity with IDE.
- DIYPloneStyle: Creating a Custom Style for Plone 2.1 and 2.5
- This tutorial will teach you how DIYPloneStyle can be used as a base for creating a custom style product for Plone 2.1 or Plone 2.5 that adds to a portal a new skin selection and makes use of the new stylesheet and javascript registries.
- Embrace and Extend Existing Products: The Zope 3 Way
- With Zope 3 techniques (also available in Zope 2) you can cleanly extend an existing product without changing any of its code directly. In this tutorial we add annotations to a content type based on keywords. The use case we have is: extending Quills. The code is in the keywordadapter product in the collective.
- Importing your product into the Collective
- There are two strategies for introducing a new product in the Plone Collective when you already have it in your own repository: a simple svn export or a dump file that is loaded by the plone.org admins. This tutorial explains the differences and shows how to do both.
- Indexing and searching
- How to index and look for content into your Plone site using the Catalog Tool.
- Install Plone 3 behind Apache and mod_wsgi using Repoze
- Repoze allows Plone and Zope to run behind any WSGI server. This tutorial will show how to install Plone 3 behind the Apache web server and mod_wsgi using Repoze on a brand new Linux virtual server.
- Listing Your Project in Plone Software Center
- Plone Software Center allows you to list your product on plone.org, show releases, manage your documentation, handle improvement plans, and more--all without forcing you into any particular development process or repository. We intend for this to become the canonical repository for Plone products. This tutorial walks through the benefits of PSC and demonstrates how to make the most of it.
- mailtoplone: Integrate emails with plone
- Mailtoplone's main purpose is to create plone content from emails. The emails are delivered to plone as plaintext containing the entire email including the envelope. Mailtoplone makes heavy use of the zope 3 component architecture and plone's content rules. The tutorial explains the approach and shows an example usecase.
- Making a custom folderish type act as the member folder
- This tutorial explains how to create your own portal_membership tool in order to override the creation of the member folder. Be warned: this tutorial is not for the faint hearted, but for advanced plone programmers.
- Making your tables sortable
- In this tutorial, Helge Tesdal from Plone Solutions will show you how to make your tables sortable with Javascript - just by using a simple declaration.
- Managing your Plone Sites in Windows with Enfold Proxy
- This article shows how a Microsoft administrator can manage and configure Plone sites from Windows (regardless of whether the Zope clients are are on Linux or Windows boxes). It also shows how to configure caching, load balancing and integration of non-Plone content with Plone content in the same domain.
- OCR in Plone using Tesseract OCR
- This tutorial will show you how to add the ability to OCR documents in Plone using Tesseract OCR. An "OCR Document" action will be added to appropriate files and when the user chooses this action a text file with the OCR results will be added to the container.
- Optimizing Plone Performance
- This tutorial will show you a simple and effective way to use caching to make your Plone site a production-worthy setup capable of delivering in excess of 100 pages per second given proper hardware. (In progress)
- Plone and MySQL
- How to integrate and manage MySQL data within Plone using TAL, MySQL, Python and Zope Page Templates (TMPZ)
- Releasing a Plone product
- After months of hard labour you have finally finished your shiny new Plone product. You are ready to receive fanmail from happy users. So now what should you do?
- RichDocument: Creating content types the Plone 2.1 way
- This tutorial will teach you how to create content types the Plone 2.1 way, using the ATContentTypes library, by following the example of RichDocument, an extension of Plone's standard Page/Document type.
- Rounded Corners on Portlets using only CSS
- Put the "Rounded Corners" look on your portlets using only custom CSS and three images.
- Running Plone and Zope behind an Apache 2 web server
- How to set up an Apache 2 web server as proxy with disk caching and deflating.
- Send Plone content to a Django web app via ContentMirror
- Export basic Plone Archetype-based content to Django, using the ContentMirror Product and a postgresql database.
- Setting up a Plone Proxy (IIS) on Windows
- If you are running Plone on Windows and would like to run Microsoft IIS in front of your Plone site, the you need to set up a proxy. This tutorial covers the setting up of Enfold Proxy and will allow you to run Plone behind Microsoft IIS.
- Simple PlonePAS Example
- In this tutorial you will build a simple authentication plugin using PlonePAS. There are a couple documents that provide various details for writing PlonePAS plugins but nothing that covered all of the things I had to do in order to get something working. This tutorial will hopefully accomplish that.
- Slide Sorter
- Create a view for sorting images (and potentially other content) which are displayed in a grid layout, where by each item occupies a single cell rather than a whole row. This uses a modified version of the javascript that powers the drag and drop functionality of folder_contents.
- Switching Skins
- This Tutorial describes how Plone chooses a skin when you open a web page, and then describes the multiple ways that you can intervene to switch the skin. The Tutorial also discusses two common use cases, switching skins based on URL and the type of user (e.g., Anonymous or Authenticated).
- Understanding and Using GenericSetup in Plone
- A detailed look at GenericSetup, wherein we will learn what it is and how it can be used within Plone.
- Uploading multiple files and HTML pages with Enfold Desktop
- This free Windows tool helps end users to edit and manage multiple content items more easily. This tutorial covers configuration and usage tips; it also discusses the pros and cons of using a visual editor (Kupu) vs. a desktop WebDAV tool like Enfold Desktop
- Using Plone's built-in batching mechanism
- In this tutorial, Helge Tesdal from Jarn (formerly Plone Solutions) shows you how to use the built-in batching utility in Plone to create a Previous/Next selector with pages when you have a lot of items you want to list.
- Using the Resource Registries to control CSS and Javascript
- Plone has two neat tools for managing Cascading Stylesheets and Javascript in a handy way. This tutorial explains some whys and hows and even has a minimal practical example of how it works.
- Using zope.formlib With Plone
- Display the use of the Zope 3 technology, zope.formlib, in a Plone based environment. A side goal is to help demonstrate some new practices with building new Plone based applications.
- Walking through Five to Zope 3
- In this tutorial we start you on your journey to the powerful Zope 3 Component Architecture (CA) by way of Five. You will learn about defining and configuring interfaces and adapters, and the CA programming model. You will also learn how to use our new TreeWalker, that helps you easily define recursive operations on object trees.
- Working with CSS
- Instructions on working with Plone's base_properties and stylesheets, how to enable debug mode, and how to use DTML variables in stylesheets. An essential tutorial for theming in Plone.
- Writing Forms with zope.formlib
- zope.formlib is a zope 3 library to handle forms creation, validation, display and actions. It provides a series of base classes and methods to allow forms to be defined with just a little bit of meta data.
- XML in Plone with Marshall
- Marshall lets you save and load Plone content using XML. As a configurable system, it has lots of options. This hands-on how-to shows exactly what to do to make the basics work.
- ZPT - Zope Page Templates
- An introduction to how Plone's templating language works. Absolutely essential reading if you are going to customize Plone's templates. Originally written by the excellent Evan Simpson and published on zope.org.