=====================
Memory efficiency/performance/scalability improvements; simpler page
types and DTML control; zwiki_plone and default skin updates;
wikimail tweaks; STX images; bugs, fixes, features.
**Upgrade notes**
Control of page types and DTML has been simplified. NB in this
release wikis tend to allow embedded DTML by default. To disallow
it, add a 'no_dtml' property as described below.
The backlinksFor() and pages() methods have changed; Title() is now
preferred instead of title_or_id(); and RESPONSE is no longer
provided in the default namespace for skin templates (see below).
If you have DTML pages or customized skin templates using these
things, they may need to be updated.
If using a catalog, you should add the Title field to your metadata
if not already present. Use of title_or_id is being phased out but
you may want to leave it in your catalog until Zwiki 0.23 to be
safe.
**General**
* page type cleanups and DTML changes: deprecated page types have
been removed, as have the non-DTML-supporting STX and HTML types.
DTML is now controlled as follows: a 'no_dtml' property (value
doesn't matter) on page or folder will disable Zwiki's DTML
functionality below that point. You can set this on the root
folder to disable it server-wide.
NB: non-CMF wikis, and CMF/Plone wikis which don't use the
zwiki_plone skin, are DTML-enabled by default for the moment. The
zwiki_plone skin includes an empty 'no_dtml' method which disables
DTML. To enable it in all your CMF/Plone wikis, you need to remove
ZWiki/skins/zwiki_plone/no_dtml.dtml and restart zope, (or switch
to a similar skin without that file).
* the 'allowed_page_types' lines property is supported again. It
does not prevent setting any type, but is used to restrict the
types offered in the default edit form. All supported types are
offered by default. The type of new pages, if unspecified, now
defaults to the first of the wiki's allowed page types. The
'standard_page_type' property is no longer supported.
* zodb caching improvements for large wikis: many operations which
used to load all or many pages into cache will no longer do so if
a suitably configured catalog is available. This can greatly
reduce cache activity and peak per-transaction memory usage for
large wikis, improving performance and server uptime. Renaming and
deleting are still relatively memory-expensive; more optimizations
to come. To fully benefit, you should have a wiki catalog with
meta_type, id, Title, path, canonicalLinks, isIssue indexes and
id, Title, issueColour, parents, links metadata (IIRC). NB most
wikis don't need to worry about this. See
http://zwiki.org/MemoryUsage for some more details.
* the pages() method now returns catalog brains if possible,
otherwise brain-like objects (if there is no catalog), rather than
(expensive) page objects. It will also pass keyword arguments to
the catalog, if there is one, so is convenient for searching among
the pages of the current wiki (only). pageObjects() provides the
old behaviour.
* likewise, backlinksFor() now returns either catalog results or
similar brain-like objects. Old custom backlinks templates should
still work without upgrading, except in this (unlikely) case: when
there is a catalog with meta_type, path, and canonicalLinks
indexes but without page_url and linkTitle metadata.
(with help from Magog)
* the rendering code uses a simpler, more memory-efficient
pre-rendering and pre-linking scheme. The relative_urls property
is no longer supported.
* DTML-enabled pages now invoke DTML only when there is code in
the page, to avoid unnecessary parsing and reduce our memory
footprint.
* wiki link titles (last edited info in tooltips) have been
disabled for the moment.
* three new boolean properties are supported, on page or folder:
use_wikiname_links, use_bracket_links, use_doublebracket_links,
for configuring your linking syntax of choice (lightly tested).
You'll need to run /clearCache or /upgradeAll after changing these.
* be smarter about choosing where to store uploaded files - when
checking for the "uploads" subfolder, make sure it is a subobject
of the wiki folder, and make sure it is folderish.
* we support the STX :img: syntax, finally (IssueNo0601, etc.)
* bare urls containing ; (semicolon) are now recognized
(DeanGoodmanson)
* renaming fixes: add or remove brackets when appropriate; when
updating links, tolerate edit failures (eg due to regexp
recursion); also replace changed ids
* pages are now reindexed after being reparented, when a catalog
is present
* catalog lookup behaviour has changed:
"By default, Zwiki looks for an object named 'Catalog' in this wiki
folder (will not acquire) or a 'portal_catalog' (can acquire).
If a SITE_CATALOG property exists (can acquire), Zwiki will look
for an object by that name (can acquire); if no such object
exists, or SITE_CATALOG is blank, no catalog will be used."
* new catalogId() method returns id of the catalog in use, or
NONE. Requires 'Manage properties' permission.
* hasCatalog() is now public
* getPath() is now supported
* Title() is now always provided and is equivalent to pageName().
Use of title_or_id is now deprecated; DTML pages and skin
templates should use Title instead, to take best advantage of
future catalog optimizations etc.
* other misc. new methods: pageName(), summary(), size(),
cachedSize(), cachedDtmlSize()
* ChangeLog is no longer provided in releases for the moment, to
simplify maintenance
**Skins and content**
* RESPONSE is no longer provided in the namespace for DTML Method
skin templates; they must use REQUEST.RESPONSE (code simplification)
* new methods recentchanges(), searchwiki(), useroptions() provide
experimental skin-based implementations of these wiki pages, which
can be used when DTML pages are not allowed. The included
implementations are preliminary and unskinned (but customizable);
they are DTML methods so as to reuse code from the evolving
page-based implementations, but you can also use page templates.
* if a SiteMap page exists, the "site contents" link in full mode
will point there instead. Also contents() now accepts a 'here'
page name argument to allow this page to control the "you are
here". See http://zwiki.org/SiteMap for an example.
* default skin: reduce subject field width again to "fix" too-wide
comment form
* default editform: show the page rename field as in the plone skin
(but display only if the user has rename permission)
* default search field & SearchPage: use GET when searching, for
more useful URLs
* default, zwiki_plone editform: show the STX and HTML page types
with "(+ DTML)" when DTML is allowed
* default, zwiki_plone editform: clear the "sticky" last log note when
creating a page
* default, zwiki_plone subscribeform: fix other subscribed page links
* zwiki_plone: initial cut of a wiki navigation portlet for Plone.
(AlexanderLimi)
* zwiki_plone: Added File Uploads Overview template (AlexanderLimi)
* zwiki_plone: made the wiki editform explanation more clear.
(AlexanderLimi)
* zwiki_plone editform: make the convenient alt-s (save) key work
again
* zwiki_plone: fix links in ancestor list
* content/basic/RecentChanges.stxdtml, SearchPage.stxdtml,
UserOptions.stxdtml, and content/tracker/IssueTracker.stxdtml,
FilterIssues.stxdtml: latest catalog-optimized versions from
zwiki.org
* content/basic/SearchPage.stxdtml: remove other search tools for
now
**Mail and messages**
* fix message id inconsistencies preventing proper threading in
mail clients (IssueNo0587)
* mailout policy change: don't mail out page rename and deletions
with default 'comments' policy. Also don't mail out when
placeholder pages are created during rename.
* don't put brackets around mail sender's name in message
headings.. too clever
* the 'auto_subscribe' option now automatically subscribes a
page's creator, as well as commenters. Also it's possible to use
this property on a page now.
* the subscribe/unsubscribe methods now support a redirectURL
REQUEST parameter, which makes them more flexible
* fix unicode/UnixMailbox problem. Comments made on the
place-holder page left after a rename would not appear, since the
text was unicode. Removed the i18n for the moment so this works.
* try a fix for non-formatted comment headers in certain timezones
(IssueNo0552)