Skip to content

mxm, IT's mad science

Personal tools
You are here: Home » Products » Open Source » mxm Dynamic Page
You can download mxm products here.

Due to it's technical and international nature, this section is in english.

Max M Has a blog too.

og er glad for mad


mxmDynamicPage, Plone content type for dynamic lists

The mxm Dynamic Page product for Plone makes it easy for end-users to make dynamic pages that aggregates lists of content from a part of a Plone site. In short, it makes it easy to add dynamic lists to a document. It is especially usefull as an "index_html" in a member folder, where the member then has the option to make dynamic lists of his content. But it can also be used to easily make custom versions of the common "news" page, or pages similar to that.

It does nothing that Topics and ZPT cannot do, but that approach is far to difficult for end users. I also find the current products that creates dynamic pages to complex and difficult for end users, so I have tried to find the sweet spot between power and ease of use.

It has been used in production for allmost a year, with good end-user satisfaction.

Structure of a Dynamic Page

The top of the page optionally consists of text content.

The bottom of the page consists of 0-5 dynamic lists.

This screenshot shows a fully populated page, with text, two columns and three columns.

Screenshot large

Unfortunately it doesn't really do full justice to the possibilities. When you make your own styles, there is really no limit to the way it can look. The default styles are meant more as examples on how to make your own styles.

Editing the content

Editing the text content is just like editing a normal Plone Document. With all the usual fields. It also supports dynamic editors like Epoz. The main difference is the "edit lists" tab.

Edit List Tab

Defining lists

There can be up to 5 different lists on a single page. The content and the layout can be different for each list.

Layout options

(This screenshot is a bit out of date. 2 more options in the latest version. Will be documented later)

Dynamic List

A dynamic list is like a simple search in the catalog. It includes the most common forms of searches that can be done. My hope is that it covers about 90% of all use cases.

Dynamic List

The tricky point to understand about the searches, is that when no content types and no subjects are selected, then all content types and subjects are found.

This is the same behaviour as the advanced search form.

If you select only one content type, ie. Event, then only events are listed.

If you select "Event" and "Meeting", then only "events" who has the subject "meeting" are listed.

The search functions works like:

        (type1 or type2 or type3) and (subject1 or subject2 or subject3)

A common mistake is to select all content types and all subjects, and then believe that all content is listed. But not all content has subjects/keywords selected in the properties/meta data tab. So in this case, contents without subjects will not be listed.

To list all contents it is safe enough to select all content types. But you should deselect all subjects!

A Dynamic Page also acts differently according to the users role.

When the user viewing the page is Anonymous, only published content is listed.

When a user is Authenticated, both Published and Visible content is listed.

Search Method

You can choose if the content in the dynamic list should come from the current folder, where the DynamicPage is added, and it's sub- folders. Which is the default.

In other words, all content in and below the path where the Dynamic Page is.

So if it is added to a member folder, only content from the member folder and below can be added to the dynamic page.

The content can also be collected from the entire site.

If you add a Dynamic Page to the root of the site, any content on the site can be added. No matter what search method you use.

Static List

If you have some dynamic lists on a page, but you think that some of your content is important enough that it should allways be visible. Ie. that it should not dissapear when newer items are added. Then you can use a static list.

You simply select some content from an alphabetically sorted list of content that is available to the page.

The list then consists of dynamic reference to the selected articles. So you don't have to worry about you dynamic page becomming out of sync. If you change the title or the description of some of the linked content, it will automatically be updated on the static list.

Beware: if you rename or move the items in a static list, it will loose the reference.

Static List

Layout of lists

There are 2 choices when it comes to the layout. "Style" and "position".

Style defines how the list looks on the page. Only a limited number of options are shipped as default, as it is my experience that almost no one style will be right for a specific site enyway.

If you want to define your own styles, you must customise the zpt file DynamicPage_list_views in the mxmDynamicPage skin.

Position can be a little tricky to understand even though it only has two options.

  • Under Previous, makes the list appear under the previous list. In other words it makes the list appear in a new row.
  • Beside Previous, makes the list appear in a column beside the previous list.

Using a combination of these options gives practically unlimited layout options on single page.

Other products for dynamic pages


Content Panels


It runs under Plone 2.x and 2.1.x




contact me at


You can get it from Downloads

Created by maxm
Last modified 2006-03-09 02:32 PM

Dynamic Page and Topics

Posted by Anonymous User at 2004-07-02 08:12 PM
Love the Dynamic Page but we have been having issues with it showing Topics. It can show pretty much anything else, but we can't get topics to show. Any ideas? Thx

using mxm dyn pages to do catalog search

Posted by Anonymous User at 2004-10-07 11:41 PM
is there any chance to use this product to search in the catalog? lets say i have a content type with name, address, country, state. now i search for "italy" and "luici". now i wonna mxmdyn page to format the result page with the found objects.


Limiting depth

Posted by Anonymous User at 2004-10-21 04:57 AM
Cool product. One feature I'd find useful is some ability to limit the depth of search. for instance, being able to create a list of folders just at the current folder level. Don't think this is possible with current product, wonder if it is possible to do.

some modifications added

Posted by Anonymous User at 2004-12-28 04:35 AM

thanks a lot for this usefull product!
I have made some modifications, such as Dublin Core Metatags, sort by Id, ...
The modified sources can be seen/downloaded on

best regards,

How to add metadata properties

Posted by Anonymous User at 2005-01-30 09:41 PM
Just a suggestion:
It would be nice if you one could add metadata properties (subject) to a dynamicpage

Static list can't use entire site

Posted by Anonymous User at 2005-04-15 07:58 PM
Seems static lists automatically revert to the local folder for content. Is this a bug, or is there an architectural reason?

Kupu compatibility

Posted by Anonymous User at 2005-05-16 10:10 AM
Adding dynamic Page I got the following error message kupu 1.2.1, plone 2.0.5, zope 2.7.4-0.
Kupu not installed correctly: 'NoneType' object has no attribute 'getEditAccessor'
if you have an answer, please email me
thanks, daniel
danigras @at@ gmail .dot. com

Show only archived content does not work for anonymous users

Posted by Anonymous User at 2005-08-11 05:49 PM
When using the "Show only archived content" option for event types that have expired, only users who are logged in can see the item in the list. If you are logged out as an anonymous user, you will not be able to see expired events.

On one hand, this makes sense since events that have expired are not visible to anonymous users. Therefore, if this is the case, then isn't the "Showed only archived content" option really not that useful?

Which Subject ?

Posted by Anonymous User at 2005-10-23 09:36 PM
Hello MaxM. I love the product, but what 'Subjects' do you talk about in this page. Don't see these in de defintion of Edit Lists.

Default page problem

Posted by Anonymous User at 2006-02-23 01:49 PM
Hi, I've succedeed in installing dynamic pages, but I'm not able to make a dynamic page as the default page for a folder.
When I want to select the default document to open, I have no document selectable.

I'm using Plone 2.1, Zope 2.7.7, Python 2.3.5 and mxmDynamicPage 2.4.0 under Windows 2000 server.

Oliv -

Missing formatTime definitions

Posted by Anonymous User at 2006-03-13 02:35 PM
Hi, I think there is a problem in DynamicPage_list_views (v2.5.1) : formatTime is defined for the "normal" macro only, so any other style raises an error.

validator error

Posted by Anonymous User at 2006-03-16 10:24 PM
Hi. I installed mxmDynamic Page into the plone 2.1.1 (zope 2.8.3) on a 64bit AMD comp. When I try to add the dynamicpage, I get (just after I click on the ok button) following error:
Traceback (innermost last):
Module ZPublisher.Publish, line 113, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 40, in call_object
Module Products.CMFFormController.FSControllerPageTemplate, line 98, in __call__
Module Products.CMFFormController.BaseControllerPageTemplate, line 37, in _call
Module Products.CMFFormController.FormController, line 375, in validate
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 40, in call_object
Module Products.CMFFormController.FSControllerValidator, line 59, in __call__
Module Products.CMFFormController.Script, line 141, in __call__
Module Products.CMFCore.FSPythonScript, line 108, in __call__
Module Shared.DC.Scripts.Bindings, line 311, in __call__
Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
Module Products.CMFCore.FSPythonScript, line 142, in _exec
- <FSControllerValidator at /TEST/DynamicPage_editForm_validate used for /TEST/dynamicpage.2006-03-16.5438662345>
RuntimeError: mxmDynamicPage/skins/mxmDynamicPage/DynamicPage_editForm_validate.vpy has errors.

I do not configure any lists in that time. I just try to add the page and set its name/title. Anybody has a clue about what the problem could be?

Thank you!

How-to show images and full text in content?

Posted by Anonymous User at 2006-05-27 03:12 PM
Hi, great product, thanks a million...
Just wondering if ther's a way to show the news image and full text of the content...

Can it use Smart Folders for input ?

Posted by Anonymous User at 2006-06-01 04:28 PM
Since IMHO the Smart Folder system in Plone 2.1x can search with more granularity than this product i wonder if this product could be adapted so it could use the search results of a Smart Folder and display the results from that object in one of the 5 panels ?

That way you can reuse existing Smart Folders throughout a website..

Otherwise , looks great !


Posted by Anonymous User at 2006-07-05 05:34 PM
Hi, I'm using mxmDynamicPage for my front page which needs to be in English and Spanish. Does it support LingualPlone? I tried it but dont' see the translation menu on the page I've created.

how dynamic??

Posted by Anonymous User at 2006-11-17 08:28 AM
Hi Max!

Great product! You should have seen the smile on my face after I tried setting up my first dynamicpage. It's so easy! Stor takk! (I'm not sure if that's Danish but it's close, yes?) Anyhow, I have need to take my dynamicpage one step further and was wondering if you could tell me if it's possible and if so, point me to the right file to tweak in order to accomplish this:

I've created 4 side-by-side columns containing content including folders. If I have a folder in one of the columns, I was wondering if I would be able to invoke the "son of suckerfish" javascript/CSS code to enable a dynamic dropdown listing of THAT folder's contents in the event of an 'onmouseover'. Is dynamicpage that dynamic? :) I certainly hope so (and I have a feeling it can be done, but reckoned I should ask the master before banging my head against any walls)!



Error when users click on Edit Lists

Posted by Anonymous User at 2007-05-15 08:55 PM
We use MXM Dynamic Page lists throughout our Intranet site, and they generaly are well-beahved. On one dynamic page which successfully used lists before we recently started getting the following error when we click on the Edit Lists tab:

Traceback (innermost last):
Module ZPublisher.Publish, line 100, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 40, in call_object
Module Shared.DC.Scripts.Bindings, line 306, in __call__
Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
Module Products.CMFCore.FSPageTemplate, line 191, in _exec
Module Products.CMFCore.FSPageTemplate, line 124, in pt_render
Module Products.PageTemplates.PageTemplate, line 96, in pt_render
- <FSPageTemplate at /Plone/DynamicPage_editLists used for /Plone/internet_strategy/index_html>
Module TAL.TALInterpreter, line 189, in __call__
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 663, in do_useMacro
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 408, in do_optTag_tal
Module TAL.TALInterpreter, line 393, in do_optTag
Module TAL.TALInterpreter, line 388, in no_tag
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 694, in do_defineSlot
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 408, in do_optTag_tal
Module TAL.TALInterpreter, line 393, in do_optTag
Module TAL.TALInterpreter, line 388, in no_tag
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 642, in do_defineMacro
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 686, in do_defineSlot
Module TAL.TALInterpreter, line 233, in interpret
Module TAL.TALInterpreter, line 459, in do_setLocal_tal
Module Products.PageTemplates.TALES, line 220, in evaluate
- Line 140, Column 20
- Expression: standard:'here/static_list'
- Names:
{'container': <PloneSite instance at 03A14770>,
'context': <DynamicPage at /Plone/internet_strategy/index_html>,
'default': <Products.PageTemplates.TALES.Default instance at 0x014C2F30>,
'here': <DynamicPage at /Plone/internet_strategy/index_html>,
'loop': <SafeMapping instance at 232F1890>,
'modules': <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter instance at 0x014BCBE8>,
'nothing': None,
'options': {'args': ()},
'repeat': <SafeMapping instance at 232F1890>,
'request': <HTTPRequest, URL=>,
'root': <Application instance at 03A14110>,
'template': <FSPageTemplate at /Plone/DynamicPage_editLists used for /Plone/internet_strategy/index_html>,
'traverse_subpath': [],
'user': cadmin}
Module Products.PageTemplates.Expressions, line 201, in __call__
Module Products.PageTemplates.Expressions, line 196, in _eval
Module Products.PageTemplates.Expressions, line 103, in render
Module Products.mxmDynamicPage.DynamicPage, line 512, in static_list
Module Products.mxmDynamicPage.DynamicPage, line 496, in list_of_all_content
Module Products.mxmDynamicPage.DynamicPage, line 427, in getDynamicList
Module ZODB.Connection, line 561, in setstate
Module ZODB.FileStorage, line 687, in load
Module ZODB.FileStorage, line 660, in _load
IOError: [Errno 13] Permission denied