Personal tools
Skip to content. | Skip to navigation
BTreeFolder2 is a Zope product that acts like a Zope 2 OFS folder but can store many more items. When you fill a Zope folder with too many items, both Zope and your browser get overwhelmed. Zope has to load and store a large folder object, and the browser has to render large HTML tables repeatedly. Zope can store a lot of objects, but it has trouble storing a lot of objects in a single standard folder. Zope Corporation once had an extensive discussion on the subject. It was decided that we would expand standard folders to handle large numbers of objects gracefully. Unfortunately, Zope folders are used and extended in so many ways today that it would be difficult to modify standard folders in a way that would be compatible with all Zope products. So the BTreeFolder product was born. It stored all subobjects in a ZODB BTree, a structure designed to allow many items without loading them all into memory. It also rendered the contents of the folder as a simple select list rather than a table. Most browsers have no trouble rendering large select lists. But there was still one issue remaining. BTreeFolders still stored the ID of all subobjects in a single database record. If you put tens of thousands of items in a single BTreeFolder, you would still be loading and storing a multi-megabyte folder object. Zope can do this, but not quickly, and not without bloating the database. BTreeFolder2 solves this issue. It stores not only the subobjects but also the IDs of the subobjects in a BTree. It also batches the list of items in the UI, showing only 1000 items at a time. So if you write your application carefully, you can use a BTreeFolder2 to store as many items as will fit in physical storage. There are products that depend on the internal structure of the original BTreeFolder, however. So rather than risk breaking those products, the product has been renamed. You can have both products installed at the same time. If you’re developing new applications, you should use BTreeFolder2.
CacheFu is a collection of products which aggregate and simplify various caching settings, speeding up Plone sites using a combination of memory, proxy, and browser caching. CacheFu can be used by itself or with Squid, Varnish, and/or Apache. Configuration files can be generated for Squid, Varnish, Squid-behind-Apache, Varnish-behind-Apache, and Apache cache proxy (if you are using a non-caching Apache by itself or just Zope-only, no extra configuration files are needed).
The Zope ClockServer product provides a mechanism for users to call Zope object methods without the use of an external clock source (e.g. cron/wget). It operates by acting as a medusa "server", essentially coopting Zope's asyncore mainloop and injecting "fake" requests into Zope's ZPublisher. Despite the complicated description, it's rather easy to use.
The action icons tool provides a centralized registry mapping CMF "actions" (identified by their category and ID) to additional presentation metadata (display title and icon). The skins here show alternative mechanisms for using this metadata within a site template.
The CMFCalendar product is an example of creating a CMF Product. The CMFCalendar product is also expected to be a generally useful *out of the box* and skinnable to accomodate customization within your existing CMF instance. To see how to go about building a CMF product, this hopefully allows a developer to follow through the process of registering their product, skins, and help with the CMF by example. It shows how an object is created and registered with the types_tool, necessary skins added to the skins_tool, with the Calendar skins directory added to the skin paths, and providing portal_metadatool with an Element policy for the content_type of the object. For installing set the *active site configuration* of your site's setup tool to the CMFCalendar profile and import all steps. After installing the CMFCalendar you should notice a calendar appear in your CMF. This is fully customisable to your portals needs.