Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install products.doormat

How to install Products.Doormat

  1. Download and install ActivePython
  2. Buy and install the Business Edition license from account.activestate.com
  3. Open Command Prompt
  4. Type pypm install products.doormat

Products.Doormat contains builds that are only available via PyPM when you have a current ActivePython Business Edition subscription.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
0.7
0.7 Available View build log
0.6 Available View build log
0.5 Available View build log
0.4 Available View build log
0.3 Available View build log
Windows (64-bit)
0.7
0.7 Available View build log
0.6 Available View build log
0.5 Available View build log
0.4 Available View build log
0.3 Available View build log
Mac OS X (10.5+)
0.7
0.7 Available View build log
0.6 Available View build log
0.5 Available View build log
0.4 Available View build log
0.3 Available View build log
Linux (32-bit)
0.7
0.7 Available View build log
0.6 Available View build log
0.5 Available View build log
0.4 Available View build log
0.3 Available View build log
Linux (64-bit)
0.7
0.7 Available View build log
0.6 Available View build log
0.5 Available View build log
0.4 Available View build log
0.3 Available View build log
 
Author
License
GPL
Dependencies
Depended by

Introduction

A doormat is a couple of links which are presented in a structured way. One example is the current plone.org, where the div#sitemap at the bottom consists of some ordered bundles of internal and external links, with sections called "Downloads", "Documentation", "Developers", "Plone foundation" and "Support". See more examples of doormats.

This product adds a couple of content types (Archetypes), which are used to create a structure which is used for generating a doormat. A viewlet on this doormat is placed in the Plone footer. The links in the Doormat are managed as content, making the Doormat more flexible than a sitemap. It's also possible to add external links. It's also possible to add bits of text, with markup.

Quick feature overview

  • Internal links
  • External links
  • Text blocks (including images)
  • Links from Plone Collections
  • Can have any number of columns
  • Can have multiple sections per column

Getting started

After installing the product in your site, you can add a "Doormat" item to your Plone site. Inside it, you can create a hierarchical structure of Columns, Sections, links (both internal and external), Documents (Plone's Page type), and Links to a Collection (DoormatCollection).

The Doormat may look like this, schematically:

+-- Doormat ----------------------------------------------------------------------------+
|                                                                                       |
|  +-- Column 1 ----------+  +-- Column 2----------+  +-- Column 3 ------------------+  |
|  |                      |  |                     |  |                              |  |
|  |  +-- Section 1 ----+ |  | +-- Section 1 ----+ |  | +-- Section 1 -------------+ |  |
|  |  |                 | |  | |                 | |  | |                          | |  |
|  |  |  +-- Link 1 --+ | |  | |  +-- Link 1 --+ | |  | |  +-- Document 1 -------+ | |  |
|  |  |  +------------+ | |  | |  +------------+ | |  | |  |                     | | |  |
|  |  |                 | |  | |                 | |  | |  | (Contact info)      | | |  |
|  |  |  +-- Link 2 --+ | |  | |  +-- Link 2 --+ | |  | |  |                     | | |  |
|  |  |  +------------+ | |  | |  +------------+ | |  | |  +---------------------+ | |  |
|  |  |                 | |  | |                 | |  | |                          | |  |
|  |  |                 | |  | |                 | |  | |  +- DoormatCollection -+ | |  |
|  |  |                 | |  | |                 | |  | |  |                     | | |  |
|  |  |                 | |  | |                 | |  | |  | Item 1 from Collctn | | |  |
|  |  |                 | |  | |                 | |  | |  | Item 2 from Collctn | | |  |
|  |  |                 | |  | |                 | |  | |  | (...)               | | |  |
|  |  |                 | |  | |                 | |  | |  | Link to Collection  | | |  |
|  |  |                 | |  | |                 | |  | |  |                     | | |  |
|  |  |                 | |  | |                 | |  | |  +---------------------| | |  |
|  |  |                 | |  | |                 | |  | |                          | |  |
|  |  +-----------------+ |  | +-----------------+ |  | +--------------------------+ |  |
|  |                      |  |                     |  |                              |  |
|  +----------------------+  +---------------------+  +------------------------------+  |
|                                                                                       |
+---------------------------------------------------------------------------------------+

In fact, you can add more than one section, they will be displayed below each other. In each section, you can mix internal links, external links and Documents.

And in real life:

http://plone.org/products/doormat/screenshot

Note that the product adds an extra hierarchical layer compared to the plone.org doormat: it adds a Column, which can contain more than one Section. An example using this structure is the Oosterpoort, which actually is the product's predecessor.

Adding a Document

Adding and editing a Document to the Doormat is just as simple as adding it in any other place. However, keep this in mind that only the "Body text" field will be displayed in the Doormat. Other fields, most notably the title and description will be omitted.

Adding an Image

To add an image to the Doormat, add a Document and include an image there. It's not possible to upload an Image to a DoormatSection, so you need to upload the image to another place in your site first.

Make sure you enable "Link using UIDs" (see above) first, because defining the image's location in a relative way will break in the same way as a relative link will break.

Simple configuration

You'll probably want to exclude the doormat object from navigation using the "Settings" tab. (This was not yet done when the above screenshot was taken.)

There's a field showTitle on the folderish types (Doormat, Column and Section) which allows content managers to decide if the item's title should be displayed in the doormat.

More advanced configuration and styling

This section is intended for integrators and/or developers who would like to customize the way the doormat is rendered in more detail.

Moving the doormat

By default, the default doormat viewlet (doormat.footer) is placed in the plone.portalfooter viewlet manager. It's easy to modify this in an add-on product, so the doormat will display below the global navigation (portal tabs), or anywhere else in the site.

Displaying the doormat without the extra div elements

The default viewlet renders the doormat inside Plone's default footer elements, so it blends in with Plone 4's default Sunburst Theme:

<div class="row">
  <div class="cell width-full position-0" >
    <div id="doormat-container" />
  </div>
</div>

Using the doormat.footer.bare viewlet will omit the two outermost <div>'s. This may be handy when using the doormat in a different theme, or in a customized layout. You can hide the default viewlet and enable the bare version through @@manage-viewlets, or by adding a customized viewlets.xml to the product you're developing.

Caveats

The viewlet does a catalog lookup for the Doormat portal type. If you have more than one object of this type (nothing stops you), it will use the oldest one.

Dependencies / Requirements

The product works on:

  • Plone 3
  • Plone 4

Credits

This product was sponsored by GroningerForum.

Changelog

0.8 (2013-08-23)
  • Use archetypes.referencebrowserwidget in the DoormatReference if available. Note: archetypes.referencebrowserwidget 2.4.15 and 2.4.16 broke non-multi reference selection, so if your Plone version uses one of those versions, you should edit your buildout to use a newer version. [maurits]
  • Moved to github: https://github.com/collective/Products.Doormat [maurits]
  • Make compatible with Dexterity and new collections [pbauer]
  • Subclass from ATCTContent instead of BaseContent (taken from https://github.com/pymilya/Products.Doormat)
  • Search for doormats only in the navigation root. This allows to have a different doormat (or no doormat) in parts of the site. [maurits]
0.7 (2011-06-22)

Merged collections branch.

  • Add "DoormatCollection" type, which takes links from a Collection. Thanks to Alessandro Vermeulen's branch at https://github.com/spockz/Products.Doormat.
  • Don't subclass DoormatCollection from DoormatMixin. [khink]
  • Add labels and description for fields, add a pointer in the documentation. [khink]
  • contentValues() instead of objectValues() (only expose CMS content) [khink]
0.6 (2010-11-11)
0.5 (2010-10-25)
  • Set global_allow=False on DoormatSection by adding tagged value in UML. (agx mysteriously sets it to True by default) [khink]
  • Developer documentation (about using AGX)
  • Explicitly set external-link class for Link type objects.
0.4 (2010-10-05)
0.3 (2010-07-19)
  • Remove empty skins/ folders doormat_styles/ and doormat_templates/ (fixes http://plone.org/products/doormat/issues/4: Skin dirs missing from egg)
  • Added viewlet doormat.footer.bare to display the doormat without the div.row and div.cell wrapping.
0.2 (2010-06-11)
0.1.1 (2010-06-09)
0.1 (2010-06-08)

Initial release

For developers

This product's content types were created with ArchGenXML. The model is in the the UML directory. There's a makefile for generating: cd to Products/Doormat and run:

make -C ../../uml/

Please keep the UML model up-to-date so AGX code generation keeps working, unless you have good reason to do so, and please do not use older versions of AGX than the version it was last generated with.

To do

  • Auto-create 'doormat' on install
  • Remove instances of content types on uninstall.
  • Add some sort of caching for getDoormatData and getDoormatTitle methods, or for the entire viewlet. Or at least get an idea of how expensive they are. Currently the viewlet computes the whole doormat each time it is rendered.

Subscribe to package updates

Download Stats

Last month:4

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.