You are not logged in Log in Join
You are here: Home » Members » TheJester

Log in
Name

Password

 

TheJester

Up one level

 Title   Type   Size   Last Modified   Description 
Managment for RSS Channels Software Package   2001-04-09

This is the Channel Management product, for managing and displaying RDF and RSS news summaries found on many popular portals (including zope.org).

It is a two part product, consisting of a Channel Management product that must be installed, and the tag used for displaying channels.

Install a Channel Management product at the head of your document tree, it will install several channels by default, (which you can delete at your leisure).

There is a default method installed for display channels called showChannel. It is deliberately ugly so that you will change it d8) You can provide a default template by using showChannel, or you can customise individual channels by adding in a showChannel DTML Method underneath that particular channel (you can add images etc under here as well if you wish).

If you want to delete a channel, you can simply delete it using the standard management interface underneath the Channel Manager.

The <dtml-channel> tag takes one parameter show which is an expression. You can pass in a single Channel Id, or a LIST of Channel Ids, so you only display those channels you are interested it (or subscribed to if that's how you're using it to provide content to users).

The Channel Manager also provides a listChannels() method so you can iterate over the list of channels if you want and display them individually.

The Channel Manager allows you to set the number of items displayed for each Channel, 0 means display all the items returned by the remote site. This can get noisy for some sites, so you can set this to 5 or 10 or whatever for a more compact display.

This product is based on the slashbox code, and requires xmllib and sax et. al. to be installed.

The Stupidest Zope Product Ever Written Software Package   2001-04-30

IrcBot for Zope The Stupidest Zope Product Ever Written.

WARNING: This product interacts dangerously with your live Zope ZODB, if you want to install and run this product you are completely crazy. If you've ever had a corrupted Data.fs file, then you know the possible pain you could be letting yourself in for.

OK, upward, and onward.

I have no idea if this will work under Windows, I seriously doubt it, don't bug me about making it work under windows if it doesn't.

This is an IRC bot that is managed from Zope, and includes a mini-irc client in it that uses Javascript (I didn't spend too much time on this, its more of a proof of concept), to update things like user lists and the channel data. Also some of the framing is hosed :-) needs a bit of a tidy up, but, you use this to "Auth" users to the system, which is to assign them a user level, and allows them to interact with other plugins.

Features are added to the bot via the Plugin system that's available, there are several plugins supplied by default that illustrate different things, most of them allow you to run multiple copies of them if you want to do slightly different things.

  • Log Plugin Logs various channel events, to a Zope structure, and creates searchable logs if you have a ZQuadSex indexer installed.
  • Op Plugin Shows parsing join info and message information
  • Faq Plugin Logs questions and answers to a database for later searching via IRC
  • Fortune Plugin Not really specifically for fortune, executes a command and returns the output back to IRC. Caches the output and prevents multiple calls within a user definable timeframe. Could just as easily be used to ping a site or anything else.
  • User Info Plugin A simple plugin that lets you set attributes on Authorised users and play them back.

Authorised users can /dcc send files to the bot, and they will be stored in the User's Home Folder, they can fetch them later via http. DCC uploads are handled asychronously so they don't lock the bot up. The IrcUser class could be extended possibly with a Membership product to create a mini-portal where people can store and retrieve files, and display stuff from the UserInfo plugin.

Basically I wanted to find out how to get live action happening with Zope, and an IRC Bot is something that can get hammered by others to cause the transaction machinery to fail for me. I didn't want to go via ZEO.

There is an IrcRegistry created in the Root Folder. This is how the bot communicates with the IrcChannel you create. If you run into problems, you can delete the IrcChannel (which force quits the bot), and the delete the IrcRegistry which will prevent it from starting. You can then delete the product from lib/python/Products and you should be ok.

Known bad things: -----------------

The Registry uses the id of the IrcChannel you create, which isn't guaranteed to be unique, we should use absolutePath to create a key that both parties know and can use -- pretty trivial to fix.

Some of the interactions with ZODB don't quite work, there's a problem in particular with the Log Plugin, when it creates a new Days' Log. Restarting Zope if this happens cures all ills -- (some transaction gets committed or something), there shouldn't be any Conflict Errors left, but, with threads and networking who can tell reliably d8)

There is a global event lock, so running more than one bot at once probably won't work the way you want it to, also pretty simple to fix.

It doesn't detect when it gets disconnected from the server, (although adding a hook for the disconnection numerics is trivial to add, I'm just not that interested in going overboard).

Some of the plugins could do with more management interface cleanup.

The Poll Tag Software Package   2002-07-09

The PollTag is a two part product, that consists of a tag (for rendering) and an Poll Administrator that manages the Polls and the questions.

You must add an Poll Administrator product somewhere in your tree. You should add some questions at this point to test things out.

Get comfortable with the administration features of the poll.

Find your favourite DTML Method or Document and insert in it to see the currently active poll.

When voting you will be returned to the current page and the selection made will be hilighted.

At the moment I seem to have porked multiple-vote checking so people currently can vote their hearts out.

The Portable Hole Product Software Package   2001-11-23

Portable Hole is a way to place a Hole in your ZODB from one point to another. Or to a place to stick objects from another part of your ZODB into.

There are only two restrictions. When using point to point mode, the source must be Folderish.

A Portable Hole must not be able acquire itself. Doing so will cause your universe to collapse. Well actually it checks for this, since Portable Holes have a strong sense of self preservation, and will not allow itself to be created in such a manner.

Due to these restrictions, you also may not cut, copy, or paste a Portable Hole, you can only create or remove them.

You can repoint a Portable Hole with the above restrictions, obviously not in point-to-point mode since your manage tabs will be those of the remote item.

It would also be better served to have a nicer interface rather than typing in the full path names, I'm sure some enterprising soul can write a nice tree version

Stephan Richter has donated the TreeBrowsing JS code from ZOQLMethods for me to use in Portable Holes, so now you can choose or type in the objects you want

It's actually a well commented example of how to mess with the Zope Traversal mechanism for fun and profit. It's not the mythical symlink product, since it can only cope with Folderish in point to point mode (although you can add any object types in bag mode)

There's one other gotcha. If you have a TransparentFolder in the root of a Point to Point hole, it'll work like a normal folder while in the root. If you traverse one level down, it will work as a Transparent Folder, if someone works out how to fix that, let me know.

No Coyotes were harmed in the making of this product.

For Those Of You Still Confused
A Portable Hole works in one of two ways. In Point to Point mode it acts exactly as if it were a (hard|symbolic) link for a single Folderish Object.

In Bag Mode, it acts as a directory full of (hard|symbolic) links of any type of Object from anywhere in your ZODB (each object can be independently added)

My Product Manger Software Package   2001-11-29

This is my first cut at building a Product Manager for Zope.

It is by no means complete, but, it is functional, it will definitely have bugs.

ONLY USE WITH A SCRATCH ZOPE INSTALL OR FROM AN INSTALL YOU'RE HAPPY TO RESTORE FROM BACKUP TAPES.

YOU HAVE BEEN WARNED

There are two modes of operation, only one of which is currently implemented.

Concrete Mode: This is where the package meta-data is inserted into an archive with the package. The package can then be directly imported by the Product Manager.

Virtual Mode: This is where a list of download sites for the data is supplied, and the Product Manager fetches the archive and unpacks it itself. This is the only mode currently supported.

  • Generating the metadata for the available products. It's possible to do this one product at a time, but, there's nowhere currently that generates the meta-data necessary. There's a demo xml in the root directory you can import.
  • There's no external dependency handling, I need to add that in, but, I'm not sure of the best way to go about that. I can simply list the external dependecies to the user, and make sure they know they have to install those things.
  • It needs a post-install script function to hook into distutils in case things need to be built.
  • It asks for database dependencies, but, doesn't check for installed DAs to prompt you to install one if you don't have a relevant one installed. It also asks for platform, cpu dependencies, but, doesn't check those either.
  • Zope should also be a dependency, and it should eliminate those products that don't work with this version of Zope. Python should also be a dependency as well I suppose.
  • It only really handles installing Products, it needs to be extended to deal with .zexp files, and Extensions. I'll probably need to gather some more meta-data to fix this up. Hotfixes need to be handled too.

It does do somethings though;

  • It handles specified dependencies, and all version of a product are stored, so you can specify an older dependency if something doesn't work with the latest and greatest version.
  • It handles listing multiple download sites for fetching the archives.
  • It handles .tgz, .tar, and .zip, I'm not sure if it'll work for windows or macs, I hope it does.
  • You can install or upgrade a product without restarting (although the mechanism by which it does this, is somewhat err dodgey, so be warned). In my tests it's worked fine for me, without any adverse effects.
  • You can import one product, or the whole tree (or a subset) including the fixed meta-data types.
  • You can export your whole tree, or a sub-set.
  • Importing/Exporting is done using xml_pickle, so objects are fairly simple to build by hand (if you really have to), or to create from a script.
  • You can ZODB or (Postgres) RDBMS backed. ZODB is quick, but, isn't as flexible in its implementation. SQL is slow, but, is more flexible in its implementation, which will allow better searching (when that gets done).
  • You can browse and install products by catgory.
  • You can see what products are installed, and what the Control Panel sees as installed.

TODO:

  • General clean-up -- the code is somewhat weird so that the same set of dtml files can be used by both ZODB and SQL interfaces.
  • ZODB mode re-written in a cleaner more flexible fashion o SQL mode re-written in a faster fashion o Product Search option. o Partial DB syncing (give me everything new or changed since yyyy-mm-dd) o Uninstalling. we can store the manifest when a product is installed. o Post Install scripts to allow setup or building of extensions o Partial Exports. o Bulk Install. o Concrete Package Creation, where the metadata is stored with the package, so you can simply upload the file into Zope and have it installed. o Hotfix, Extension, .zexp handing o Upgrading Zope source installs. o Proper dependency handling (minimum version, maximum version, recommended (version) o HTML Interface fixes esp. dependencies.
RandomJunk Folder   2003-07-07  
Resume Folder   2001-05-04  
Squib Forum for Zope Software Package   2001-10-26

This is Squib, an SQL backed Message Board for Zope. If you don't want an SQL backed Message Board, then don't bitch at me, simply use one of the other products out there.

First off, it looks like crap. I make no apologies for that, it needs someone to come up with a decent way to make themes, that automatically generates stylesheets (in some simple manner), that can be embedded in a product. I don't know enough about CSS or cross-browser stuff to do this.

Second of all, it's as buggy as hell. There's some functionality missing, such as support for approval-required moderated discussions, multi-moderator Forums/Topics etc. The tree state for tree-view should be pushed as a temp property, rather than encoded in the URL. Some things go back to places you don't expect, and some stuff is just weird. These are problems associated with trying to map things from the db as if they were real objects in the ZODB mostly.

You need to have exUserFolder installed, it uses the XUF property stores to get and set the various user preferences.

It currently uses postgres, but, it wouldn't be too hard to make any other schema to make it work, I've tried to keep the SQL fairly simple, there are no complex JOINS or SUB-SELECTS.

There are two modes of operation. You an add a Squib Forum Directory. This allows you to further categorise your Forums, if you intend on having lots of forums this is where you want to start.

You can add a Squib Forum. This is just the Forum, Topics, and Threads. If you just one or two message boards this is for you, normally because you want to attach discussion to some kind of object. The user config stuff that's available from Forum Directory is missing, although you can add smilies and avatars under the Forum. It's assumed you'd have that elsewhere (like in your portal or something).

Squib supports a subset of what's commonly known as BBScript. This is a way for embedding markup into the messages. What's allowed is configurable at each of the levels down to Forum. You can enable BBScript for both messages and user signatures, and what's available in each can be configured individually.

I don't have enough space here to upload Squib, I've abused my metazope account and put it there until they hunt me down and kill me.

Oops, you can't access member directories there.

errr - ok I've deleted a crap load of the faces (future releases probably won't have them anyway).

As the release number says it's 0.0.0. Don't expect it not to have serious bugs.

Widget Framework for Zope Software Package   2000-07-23

WiFLZ Widget System for Zope WiFLZ is a dtml widget framework for Zope. If you are a programmer, you will probably hate it. It's not called ZWiFL because I was sick of things starting with Z d8)

Summary =======

  • Widgets consist of; - header, body, and footer dtml, - optional arguments for the dtml template, - sql query, - optional arguments for the sql template, and - description field for built-in help facility.
  • Widgets can be tested from the management interface. o Widgets can be ZODB backed, DB backed, or both. o Widgets can be optionally rendered to a DB effectively caching widget states, which is useful for slow changing, or time consuming things such as reports. o Cached Widgets have a configurable TTL. o DB Backed widgets can be grouped into different libraries, and can be called from specific libraries allowing test widgets to be setup without compromising production widgets. o DB Backed widgets can be edited from any Zope installation with access to the DB.

Purpose =======

This is part of a broader system for site design still under development.

Zope currently lacks a mid level reuse facility, reuse is limited to very fine grained (individual methods, and documents), or very coarse grained (products) elements.

Content managers also like to be able to build components that can be used in different parts of the site, and they like to be able to hold those components.

This system does not remove the ability to have fine grained reuse, as all of the dtml stored is resolved, so any methods you have developed can be used in a widget (e.g. incorporating ZBabel translations into widgets).

Installation ============

Unpack it in your top-level Zope directory. This should create a directory named lib/python/Products/ZWiFL/ containing the product files as well as this README file.

There is a file for the minimum tables you require to run ZWiFL in DB mode, called ZWiFL.sql. These are MySQL specific, but, should be easily adaptable to any other database. Create the tables in the schema file (MySQL users can just type mysql Database < ZWiFL.sql).

If you only intend to use ZODB, and no render caching you do not need to install these databases.

Usage =====

As mentioned this product has three seperate components;

Wifl Component Wifl Component Library dtml-widget tag.

Wifl Component --------------

This is the workhorse of the product. The Wifl Component has a rather large creation form, don't let this scare you, it consists of the following items:-

id: This is the same id that all Zope Items must have title: This is the title for this component

DTML Arguments: These are used to define variables that will be used inside your DTML. These arguments are normally only used for the Test interface to allow you to test your widget, but, also provide an good indicator to people using your widget what variables should be set.

DTML Header: This dtml will be rendered before your DTML Body. If you use an SQL call that returns many rows, this will be called once at the start of your widget, and will be called regardless of the number of rows returned by your SQL call.

DTML Body: This dtml will be rendered once for each row that is returned by your SQL call.

DTML Footer: This dtml will be rendered after your DTML Body. It will be called once, after the header, and body, are processed.

SQL Arguments: These are arguments, the same as ZSQL Method arguments. You need to define any arguments you wish to use in your SQL Template here.

SQL Template: This is the standard ZSQL template. Anything you would normally be able to use in an ZSQL Method can be placed here.

SQL Connection: This is the SQL Connection for your SQL Template.

Component SQL Connection: Selecting a DB here will force your widget to be DB backed only. If you want to have a ZODB or dual mode widget, leave this blank. If you choose to make your widget DB backed at this point, you will need to install a Wifl Component Library to access it.

We will review the management interfaces a little later.

Wifl Component Library ----------------------

This is a Folder object that allows access to DB Backed widgets. You can use it to access widgets written elsewhere. It's purpose is to provide SQL services to the tag, as well as to allow editing and configuration of DB Based widgets.

tag -----------------

To access your DB backed widgets you will need to make use of the tag. Usage is quite simple:-

ctag: the id of the component to render. lib (optional): the library to pull the tag from. If you have multiple libraries installed, the dtml-widget tag will try to pull the tag from the first library it finds, unless you specifically name a component library.

help: if this parameter is set, it will return the description field of the widget. Hopefully your widget designer will describe the widget arguments :-)

Calling ZODB backed Widgets ---------------------------

Calling ZODB backed widgets is the same as calling any other method;

To access the help for that widget;

Management Interface for Wifl Components =========================================

There are only three tabs that are specific to the Wifl Component, they operate the same way for ZODB and DB backed widgets;

  • Edit o Advanced o Test

Edit Interface --------------

The edit interface is the same as the create interface, and all fields hold the same meaning.

However, if you have a ZODB backed widget and you choose to pick a Component SQL Connection, then this widget will be dual mode from now on. That is it will appear both in the DB and the ZODB.

If someone chooses to edit the DB backed one through a Wifl Component Library, then the changes will be stored in the DB only. The next time you change your component, their changes will be over-written.

You can change the Component SQL Connection to store it in a different database, so you can develop using a test DB, and when finished write it to the production DB if required.

Advanced Interface ------------------ This is a simple interface it has only three elements;

Cache Rendered Widget: tick this box to cause the widget to store its results into the database the next time it is viewed.

Time to live: This is the amount of time you want this widget to be used out of the database in seconds. After this time has expired a new version of the rendered widget will be stored into the database.

Component SQL Connection: This has the same meaning as it does on the other pages. You must pick a connection, and this will force your widget to be dual mode if you have made a ZODB based widget. This is not a bug, this is the way I wanted it to work. This allows me to see what widgets the cache matches to. If you never use the SQL database to pick widgets then this will not affect your performance.

Test ---- This will present input boxes for each variable you defined in both DTML Arguments and SQL Arguments. Pressing the test button will show you the output of your widget (and cache it). The cache should probably be invalidated after edits, but, it isn't, so you will see a cached version, which if you have a long-running widget, will show you that the caching is working (if its cached).

Work Order and Project Tracker Software Package   2001-09-23

This is a task tracking application. It uses the notion of states to track a task through to completion, and the notion of state transitions to limit what states a task can go to from any state.

Each state also has a flag indicating whether or not that task is in a resolved state or not. This allows for reporting on unresolved vs resolved tasks for any time frame.

Each state has a date associated with it to determine when a task reached that state, and tasks have a start date (automatically assigned when opened), and a closed date (assigned when closed or rejected).

It makes use of Postgres heavily, and requires exUserFolder.

There is no reporting, or public browser functions in this release. The public browser should be simple for those wanting that type of interface, as should a search facility.

Obligatory Screen Shot

ZBabel Translation System Software Package   2001-09-19

I am here-by going to bless Stephan Richter as the as the new maintainer of ZBabel, he's doing far more work on it, than I ever could, and has driven the development for the past 12 months.

Stephan's Site for ZBabel is here

This is the ZBabel Translation System for ZOPE, the Z Object Publishing 
Environment (http://www.zope.org/)

This is a phrase by phrase translation system, it allows you to translate key parts of your site, and the content if you desire. With this you don't need to maintain seperate source for each supported language, or mix different languages in your source. You can do your entire site in one language and then translate it without re-editing the source code.

This system also automatically creates the catalogs as you go, you do not need to manually insert text strings into databases for translation.

  1. 0.2 and above now feature caching of phrase lookups using the ZOPE ZSQL Caching mechanism.
  2. 0.3 now actually lets you use variables for source and destination languages (I'm a duh head ...).
  3. 1.0 has some huge amount of rework done by Stephan Richter see Changes for details of all the work he's done.

You can now use <dtml-babel src=var&rt; or <dtml-babel src="expr"&rt; or <dtml-babel src=string&rt;

This product now extracts to simply ZBabel, not lib/python/Products/ZBabel.

Helps you to ZBabel your product Software Package   2001-10-31

Note: This is not a product in its own right!

ZBabel Helper is a file you can include in your product to provide dummy dtml-babel and dtml-fish tags so your product can be installed at sites that don't run ZBabel.

This means you can safely build a product that uses ZBabel for translation and localisation, without requiring ZBabel at sites that don't need it.

Simply uncompress it into your Products directory and import it. It will try to import from ZBabel. If this fails it will provide the dummy tags that return the default text.

I anticipate this will be folded into ZBabel at some stage, but, for now you can download it here.

Dynamic Button Generation Software Package   2001-09-25

This is a two part product, it consists of an Image Factory product, which caches the generated images, and a tag that is used for generating said buttons.

The README file contains the example code from the ZButton Demo page, but, you'll have to fetch the template I used (the URL is in the README).

This product REQUIRES PIL, it's tested with 1.1.1. you also need jpeg support (paletted image support in PIL really sucks) Consequently the following things that I'd really like to have are missing;

  • Transparent backgrounds o True/Free Type support.

If someone motivates me enough (pays me to), I might be convinced to create a write filter for PIL to write out transparent PNG files. If one appears in PIL that doesn't have absolutely crap palette reduction, its pretty simple to fix Buttons to use it, and transparent backgrounds will be available.

PyFT doesn't support the latest FreeType libraray that comes with XFree-4, and I wasn't going to destroy my workstation after spending eons getting the way I like it, just for buttons d8)

If a later version of PyFT comes out, I'll look at using True Type fonts.

This is a large product, because it contains all of the 75dpi X fonts on my system, these fonts are unencumbered, and have been pre-converted to work with PIL.

Once you've installed an Image Factory somewhere in your tree.

will give you a nifty usage page.

All arguments to are expressions... that means literals need to be enclosed by "' '" to make sure they don't clash with Zope Ids you might have. While this is annoying if you hard code buttons, it's quite nice if you generate them, which I expect the normal case to be.

Zope Quick and Dirty Search Engine and Indexer Software Package   2001-11-23

ZQUADSEX: Zope QUick And Dirty Search Engine and indeXer

What's it for?

Well it's for making a search engine, based on content you provide, either by

  • Submitting URLs to be indexed (which are not stored), o Uploading files to be indexed (which are not stored), o By using the block tag to submit content for indexing.

Using it:

Install a Text Indexer product in your tree somewhere. Then you can submit URLs, or Files to be indexed into it (via dtml if you want).

You can also use to wrap content to be indexed.

URL/Tag based indexing uses the absolute_url() to determine an ID for it, so if you use variables to alter the display of your page, then you'll need to do some work to get it to work.

** Warning: the stats page has some code commented out, uncomment it for an interesting view of your index, but, it'll take a long* time to render.

------------------------------------------------------------------------ You can specify the default search mode:

  • And Mode: all words in a query must match o Or Mode: any words in a query can match

You can override the search method dynamically if you want to.

You can specify an amount of text to keep as a summary. You can specify a threshold (as a percentage of the total) for words to ignore in searching. Ignored words do not abort an and search.

You can specify a minimum period of time before reindexing occurs (useful for .

  • Indexing does not occur if content has not changed since last indexing.
  • URL indexing removes html tags before indexing so font and td don't end up being the most frequent words in your index.

Indexing is quite slow, but searching is quite quick, queries on 40Mb of data (that is data submitted to be indexed), takes on average less than .5 second.

Can I do advanced searches? Short Answer: No. Long Answer: Yes.

Can it be made faster? Yes, it's not particularly optimised right now, there's quite a few things that can be done to make things run quicker, smoother, nicer, pick your superlative.

Will you eventually do that? Probably not, unless someone wants to hire me to work on it, its sufficient for my needs right at the moment (although I do have a version thats tweaked for my dataset).

ZWeather Software Package   2001-11-23

This is the ZWeather Product. It consists of a management product, and a tag for displaying the weather in a pleasant format.

There is also an External Method (weather.py) which you can use to drag down raw weather reports if you desire, but, it's only really there for looking how things work.

The weather items are self-updating, based on the update frequency set for the Weather Management product.

Updating can be extremely slow, so if you want to run a large number of weather items, this is what you should do;

  • Mirror the (relevant) METAR data to a local FTP area o Set host and data path in the Weather Management product to point to your mirror.

This will alleviate bad stalls when people are viewing pages with weather information on them that has to be updated.

The default view is somewhat ugly (on purpose), to encourage you to change the showWeather method that is present under the Weather Management product. It does serve as a pretty good example of what's available, and how to get at it.

The weather tag is easy to use:-

for metric or

or for imperial units.

When adding a new Weather item
if you set the GMT/UTC offset, you can get a different set of icons at "night time" (1800 - 0600) than "day time" these are arbitrary limits because I really can't be bothered tracking sunrise and sunset just to change the icons dead on :-) Setting it to zero will result in the icons changing around UTC time which is probably not what you want.

You can add a showWeather DTML Method to any individual Weather item if you want that one to display differently from the group.

METAR Codes can be found at: http://www.nws.noaa.gov/oso/oso1/oso12/metar.htm

as well as in the nsd_cccc file in the ZWeather Directory
which contains a lot of other data to boot (it isn't used by ZWeather though), I put it in there just for something to look at.

You can look up stations by US State, or by Country in the rest of the world by going to; http://www.nws.noaa.gov/oso/siteloc.shtml

I don't remember where I found the weather icons, I've got a boat load of icons sitting around from various places.

Extensible User Folder Software Package   2003-07-07

Extensible User Folder

We're now on SOURCEFORGE, with mailing lists and bug trackers etc.

http://exuserfolder.sf.net/

Extensible User Folder is a user folder that requires the authentication of users to be removed from the storage of properties for users.

It also now has an optional membership layer that sits above the authentication and property source layers.

Writing new authentication or property sources is (almost) a trivial operation and require no authentication knowledge to write, most simply return lists of attributes, or dictionaries. You don't need to incorporate them into the base exUserFolder code, they can be written as normal Zope Products, (i.e. you can distribute new sources independently of exUserFolder).

You can mix-n-match authentication methods and property methods.

You can have cookie or standard (Basic) authentication.

Arbitrary properties can be set on a user (at least if the PropertySource is written correctly they can).

As of 0.10.0 exUserFolder now supports ZBabel for I18N. XUF in English The same XUF in German

Check the changelog for instructions on installing ZBabel support.

FAQ

Hacked zodbcda Software Package   2001-10-17

Hacked version of ZODBCDA to work with unixODBC

Upload and Download Monitor Software Package   2006-02-13

Example product showing how to monitor uploads into Zope.

Compiled Page Templates Software Package   2006-03-23

Compiled Page Templates is a Zope product that you can use in place of Zope Page Templates (including PageTemplateFile), to get a performance boost. They operate just like regular Page Templates.

AU Timezones for Zope Software Package   2006-04-12

Monkey Patch to Zope DateTime to correctly use Australian Timezones that clash with US timezones.

Zope Frontend for Trac Folder   2006-05-11

This is a Zope frontend for the Project Management software trac from edgewall.

Patch Zope to have access to the sendfile system call Software Package   2007-03-19

Monkey patches Zope's RESPONSE object to allow access to the sendfile system call, allowing you to serve static content a lot faster.