Hello Chris,
I think most of these things will require some development but with XWiki scripting
support and API it should be minimal in most cases.
Chris Haynes wrote:
Hello all,
I'm a newbie to XWiki, but have used and developed plugins for another Java-based
wiki. I've got a few days in which to find out what I'm letting myself in for if I
switch from that other Wiki to XWiki.
I've spend a couple of hours reading the web site documentation, but can't find
out if / how certain features I need are supported.
I'd be ever so grateful if someone who knows their way round XWiki could just give me
a quick indication of how much is going to be involved to provide the following features.
Just a quick 'OOB' (out of the box), 'AP' (available plugin), 'DN'
(development by me needed) or similar against each feature I need would be really
helpful.
The application is an on-line training programme for a closed charitable community. The
overall training material is structured into modules. Students have modules
'unlocked' for them on an individual basis as they proceed. Each module contains a
number of chapters, each chapter will be structured into sections for readability - a
section corresponding to a Wiki page.
Now for the unusual (?) features I need:
- Single login shared with an associated Database programme (a servlet), using JAAS.
(Preference is to run database and Wiki on a single Jetty instance, as I have 6 years
Jetty experience).
We don't have a JAAS authentication implementation. To
support it you will need to implement XWikiAuthService.
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/…
- That shared login also supplies user's group membership (student, editor, admin,
etc)
There is an interface XWikiGroupService
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/…
Another option might be to mirror the users and groups from the database into XWiki using
script.
- Info obtained from database indicating which module(s) the student is permitted to view
(could be done by multiple-group membership),
Again you could implement the right
service or use script to mirror the permissions from the database in the XWiki system.
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/…
- Security permissions for individual pages inferred by inheriting permissions from the
module containing that page,
If the modules are each kept in a separate space, you
can set permissions on each space so we can call this "supported out of the
box".
Each page also can have a "parent page" and you can list all children of a given
page. This could be used to represent chapters.
- Inter-page references only shown if user is permitted to read those pages OR
(preferably) alternate paragraph-sized blocks of Wiki text are displayed depending on
whether an embedded link may be followed i.e. IF page_X_can_be_viewed THEN show_text_A
ELSE show_text_B.
Not supported, changing it could be done with script, the easy way
is to use plug in rendering transformations. I don't know much about this topic, maybe
others can respond?
- Output to database programme (by API or HTML call) or to machine-readable log, on
time/date each page viewed by each student, so that student-specific log may be compiled,
We have an activity stream which records such data but I imagine you want it in a
certain format. You could collect the data from the activity stream table or on your own
by modifying a velocity file such as view.vm in the webapp folder.
You can write a special XWiki document with script to supply the data on request then get
the rendered content using XML-RPC, or plain HTTP.
We also support Rest and WebDav but I don't know that they can be used to get rendered
content.
Alternatively scripts can make HTTP requests so you could also push the data to the
database instead of pulling from the wiki.
- 'Print Chapter' command - produces single printable document containing all the
sections (Wiki Pages) comprising that chapter,
Less than 20 lines of velocity script
to include the content of each page in the space.
- The above 'Print Chapter' command to omit any embedded 'eye-candy'
images from that printed chapter (by use of CSS @media ?)
We do use CSS @media for
the printer friendly pages, I'm not a CSS expert so I would approach the problem by
trying to pattern match and remove image tags in the script which bunches the documents
together.
- 'Help me on this topic' button. Sends private email help request to tutor with
hot-link annotation showing the tutor where the student was when help was requested. Must
at least identify location by Section (Wiki Page), preferably identify by paragraph in
section.
If there's one help button per paragraph then it's easy ;)
Seriously though, I think something could be done with Javascript to detect where the user
was when they pressed the button.
We have an email sending plugin so the help button should be easy enough.
Preferable: simple, automatic next page / previous page buttons working through
Write a script to generate a standard page, include the script in each page.
- Quality feedback form at end of each chapter, form data sent to database (see linkage
options above).
You can create a form which submits back to the same page then get
the parameters from the request.
Again you get to decide whether you want to push them to the database or have a cron
script pull them from storage in the wiki page.
Import of pre-written, formatted documents: I've found the XWiki method which uses an
Open Office instance running on the server, but I'm not sure if the virtual server we
can afford has enough RAM to cope with this. Is there any other way of uploading
pre-formatted documents, or of doing the format conversion before upload. I think we only
need simple formatting such as headings, bold, italic text. No tables. Some chapters have
already been written in M$ Word (can't be helped :-(
I would approach this by
running an instance on a desktop computer and importing all of the word documents there.
Then you will have XWiki syntax documents which you can save to the live server or you can
export and import them.
I appreciate your interest,
Caleb
Many TIA,
Chris
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users