Tech:Virtual Wiki Enhancements

[Edit]Description

This is a discussion for the scope and features of virtual wikis.

[Edit]Current Features

  • add wiki
  • change wiki start page

[Edit]Requested Features

  • remove a wiki
  • not modifying the web.xml file when adding a wiki
  • different website titles per virtual wiki
  • rename an existing wiki without having to remove and create
  • rename the default en wiki revision 2981
  • user permissions per wiki or groups of pages

In addition, favico.ico support would be nice to have. This can be done via <link rel="shortcut icon" href="/somepath/myicon.ico" />. -- Ryan • (comments) • 28-Jul-2010 22:01 PDT

[Edit]Possible solutions

  • remove virtual wikis - install a separate JAMWiki instance for each one
    • wastes resources
    • requires multiple logins
  • namespace separation only (current) - pages are available at separate URLs but they are not treated as separate sites (titles, stylesheets, language, etc)
    • can't restrict user access per wiki
    • not truly different wikis
  • full separation - each wiki has it's own ACL and site like properties
    • may require significant recoding
    • most users only need one or two wikis

[Edit]Status

[Edit]Comments

To add some background: virtual wikis are a feature carried over from the original Very Quick Wiki fork. While many of the features of Very Quick Wiki were stripped out, virtual wikis seemed quite useful (although I don't personally use them, they have proven to be very popular). The idea behind a virtual wiki is that often a user wants two separate wikis (for example, for two separate languages) but wants to share the infrastructure (logins, etc) for those wikis. As a result virtual wikis share logins, permissions, etc, but otherwise behave as two distinct installs. There is a great deal of room for discussion about how much granularity there should be for virtual wikis (which this page handles well), but I'm not sure that there would be an advantage (for example) to having virtual wikis that don't share user logins since a site admin could simply create two separate wiki instances to achieve the same result. Thus any discussion of enhancements to virtual wiki functionality should probably focus on slightly modifications to the existing implementation by allowing renaming, removal, etc, of virtual wikis (the second option above) rather than trying to create an implementation that could be more easily achieved with two separate wiki instances.

I think that's the goal of this proposal, but I just wanted to clarify since there is some language about making radical changes that might simply offer functionality that could be achieved using separate wiki instances. -- Ryan 02-Jan-2009 15:43 PST

Having had a bit more time to look at the proposals here, I like the following:

  • remove a wiki
  • not modifying the web.xml file when adding a wiki
  • different website titles per virtual wiki
  • rename an existing wiki without having to remove and create
  • rename the default en wiki

However, this suggestion might be problematic and would be more difficult to implement:

  • user permissions per wiki or groups of pages

Enhancements to virtual wikis haven't been a high priority for me in the past, but if there is enough interest then it would probably not be terribly difficult to implement the suggestions you've outlined. In particular, I've always thought it was kludgy to have to modify web.xml after creating a virtual wiki, so that's something that would be high on my list of cleanups. -- Ryan 03-Jan-2009 11:55 PST

I think the current system with modifications to allow for virtual wikis to have their own features listed below would be ideal for the administrators looking for this. I personally will likely not use virtual wikis if there was another way to segment pages between users. Currently virtual wikis are the only way I can do this. I believe there would be a great benefit to what is discussed here Tech:User_Permissions. My personal preference would be access permissions based on URL and a Virtual Wiki is automatically taken care because it's a special case of that.

  • meta tags
    • title
    • keywords
    • description
    • langauge
  • style sheet
  • configuration options
    • general settings (includes Starting Page)
    • parser settings
    • file upload settings (so that directory can be secured by permissions)
    • possibly rss settings

For simplicity with meta tags you could let an administrator type in raw html in a text area which overrides the default tag block in the page head.

I want to place my vote for this(these) feature(s). I'm especially interested in <title>, css, and logo features per virtual wiki. The "punch list" above covers most of this "vote." --Tim • (comments) 19-Jul-2010 18:17 PDT
CSS should already be handled on a per-virtualwiki basis using each virtual wiki's StyleSheet topic, but providing per-virtual wiki logos is definitely something that needs implementing. If you're interested in writing code I could step you through what would need to be done, otherwise please check in every couple of weeks to remind me to implement this - I won't get to it today, but it's easy to do and if I know someone is interested then I'll definitely get it done for JAMWiki 1.0.0. I assume that the other fields that are being requested are the "Site Name" and "HTML Meta Description" from Special:Admin? I think that providing capability for customization for all of those would make sense. -- Ryan • (comments) • 19-Jul-2010 19:25 PDT
I could be talked into looking at and contributing code, though my free time is sometimes spoken for another OSS project, blojsom. --Tim • (comments) 26-Jul-2010 11:55 PDT
If you find yourself with loads of time and feel an undeniable urge to jump into some JAMWiki programming please let me know :). Until then, I'll keep this on my todo list, and if time is available when I get to it I may write it up as a step-by-step tutorial for developers since this site is sadly thin on detailed programming documentation. -- Ryan • (comments) • 27-Jul-2010 08:53 PDT

[Edit]Update 28-March-2010

JAMWiki 0.9.0 will include a new Special:VirtualWiki admin page that will allow some additional flexibility for virtual wikis including the following:

  • The default virtual wiki can now be changed from "en" (revision 2981).
  • Namespaces can be translated on a per-virtual wiki basis.

Deletion and renaming of virtual wikis is still not allowed, and adding a new virtual wiki still requires an update to web.xml, but hopefully this will help out individuals who are making use of this feature. -- Ryan • (comments) • 28-Mar-2010 20:53 PDT

[Edit]Patch for adding a virtual wiki without web.xml modification

Swaroop Reddy provided a patch for adding virtual wikis without the need to modify web.xml. This approach requires that all virtual wikis be located under a "/wikis" directory in the web app and is thus (unfortunately) not backwards compatible with existing JAMWiki installations. As a result it probably cannot be implemented by default on the JAMWiki trunk, but for anyone interested the code is available as a diff at Image:virtual-wiki-diff.out. -- Ryan • (comments) • 01-Jun-2009 07:58 PDT