Personal tools
You are here: Home Documentation How-tos
Support

Get Help

Join our chat rooms or support forums if you have more specific questions.

Plone Training
Learn how to design, build, and deploy a website in Plone through one of the numerous Plone training sessions around the world.
Find Plone training…
 

How-tos

Step-by-step instructions on how to accomplish a specific task.

Add on product installation fails
You have found an add-on product from plone.org products area and followed its installation instructions. But the product does not appear in Add-on Products of your Plone site setup section or add-on installer fails to run. This document explains steps how to pinpoint the reason why the add on product does not work and how to proceed to solve the problem.
Asking for help
How to ask for help (in IRC or on the mailing lists) when you have a problem. Following these simple steps will make everything easier both for yourself and us.
Asking for help: guidelines and examples
If you need help with an error or problem: before your first post, please take a few minutes to read the guidelines below. A considerate, guided question will be well received by the Plone community, and should make things easier, simpler and quicker for everyone involved!
Change the Logo in Plone 3
How to substitute the standard Plone logo with your own logo - a through-the-web approach.
Create a New Project in the Plone Collective
Guides a developer through the steps involved in creating a new project in the Plone collective.
Create new eggs and packages quickly with paster
How to use the paster command to create new packages with proper setuptools- and egg-compliant filesystem layout quickly and easily.
Documentation Team Editors
The list of Documentation Team Editors and the Topic Sections they Oversee
How to Create a Plone 3 Theme Product on the Filesystem
This tutorial describes the creation of a filesystem-based theme product for Plone 3.x. It is intended for integrators and assumes some familiarity with CSS, HTML, Javascript, and Plone/Zope.
How to Install a 3.x Theme Using Buildout
This document explains how to install a Plone 3x theme product that is either egg-based or in the "old-school" Products namespace, and how to tell the difference between the two types of theme products.
How to Make Your CSS Changes Take Effect Instantly
This tutorial explains how to ensure that any CSS changes you make can be seen instantly. This is the most common problem themers run into when they are new to Plone.
Override the portlets in Plone 3.0
Customizing the portlets is a regular task, working with Plone theme. In this how-to we will find out how-to do this in Plone 3.0 with it's new mechanism for managing portlets.
Plone.org Documentation Editors Roles and Responsibilities
Effective as of 10-12-08, Editors are responsible for reviewing and approving all submissions to plone.org/documentation.
Setup a Plone 3 site with public and restricted content
A relatively simple scheme for setting up your Plone 3 site with public (ie. anonymous), member, and restricted access.
What documentation should I read?
This how-to is intended as a brief overview of what documentation you should read - and when - to get you started.
Making your existing Plone install look better in Internet Explorer 8
Explanation of how to make your sites play well with Internet Explorer 8.
About Profiling Books in the Documentation Section
Best practices for determining which books should be highlighted in the documentation section of plone.org.
ActiveDirectory with read and write functionality !
Plone supports ActiveDirectory authentication out of the box, but not writing to it. This is a complete example with screenshots and monkey patches to accomplish that. It shows how to completely move storage of users, groups and roles to ActiveDirectory.
Add "Advanced Search" to Search Box
This howto provides details on removing the "search" tab from the top of the portal and adding an "advanced search" link below the search box.
Add a Google Sitemap
The Sitemap Protocol allows you to inform search engine crawlers about URLs on your Web sites that are available for crawling. The XML Sitemap Format provides a list of URLs and includes additional information about those URLs.
Add a new MIME Type
This How-to will traverse the steps required in order to add a MIME type in Plone. By consequence, it is also a How-to get Plone to treat Microsoft Project files properly.
Add a project to Plone Software Center
The /products section of plone.org is controlled by Plone Software Center. This document explains how to use it.
Add an Icon or Text next to hyperlinks similar to the globe icon on external hyperlinks !
This how-to describes a simple method to automatically add an icon or text next to hyperlinks (similar to the external link globe icon feature)
Add Configlets for own Product's settings
If you write your own product with "configlets" to configure product-specific settings, here's how to install these configlets so that they appear in the Plone control panel.
Add Content from Python
If you're writing Python code to customize your site, you may need to create content objects programmatically. It's not hard.
Add Icons to the Personal Bar
The "personal bar" is the blue bar under the main portal tabs in a default Plone site. This how-to shows how to add custom icons to the various actions there.
Add indexes and metadatas to portal_catalog on install
How to add indexes and metadata columns to the portal_catalog from a script including ZCTextIndex and TextIndexNG index types.
Add indexing attributes to arbitrary content types
How to invoke the shadowy and mysterious ExtensibleIndexableObjectWrapper to do something totally useless.
Add supplementary views to custom content types
This howto explains how to add supplementary views to custom content types. These supplementary views are selected specifically for each folder TTW. One example is standard Plone folders, where you can choose between e.g. table view and standard view. Sometimes, you want to do this in your custom content type as well.
Add the body text to your rss feed !
Explains how to edit your rss_template to include the body of each rss feed item. (ie, the body of the news item in addition to the title/description).
Add the body text to your rss feed (2) !
a revised How-To "Add the body text to your rss feed"
Adding a "Sharing" action-tab to your product/type
Two methods for adding a "Sharing" action-tab to your Plone product or item type.
Adding a custom permission to a product
Using rolemap.xml to create new Roles is easy, you can add predefined permissions to your new roles. But what if you want to define a new permission for your product? Use setDefaultRoles.
Adding a del.icio.us link/icon to your Document Actions !
This howto will explain how to add an icon to your Document Actions, so that users can add your page to their del.icio.us bookmarks.
Adding an index to the portal catalog
How to add a new index to the portal catalog
Adding Charts To Your Custom Content Type !
Step-by-step instructions for adding Python-generated charts to your custom Archetype. I describe a general method that allows you to use any Python graphing libraries that output images (png, gif, jpg, etc.). I use PyChart in this specific example.
Adding configuration settings using Zope 3 schemas and formlib
This how-to explains how to add a configlet to Plone's control panel and letting the Zope 3 framework do the work for you.
Adding Drag & Drop re-ordering to older Plone instances !
You are maintaining some older Plone instances that you don't want to update, but want that fancy drag and drop folder re-ordering of Plone 2.5? Then this is for you.
Adding Memberdata Properties
Adding new properties to members and having them appear on the membership preference forms.
Adding new fields to Smart Folders search !
If you are creating new content types you might want to add support for Plone's advanced search capabilities. This article describes how to achieve it.
Adding new roles to the Sharing Page
Explains how to add other roles to the set of managed roles to Plone's 3 sharing tab.
Adding Portlet Managers
You need portlets at an additional place in your Plone. In this example we put contextual portlets above the content.
Adjusting Kupu edit area size
Kupu (Visual Editor) edit area size might be too big for pages containing several short rich text fields. This how to explains how to adjust the size per field.
Advanced Image fallback and PiL
A recipe of how to write a complex set of fall back logic for a scaled image
Allow all inline styles in Kupu
How to disable Kupu's filtering of all inline styles
Allow Discussion on Content !
How to enable a content type to be discussable across entire site.
Allowing Anonymous Users to Add Content
I had the need for Anonymous Plone users to add, edit, and save a specific content type in a specific location (folder) and couldn't find any resources, thus this quick HowTo.
Anonymous adding of unpublished content
This howto is about customizing an archetype content to let anonymous users add content, but not be able to view what has already been added.
Applying a custom view to a specific folder
How to create a one-off view for a particular folder in your site.
Archetypes using mysql and postgresql
A short tutorial about how to make an archetype that stores data in and reads data from a mysql or a postgresql table. It works on plone-2.5.2 on zope-2.9.5.
Authenticate users from PostgreSQL using SQLUserFolder !
How to use SQLUserFolder to authenticate Plone users from a remote PostgreSQL database.
Authenticating to a Complex Active Directory Infrastructure !
Authenticating to Active Directory is easy, relatively speaking. This how to will explain how to authenticate to Active Directory in a complex environment (i.e. multiple authenticating domains).
Authenticating with Active Directory !
How to make Plone authenticate against Active Directory. (document needs updating because Plone 2.5.x uses PlonePAS instead of GRUF)
Authenticating With Active Directory
How to make Plone authenticate against Active Directory Using PlonePAS
Automatic next-previous links !
Using just a modified page template, it's easy to add automatic next/previous links on a page. You can use this for easy multi-page documents. This is an implementation based on the RichDocument product, but can be adapted.
Backup and recover Data.fs in linux
bash scripts to backup linux and use repozo.py for backing up Data.fs Also includes a script to recover Data.fs to a specific point in time
Backup Plone
There are several ways to backup all data related to Plone.
Basic Install of Python/Zope/Plone server on Fedora Core 5
Managing your own server on Linux or Mac OS X instead of having it hosted or using the Windows installer version can give you greater speed, flexibility and power as well as being able to load the latest and greatest Python/Zope/Plone software. This is a basic howto for installing of Python/Zope/Plone on Fedora Core 5. This setup will allow other installations of Zope and Plone side by side so it is great for present and future migrations. This may work for other distros and Mac OS X. This will briefly show the installation for Python 2.4, Zope 2.9.3 and Plone 2.5. Other recent versions may be similar.
Batch-adding Users to Plone using CSV (Excel) files
How to import/create new users from CSV- a.k.a. Excel-files
Building communal reference lists
Provide a fast facility for obtaining a union of lists referring to a particular item, using a keyword index in Plone's portal catalog
Cache Content !
How to change Plone's default cache settings so you can cache pages on your site.
Catalog anything in Zope/Plone
This how-to shows how to catalog non-object data in the catalog, and search for them. Useful when you've a list of items you wish to use like an sql table.
Change Available Types for Events !
How to change the types of events (e.g. "meeting" or "appointment") available to the standard Plone Event type.
Change Location of Language Flags Plone 2.1 !
Moving the Language flag or drop down language box selection from the content section to the personal bar. This alleviates some clutter and stops the flags from covering text on smaller screen reolutions.
Change state recursively in a workflow transition !
When transitioning a folderish object, transition all children objects automatically.
Change the Default date format
How to change the default date format in Plone, with some common examples.
Change the logo on for the front page only
A brief how-to for changing the logo area for the front page only
Change the look and feel of a folder and its subfolders
If you want a subfolder to have a different appearance than the rest of your site, you can add a simple page template and a stylesheet to a folder that affects it and all of its subfolders.
Change the title of the Members folder
How to change the title of the "Members" folder
Changing language negotiation strategy
Language negotiation strategy determines the language of the site when the visitor comes in for the first time. This document tells how to change language negotiation strategy for a Plone site.
Changing tabs
How to change the tabs (Home, News, etc) at the top of your Plone portal.
Changing the Admin Password
How to change the password of the default administrator user.
Clean up link spam on your site
Spammers have targeted Plone sites recently by posting content that will redirect you to a different site. Here's how to protect your site — and how to clean up if you have already been hit by this.
Close site so people can't add themselves as users
How to close the site so that users can't sign themselves up.
CMF Expressions
Brief overview of what CMF Expressions are and what variables they have available.
Compensating for double margins in Internet Explorer
Internet Explorer sometimes inserts double margins in layouts when you float items. Here's how to work around it.
Configure a static portlet to show the weather
This will show how to create a weather portlet using Plone 3's built-in static portlet.
Context-dependent navigation folder icons
Change the icons displayed for folders in the navigation portlets depending on whether or not a folder is visible to anonymous visitors.
Controlling portlets
Shows how to control which portlets (the boxes on the left and right hand side) show up where.
Converting single user Plone site to multiuser review based CMS site
One might want to convert an existing single user Plone site to real CMS where people can submit content and it has to be reviewed. This how to gives guidance to achieve the goal.
Cookies: Making them last longer than a session
This will enable users to remain logged in beyond one browser session.
Coping with a Live Spinning Zope
Most people who have been working with Zope and Plone for some time have learned, on one day or another, what it means for Zope to "spin". It incessantly uses 100% cpu, or very close, and, though it accepts HTTP connections, it never responds, requiring a restart. If your live Zope is spinning, you are most assuredly not having a good day, but there are some measures you can take to ease your pain.
Copy users from one plone site to another !
This howto gives the steps I've taken to copy my users from one plone site to another. I needed to take these extra steps after realising that simply export-importing the user folders (acl_users, Members, portal_memberdata, portal_groupdata) wouldn't let the users log onto the new site.
Create a Custom Tool
How to create and install your custom tool.
Create a different look and feel for different sections of your web site
Learn how to create a different look and feel for your site, using only CSS sleight-of-hand.
Create a Photo Album
How to use Plone's thumbnail display mode to create a photo album.
Create a product to import existing photos as external resources
Import existing photo album as external resources by creating a ExPhotoAlbum product
Create a reviewer account !
How do I create a reviewer account to publish pending documents?
create an integrated folder view based on a custom content type (sample type: RichDocument) !
Use an own view to display all RichDocuments contained in a folder as one Page
Create and Use an External Method
Zope External Methods allow you to write and register python scripts that can be called through-the-web to manipulate your Zope/Plone instance. The main difference is that these can do things with a much higher privilege level since they are located on the file system, not in the web interface.
Creating a custom navigation section !
When creating a custom skin, you may want something more concrete than the navigation tree, but a little more flexible than the portal tabs. This HowTo shows how to create a navigation section which is automatically generated from the contents of a folder.
Creating a minimalistic Zope 3 View
Learn how to create a simple Page Template driven browser view using Zope 3 techniques.
Creating a Plone Help Center like view for folders !
The Plone Help Center shows the most recent content in portlet like boxes, which gives you a pretty good insight whats happening in this area.
Creating a Pre-Populated Folder
This howto describes one method to create a folder already populated with content.
Creating a private Plone site
How to make your site only accessible to logged-in users.
Creating a static-text portlet
The simplest portlet you can make: static, with no special logic.
Creating drop down menus in Plone
Three step customization of Plone 2.1 and 2.5 that will show a menu under the tab the mouse pointer is over. The menu will be shown if that tab is a folder or a similar type of container with items inside that will appear as menu items.
Creating Link Types that Take You Directly to the Link !
How to create new content types based on the built-in link type that behave slightly differently, taking you directly to a link, rather than taking you to a page about the link.
Creating links to content
How to link to resources located inside and outside the site.
Creating objects with workflow state of parent object !
In this how-to one possible solution is shown for how to set newly created objects to the state of their parent object.
Creating portlets with editable static content !
This how-to shows you how to create portlets which display static content pulled from a content object. Essentially, it demonstrates how to display the contents of a Document in a the left and right slots with some formatting, but the technique is useful for other content types as well. This lets portal managers (who are not necessarily HTML or ZPT savvy) alter the content of the portlet easily.
Creating random rotating images anywhere in your Plone site
Need to have a rotating image on your home page each time a user visits your site? By creating a simple Python script, you can achieve this by using only the <img> tag.
Creating static text portlets in Plone 3.0
An explanation of how to use the plone.portlet.static product to easily create static html portlets.
Customize the Plone 3 navigation.
How to create a navigation that fits more to the needs of a "classic" websites navigation.
customizing the navigation portlet in Plone 3
how to customize the navigation portlet in a few easy steps
Debug Script (Python) with pdb
Enable pdb.set_trace() in restricted code with this Product.
Debugging .py and .cpy scripts
Knowing what goes wrong in .py and .cpy scripts
Debugging Unauthorized / Insufficient Privileges
One of the most common errors you will get as a Plone developer is the "Insufficient Privileges" message. This message does not tell you exactly what went wrong for security reasons, but there are ways to expose this using VerboseSecurity.
Debugging with pdb (the python debugger)
A brief overview of how to use the python interactive debugger within the Zope/Plone environment.
Debugging ZODB Bloat
Your Data.fs is growing at an alarming rate, but what's the cause? Digging into the ZODB could help find the cause.
Disabling workflows site-wide !
How to disable workflows if you don't need them for your site.
Display LDAP attributes within a portlet
A simple how-to for displaying LDAP attributes within a portlet.
Displaying a Random Quote
How to display a random quote on a Plone page.
Displaying only published items in folder listings to anonymous users.
If you don't do this, Plone's folder listing option will display both visible and published items to anonymous users.
Edit Skins Over Webdav
Some webdav clients (Mac OS X) create new files on every write, losing the object type information. This script gets webdav editing to work for page templates, css files and images in portal_skins.
Edit Zope Page Template (ZPT) content through Plone
There may be times when you’ll want to let users edit content that resides within ZPT’s such as the footer, but without having them go through the ZMI.
eMail upcoming events to plone group !
a python script to notify all members of a Plone group of upcoming events via email
Embedding videos in kupu
Since version 1.4 (still in active development), Kupu supports embedding videos or rather does not prevent you from doing it. Here's how to make Plone play nicely, too.
Enable Collection Indices (fields for searching) for custom types
How-to enable usage of Collections for AT-based content types with custom schema fields
Enable full-text indexing of Word documents and PDFs in Plone 3.0 (GNU/Linux)
How to install third-party command-line converters to enable full-text indexing of Word documents and PDFs in Plone 3.0 on GNU/Linux (Ubuntu, Debian, et. al.)
Enable full-text indexing of Word documents and PDFs in Plone 3.0 (Windows)
How to install third-party command-line converters to enable full-text indexing of Word documents and PDFs in Plone 3.0 on Windows
Enable Indexing of pdf and word docs with Windows in Five steps:three minutes of your times without problems!
Very Simple Five istructions to index pdf and word documents in Plone with Windows
Enable Workspaces in your site !
Workspaces as seen on plone.org are useful if you want to have a controlled content creation scheme.
Enabling Members to Search your Plone site from Off-Site using Firefox's DictionarySearch Extension
This howto will explain how to enable your users/members to search your Plone site using Firefox's DictionarySearch extension.
Ensure that deleted users can not re-register and gain control of their previouis folders
You may want to be able to delete naughty users from your site, but keep any content they may have created... However, default behaviour allows the users to re-register with the same user name and regain their existing folder. This fix stops that...
Export member data to CSV
A quick step by step on exporting your Plone member data as a comma separated file.
Exporting data to Excel
A common use case for using Plone as a front-end to a RDBMS is that of exporting data from tablular views in Plone to an Excel file. This is surprisingly easy to do with a small python script.
Extending ZopeSkel with your own Templates
A brief explanation of how to make your own ZopeSkel templates, as well as local commands for rapidly building projects, archetypes, and schema.
Extracting Data from Microsoft SQL using ZPT
The following should hopefully advise on how to extract data from MS SQL into a plone site.
Firefox/mozilla UI development tools
Firefox and mozilla have a number of extensions that can greatly help your UI development work. A basic set is listed here.
Fixing invisible or disappearing text and double margins in Internet Explorer
Internet Explorer has a very serious bug when calculating the height of floating elements, which can cause elements to disappear. Here's a simple way to work around it in any layout, with a special convenience class for Plone - although the approach is valid for any CSS layout.
Formatting portlets
How to format your portlets with the right HTML tags and the right CSS classes.
Generate custom unique ids for new objects !
When you create a new object in Plone, it is automatically given an id (short name) based on the object's type and the current date. This how-to shows you how to change the way in which this id is generated.
Generating POT of Archetypes based products
This howto guides developer through the process of autogenerating template POT file, that is later used to translate Archetypes based product. Earlier, developer had to manually add label_msgids and description_msgids, but I have created a very simple external method that is able to extract these from any product.
GenericSetup: Unregistering custom Import steps
If a custom product accidentally registers a GenericSetup "Import Step" on your site, there's currently no way to remove via the portal_setup tool. This how-to provides the steps for unregistering custom import steps from your Plone site.
Getting ExternalEditor (zopeedit) working on Windows
How to get the External Editor feature of Plone to work on Windows.
Getting ExternalEditor (ZopeEditManager) working in Firefox on Mac OS X
How to get the External Editor feature of Plone to work using Firefox on Mac OS X. (Updated!)
HA-Cluster with loadbalancing for Zope (and Plone)
This document describes an HA-Cluster solution for Zope and Plone with load-balancing over two physical machines, based on ZEO. We assume NO single point of failure, and use NO commercial software. Concepts discussed in this howto are applicable to more complex setups.
Hide the Not-Logged-In and Join links
How to hide the "not logged in" message and "Join" buttons on the personal bar.
How to add a File System Z SQL Method
How to move Z SQL Methods out of the ZODB and onto the file system.
How to Add a Hyperlink Listing of Keywords to the Top of Your Documents !
This howto explains how to add a hyperlink listing of keywords to the top of your content items. In this example, I will add this list to the top of all Documents.
How to Add New Class Styles to Kupu
This document explains how to add and define new custom class styles for use in kupu.
How to create a blog view of a page listing
Modifying a CMFContentPanels viewlet to add a blog-style view to a Plone site
How to create default content in Member Area
Each member gets a member area created when they first log in. How to get certain content put in this folder by default?
How to customise view or edit on archetypes content items
Explains one way to customise the view or edit templates without having to change the action of an object.
How To Customize Error Messages
A short how-to which explains how to customize error handling such as 404 errors in Plone.
How to customize specific icons in the navigation tree !
This how-to will teach you how to use CSS for customizing the icon of an object in the navigation tree.
How to Embed Flickr, YouTube, or MySpace Content
Normally, Plone will not allow you to paste the code necessary to embed videos, slideshows or music players from popular websites such as Flickr, YouTube and MySpace. Learn how to adjust the HTML filtering to allow this content.
How to Embed ViewCVS in Plone
An example of how to 'persuade' ViewCVS to embed in a Plone page. Provides an account of how to do rewriting with Apache, converting ViewCVS, and adding externally created, dynamic content to Plone pages.
How to force all your old content into the new 'normalized-id-format'
Sometimes, when you migrate an old website, you might want to forcefully rename your old objects
How to force Plone to restrict the creation of short names with spaces, underscores, capital case, etc.
If you don’t know by now, Plone is case sensitive. For example, if you have a folder with a short name called “mike” it is completely different than “Mike”. This makes sense from a developers stand point because of the way Zope handles each object ID. However, from an end user standpoint they couldn’t care less.
How to hack your Zope 2 instance so that you can install Python packages using easy_install
This HOWTO guides you through the few steps required to make your Zope 2 instance on Unix/Linux/Mac OSX a full-blown Python environment where you can install Python packages without administrator rights, using the convenient EasyInstall tool.
How to hide an item from the navigation tree even it is the current item
This how-to is about some steps one can follow to hide certain items from ever showing up in the navigation tree, including the case when they are the current items
How to make forms for Plone 3 the easy way
How to use z3c.form in Plone to create easy and flexible forms. Forget about complicated ways of making forms!
How to manage portlets in Plone 3
This document shows how to manage portlets from within Plone 3
How to Quickly Search Zope/Plone Code using Glimpse
Quickly search the entire Zope, CMF, Plone source from the command line using full-text indexer glimpse.
How To remove portlets from python code
This how-to will show you have to remove the standard portlets from python code. This can be useful to include in code you run from import_steps.xml. This How-To will be obsolete when plone portlets can use generic setup for portlet assignment.
How to retrieve cumulative differences between versions when referenced images are involved
The CMFEditions performs an important task of retrieving the history and showing differences between various revisions. But when there are reference fields in the content types and the differences between revisions are sought in history section it fails to show them up although retainATRefs modifier is set up for the content type.
How to scale images using PiL in Page Templates
A quick description of how to scale images from an image field using the Python Image Library in your Page Templates using TAL.
How to search in file fields in custom content-types
If your custom content type contains a file upload field, there's a good chance you want the uploaded files to be indexed, too. The key to get this done is TextIndexNG. This how-to will hopefully get you started quickly. Note that it's intended for Plone 2.5.
How to set the creation date !
This page describes how to set the creation date and effective date to a given value.
How to setup and use KSS on Plone 3.0
KSS is part of Plone 3.0. We try to answer to some common questions about the use and setup of KSS for Plone 3.0.
How to setup and use KSS on Plone 3.1
Answer to some common questions about the use and setup of KSS for Plone 3.1.
How To Setup SQLPASPlugin to Authenticate Against A PostgreSQL Database
Documents the setup of SQLPASPlugin for SQL based authentication in Plone 2.5, using PostgreSQL.
How to show full content in folder views
This how-to only makes sense for folders, smart folder, or other similar views with a reasonably small number of items. It shows how to display the full view of content in listings by using the macros already defined for the content types. The same approach can be used to define viewlets for layout products like compositepack.
How to style navigation parent items like the current item
A quick tip for changing the visual style of the navigation portlet so that parents of the current item have the same visual style as the current item.
How to subclass an ATContentType in 7 Minutes
Learn how to subclass an ATContentTypes type (types used in Plone 2.1, like Page, Image, etc.) using UML and ArchGenXML. In this how-to we're creating an ATDocument derivate where content itself is a page template.
How to update language files - Plone translation files !
Plone has files with translations for each language. These files are updated by the Plone i18n team and translators from all over the world. Web masters should update the files from time to time. This how-to shows you how to update the files on your Plone site.
How To Use sIFR To Do Font Substitution
sIFR is a simple flash/javascript technique that can allow you to replace text in your pages with lightweight, beautifully rendered, anti-aliased Flash, while preserving accessibility. Here's how.
How to use this resource
A brief description of how you use and contribute to the Help Center.
HTML Filtering options !
A discussion of the main way Plone filters HTML.
Implement edit-view modes
Make it possible for users to show and hide the editable border and content tabs from a standard Plone site.
Importing a SOAP client object to be used by python scripts
This How-to shows the use of ZSI's code generation tool and how import the result objects into a python script. Loading these generated classes into Zope didn't go as easily as I had hoped, hence the impetus for this document. I use Amazon's Web Services platform as an example, but using this as SOAP client allows you to interconnect heterogeneous web services platforms with Plone. In particular, I show how to execute a keyword search for products on Amazon and use the result objects.
Install and setup ipython for zope
ipython is a powerful interactive shell. You can use it with a zope/plone instance for debugging or introspection.
Install ZEO on Windows
How to migrate a Plone instance created using the Windows installer over to ZEO.
Installing Plone with Apache
There are several ways of running Plone together with Apache, but this is the simple, idiot-proof way.
Installing products from Subversion with buildout
Sometimes Plone products are not eggified, but available only in Subversion version control repository. This how to tells how such product can be automatically installed in buildout installations.
Integrate external content in Plone
Describes how I managed to integrate some external content into my plone site using the plone look.
Integrating del.icio.us and/or flickr feeds into your Plone site
Simple trick combining Plone's add-on, inbound RSS aggregator, CMFSin with popular social bookmarking and photo sharing services.
Integrating MS Office and PDF files into Plone 2 !
Allow users to upload MS Office files (i.e., Word, Excel, PowerPoint) and PDF files into Plone as objects such that they are automatically previewable, indexable, and searchable upon upload.
Integrating PHP applications in Plone
How to use PHPParser to display content from an external PHP application inside Plone.
Internationalization (i18n) For Developers
An explanation of how developers should create and edit Zope Page Templates so that they can be translated by the Plone translation team.
Introduction to creating and validating forms
How to create and validate forms in Plone using its CMFFormController. Be sure to also read the CMFFormController tutorial in the Products/CMFFormController/documentation directory, included with your copy of Plone. This how-to is also available in Products/CMFFormController/www/ as the file docs.stx, included with Plone.
Kupu - enabling color chooser
Use this how-to to enable a color chooser in Kupu. And you can enter content incorrectly to your heart's content.
Kupu - one touch full screen (zoom) editing
Use this to open existing douments in zoom mode with one mouse click....and to save documents without "unzooming" and scrolling.
LDAP Authentication with Plone (versions 2.1.x and 2.0.x only and NOT 2.5 or later) !
Here are some general tips on how to get Plone versions 2.1.x or earlier working with LDAP authentication. This is NOT RELEVANT to Plone 2.5 or later (using PlonePAS)
Limiting Search to Sections of Site
Recipes for showing a search box with options to search only in this section of the site, or other sections of the site.
Listing all permissions in the site
In the ZMI's "Security" tab, at the top level, you will see a list of all permissions in the site, and who has access to them. This how-to describes how to get a script to make a list of these permissions.
Login Redirect Problems from Bad ACTUAL_URL
When you're prompted to log in to access something on your site, your redirect doesn't work and you have VirtualHost stuff in your ACTUAL_URL
Make a complete folder structure private
This how-to summarizes the steps needed to make all elements below a private folder private.
Make a product install a folder structure in the site
Creating Folders at product install time can be done by your product's install script, but it's much easier to let Generic Setup take care of it. This how-to explains how to use profiles/default/structure to create folders at product install time. Explains the use of the files .objects, .preserve and .properties.
Make Plone more secure: Disabling Base64-encrypted cookies with SessionCrumbler
By default, Plone creates a Base64-encrypted cookie that stores your password whenever you login. Here is a different approach that uses sessions instead of cookies for login data.
Making CSV files display in the brow