How we built this site
A step-by-step explanation, with links to relevant tips and documentation
We are currently using the following versions of each of the layers of the Plone stack:
- Python 2.3.5
- Zope 2.8.5-final
- CMF 1.5.5
- Plone 2.1.2
Our hosting is operated and managed by Zettai.net.
On the File System
Within your Zope instance:
- Download and untar GrufSpaces 0.6 to the /Products directory.
- Move the zexp files for the HumaniNet workflows to the /import folder.
- Edit the file /bin/runzope to change the time zone for your Zope instance.
- Restart Zope.
In the ZMI
- Using your admin account, log in to the Zope Management Interface (ZMI).
- Go to the root folder of your Zope instance, and choose Plone site from the drop down list. The id should be all lowercase, the customization policy "Default Plone".
- Set basic site properties. Click on the name you gave your Plone site in the side bar so that the root folder of the Plone site is shown in the main part of the window. Click on the Properties tab. Make any changes to the title and description of your site - these will appear in titles and site-generated emails. Change email_from_address to your preferred email accout and change email_from_name to the name you would like to have displayed on any email sent automatically by the system.
- Choosing Portlets. The left_slots and right_slots lists determine which portlets appear for your site. You can change the order by cutting and pasting the text of each line, or you can delete portlets completely. For example, to remove the recent changes portlet delete the line 'here/portlet_recent/macros/portlet'. Do not leave any blank lines in the portlet list. (Note: There is a bug in Plone 2.1.2 that can cause the main part of the page to be blank if certain portlets are enabled. If you run into this problem, delete all non-standard portlets, verify that the main part of the page displays properly, and then selectively add your portlets again until you find out which one is causing the problem.)
- Once you have made all the property edits, click 'Save Changes'.
- Change the site logo. You can customize the image in the upper left part of each page, swapping out the standard Plone graphic to an image that reflects your site or project. Remember to click Refresh in your browser to see the change. On some systems, you may also need to clear your browser cache before you see the change.
- Remove Join link. By default, anyone can join a Plone site without a review process. Since parts of our site are reserved for our field partners, we have disabled the automatic join feature and create users manually. The first paragraph of this how-to document from Plone.org explains how to disable the Join link.
The workflow changes described in that document are integrated into HumaniNet's custom workflows.
- Permission to Add Members. On our site, only manager-level users can add members to the site. Go to the root of the Plone site, click on the Security tab, scroll
down to the 'Add portal member' property, and make these changes:
- Uncheck Acquire
- Check Manager
- Scroll to the bottom,
and click 'Save Changes'.
- Click 'Ok' on the next screen.
- Remove lowercase setting.
Return to the root of the site. (Click the 'Contents' tab if you are
still looking at the security screen.) Scroll down and click
portal_skins, then plone_styles, then base_properties. Click the
'Customize' button to make this page editable. Scroll down to
'textTransform' and delete the text 'lowercase'. Scroll to the bottom,
and click 'Save Changes'.
- Domain Name Mapping. Configure a virtual host monster to point a domain name to your Plone
instance. This step is highly variable, and may require reconfiguration of your web server and custom DNS settings. Check with your hosting provider for details.
In Plone
- Create a manager account. In the ZMI, while looking at the root folder of your Plone site, right
click the view tab, and open it in a new tab. (Or a new window, if you
are using Internet Explorer.) You are now looking at your new Plone site directly, but you are logged in under the admin account. Click the 'Preferences' link in the upper right, then click 'Users and Groups Administration'. Click 'Add New User' to create a new user account for yourself. Once you complete the form, go back to the Users tab, click the 'Show all' button, check the Manager box in the row for the account you just created for yourself, and the click the 'Apply Changes' button. Log out of the admin account and log in under your new account.
- Install GroupSpaces. GroupSpaces is the 'user-friendly' name for the GrufSpaces product. It creates several additional roles within the ZMI, and its Roles tab (in Plone, not the ZMI) provides more fine-grained control over items with it than the standard Plone folder. (Note: We have found a permissions problem with the Email tab in version 0.6, and at this time we don't have a workaround.) To install it:
- Click on 'Preferences', then 'Add/Remove Products'.
- Check GrufSpaces 0.6 in the 'Products available for
install' list.
- Click Install.
- Click the 'Install Log' if you would like
to verify that it is working.
- On the lower left of the screen, under 'Add-on Product Configuration', click on the 'GrufSpaces' link. We have dozens of users, and only a handful of groups, so we use the defaults of user search and group selection.
- Set Navigation properties.
In the Site Setup box, click 'Navigation Settings'. If your site will have more than five or six top level folders, it is probably a good idea to uncheck
'Automatically generate tabs'. Otherwise, Plone will make a tab for each folder, but your users will have to scroll hoizontally to see most of them. (We'll make some specific tabs later.)
Under 'Displayed content types', uncheck everything except Folder,
GroupSpace, Large Folder, and Smart Folder. Click 'Save'.
- Add comments to search. Click 'Search Settings', and under the 'Define types to be searched section', put a check next to 'Discussion Item'. Click 'Save'.
- Recent
Changes page. See this how-to for details, and how to create a Recent Comments page, too.
Back in the ZMI
- Install workflows.
Go to the root of your Plone site, scroll down, and click on
portal_workflow. Click the Contents tab. Click the 'Import/Export'
button. In the bottom half of the next screen, choose the workflow to
import in the 'Import file name' drop-down list, select 'Take ownership
of imported objects', and then click the 'Import' button. Repeat for
each workflow you would like to install. See our workflow documentation for more details.
- Changing workflow assignments.
Go to portal_workflows, or, if you are on the Contents tab, click the
Workflows tab. Make these changes:
- Set GroupSpace to groupspace_hnet_workflow.
- Set Folder and Large Plone Folder, and Topic to hnet_folder_workflow.
- Everything else should be listed as
(Default), and then change (Default) at the bottom to
hnet_plone_workflow.
- Click the 'Change' button, and then after the page reloads, scroll to the bottom and click the 'Update security settings' button.
- Site-wide security tweaks. Installing GrufSpaces in Plone added four additional roles to the Zope permission model: GroupVisitor, GroupMember, GroupLeader and GroupAdmin. We need to customize the site wide security permissions for GrufSpaces:
- Go the root of the Plone site.
- Click the 'Security' tab.
- Scroll down to "GrufSpaces: Add GroupSpaces", uncheck 'Acquire Permissions Settings?' and check manager only.
- While on this screen, verify that in the "Add Portal Member" row, there is no check for 'Acquire Permissions Settings?' and only the manager column is checked. You may want to let Reviewers add members, too, depending on your needs.
- Scroll to the bottom and click the 'Save Changes' button.
- Customize the Navigation list. From the Plone root, click 'portal_properties', then 'navtree_properties'.
In the 'idsNotToList' field,
add 'Members'. If you only want to use the Portlets for News and
Events, it might make sense to add 'news' and 'events' here, too. In
the rolesSeeUnpublishedContent field, add
GroupVisitor, GroupMember, GroupAdmin and GroupLeader. Scroll to the bottom and click 'Save Changes'.
- Set the date format. Go back to 'portal_properties', then click 'site_properties'. To customize the date format displayed for short and long dates. For this site, we are using a localTimeFormat of "%B %d, %Y" and a
localLongTimeFormat set to "%B %d, %Y %H:%M UTC". Using %Z to display
the timezone didn't seem to work on our installation. Here is a direct link to the codes used. Scroll to the bottom and click 'Save Changes' after changing the format.
- Enable comments. In the root of your Plone site, scroll down to and click on portal_types. Click "Document (Page)", put a check the box next to 'Allow Discussion?', and click 'Save Changes'. Repeat for each content type for which you'd like to allow discussion. Note that you can still turn comments on and off at the bottom of the edit screen for each item.
- Prevent nested GroupSpaces. This page explains how and why.
- Create Custom Tabs. Earlier, we disabled Plone 2.1's new auto-tab feature. On our site, we've created custom tabs that point to Recent Changes and Recent Comments (wiki-style) and a frequently-updated list of problems with the site called 'Known Issues'.
Final Tips
- Create a basic structure. Before opening the site to your
participants, it can be helpful to create a folder structure so
individual users don't make differing decisions about where content
should be stored. You will also want to add any GroupSpaces and assign users to them before inviting those users in.
- Migrating Content. If you need to import content items such as CMF-based objects from older Plone installations, this migration guide is helpful.
- Using Groups to manage user permissions. Although you can use the Sharing tab to assign permissions to individual users, as a site grows, it will usually be easier to assign the permissions to Plone groups, and then add users to those groups.
- Storing News and Events. For some sites, news and event items will naturally fit into your site structure. On our site, we have a number of news and events that apply to the whole site, so we have created two top level folders called site-news and site-events so that our root folder doesn't get clogged with dozens of these items. Since we don't intend for our readers to view these folders directly, we have hidden them from view. See the 'Customizing the Navigation List' paragraph above for information on blocking these folders from appearing in the Navigation portlet. Note that these folders must be published for the News and Events portlets to display properly.
This work is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.