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/java/com/xpn/xwiki/user/api/XWikiAuthService.java > > - 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/java/com/xpn/xwiki/user/api/XWikiGroupService.java 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/java/com/xpn/xwiki/user/api/XWikiRightService.java > > - 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 > [email protected] > http://lists.xwiki.org/mailman/listinfo/users > _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
