i am glad to announce xowiki 0.30. This is a major overhaul of the xowiki package, most likely the biggest change so far. As a result, the package is much more object oriented than it was before and it can be used in a more flexible manner. During development most of the functionality broke, but i hope that i have removed most bugs. The major changes relative to the last release are:
- oo interface to objects:
in order to perform operations on objects, XoWiki uses now in the oo style
methods of these objects (in contrary to use global functions designed to work on
all kind of objects). For example, in order to edit a page called en:test, one can
call now a method edit of test instead of calling the global www/edit.tcl.
global calls (such as getting the rss content of an XoWiki instance) are
methods of the package object (see below) - symbolic interface to objects
XoWiki uses now on each possible place object names instead of object ids
as external interface. Per default media wiki style names (underscore instead of spaces)
are used (subst_blank_in_name is now per default 1).
This is closely related to the point above. - more beautiful links:
Pages can be references now without the /pages/ prefix. instead ofxowiki/pages/en/my_page
one can use nowxowiki/en/my_page
The only current hard limitation is that pages are not allowed to start with "admin/" - configuration management
XoWiki supports now a 2-level configuration. In addition to the
configuration over the folder object (see documentation), package
parameters can be used. The configuration over the folder object
have the advantage to allow computed values, etc. the package parameters
are more user-friendly for non-programmers. The entries in the folder object
take precedence over the values from the package parameters. The following
package parameters are currently supported
index_page
weblog_page
subst_blank_in_name
use_gc (use general comments)
use_tags (use tags, e.g. allow the user to tag pages)
use_user_tracking (track usage of users such as last visited pages etc.)
the last three package parameters allow to turn off various xowiki
features. - inclusion of XoWiki pages in other applications:
In addition to the approach described in
http://www.openacs.org/forums/message-view?message%5fid=459480
one can use now symbolic names for the includes as well without any
need to determine a package_id or item_id on the including side<master>
<property name="title">@page_title;noquote@</property>
<property name="context">@context;noquote@</property>
bla bla bla...
<include src="/packages/xowiki/lib/view" url="/xowiki/en/my_page"> - new class ::xowiki::Package to handle all package-specific calls
and to capture the package specific information - policy management
XoWiki allows to define per instance different policies concerning
rights on operations callable over the web. Only methods that are covered by an policy are callable over the web.
A policy can contain context dependent permissions. The
following definition is the default policy for XoWiki.
It says for example, that the method reindex of the package
requires admin rights on the package id, or that edit of
ordinary pages requires write permissions, whereas an
edit operation of an instance of ::xowiki::Object requires admin rights.
The policy is used for guarding the calls as well as
for deciding what links should be presented to the users.Policy policy1 -contains {
Class Package -array set require_permission {
reindex {{id admin}}
rss none
edit-new {{{has_class ::xowiki::Object} id admin} {id create}}
}
Class Page -array set require_permission {
view {{package_id read}}
revisions {{package_id write}}
edit {{package_id write}}
make-live-revision {{package_id write}}
delete-revision {{package_id admin}}
delete {{package_id admin}}
save-tags login
popular-tags login
}
Class Object -array set require_permission {
edit {{package_id admin}}
}
} - numerous other changes
* default page is now .../admin/list
* improved admin pages (containing date, sortable, warnings)
* update script to get rid of orphan entries created by content_item__new(),
when title is providedThe documentation should be updated during the next days.
Request notifications