00368: add functionality packs
Alternative names proposed for the new WikiStructure: Bundle, Menu, Course
Description: Normally admins add functionality by modifying the core, recipe by recipe or just on their own, then providing the same functionality throughout the wiki and for the entire user base. I'm looking into bundling recipes into purpose-driven sets, each with a subset of the user base in mind.
It's more of my CMS goal, along the lines of organizing the pmwiki distribution that I had suggested to Pm earlier (TODO: add PITS issue).
Normally a wiki group is built to support a group of users with common interests, right? Only that in said group, some people may want more control (+function) and others may want as little things to remember as possible (-function). As they learn to interact with the wiki, people may want to add function (control) or take it away (helpers like the editgui). And it IS currently possible to do that even based on the Author string. However, there's no easy way for an admin to specify what function should be available to whom.
Like for a beginner group I would provide less control and more contextual guidance; for a more advanced group, I'd balance it out while for an expert setting I'd provide lots of control and no 'link' button on the GUI :)
There's lots of research that shows that at different levels and types of expertise from beginner to expert, from programmer to layout designer, etc, people require different functionality in their interfaces. From what I noticed with my users, a wiki with lots of overt features tends to scare new users away.
Originally, I suggested following the current trend of using the existing skins mechanisms to also implement functionality sets. However, Pm notes that's rather unorthodox (marrying look and feel... hmmm...)
Pm, I still believe that look and feel should synch, since you may have some recipe implementing some piece of interface, and most existing skins may not have support for it.
Neil: Users can't switch skins unless you have implemented skin switching, so there is no need to have password protection.
Radu: I guess this is the easiest solution for now. Just provide a common look and feel for the entire wiki.
The idea is: provide different levels of functionality for different wiki groups and different user groups. The esiest way I can see of implementing this at this time, is by placing functionality in skins. Maybe we could later add easily switchable function packs the way we have skins.
Neil: I am assuming that by "group" you mean a collection of users with common interests, and not a wiki group.
Radu: Both actually. Normally a wiki group is built to support a group of users with common interests, no? Only that in said group, some people may want more control and others may want as little things to remember as possible.
I'll also have to look more into WikiFarms. It was on my todo list :)
PRZ: To have a modifiable look or hide some elements, you can have a look at the cookbook recipe SkinConfig. It modifies the pmwiki template to set some elements in <div>
containers and then control the aspect with CSS settings. The purpose was not the same, but you can use a similar method. Though it is better to build a dedicated skin than modify an existing one.
Radu: Thank you PRZ. As I noted, it's easy to place functionality in skins and in various scripts. My issue here is exploring the possibility to bundle a set of recipes in a way that would be as easy to switch as skins currently are. Maybe there's no need to do anything new, just add handling for some ?setfeature=value ...
JoachimDurchholz: Adapting to a single user group is difficult enough. Adapting to multiple sets of users is almost impossible. Implementing this feature will end in a system that satisfies neither, but has additional knobs that one must turn (namely the "expertise level").