|
Cookbook /
ModesConceptSummary: A place to remember thoughts/ideas related to using different modes
Version:
Prerequisites:
Status:
Maintainer:
Categories: Administration, Layout
ViewModes basic tools to help implement concept. And an alternative view proposal ConceptBronwyn managed to phrase my thoughts on mode very succinctly: The mode expresses the user's current emphasis. The interface should change accordingly, so that it is easier to find and use controls relevant to the current emphasis, while irrelevant controls are de-emphasized or even hidden.
Note that modes are not the same as authentication levels: Authentication is for checking whether you are PERMITTED to perform certain actions. Modes are for declaring that you're currently FOCUSED on performing certain actions.
Bronwyn about ModesThink of it this way: modes are sets of tools.
Which would you rather work on: a desk cluttered with all the tools you could possibly need for any given task, or a desk that was clean and empty except for the tools relevant to the task at hand? The missing tools have not been stolen -- they've just been put away in the desk drawer. They are available whenever you want them. Now imagine that there are fairies whose job is to reorganize your desk for you at your command. Who could, in an instant, tidy away your financial apparatus and bring out your letter-writing things. Wouldn't that be wonderful? I would certainly want desk fairies of my very own. Right now, only skin designers can rearrange the PmWiki desk. People tolerate this because there is (so far) no alternative. Modes are desk fairies for PmWiki: they clear the wiki's desk except for the tools you need, and switch toolsets at your command. Other namesRadu pointed out that "modes" has a lot of existing meanings and baggage, none of which are appropriate. Here are some alternative terms:
Built-in modesThese are the modes that should be built into PmWiki. They are based on the most common roles people play when using a wiki, but their final names haven't been decided yet. Visitor / Reader / StandardMostly reads pages, searches for information but occasionally also edits a page. Commonly used functions:
Stealth / SimpleLike visitor mode, but with no editing:
Perfect for sites that use PmWiki as a CMS, and wish to look like an ordinary website. Such sites usually are not publicly editable anyway. Author / Editor / ContributorSpends a lot of time adding content. Still reads pages and searches for pages as part of this process.
Administrator / AdminPrimary activities are editing and administrative tasks such as updating navigation or user interface pages, copying or moving pages.
Pages specific to or most useful in admin mode should perhaps live in their own group (maybe called PmWikiAdmin or AdminTheWiki?) if they do not belong elsewhere. Content for admins, such as a trail of admin-related pages, could be added to the sidebar through an (:include:), an (:if mode:), or some combination of those.
It might be better to have a second sidebar which acts as an admin console for the page, instead of cluttering up the main sidebar. How about something like this:
!Recent Changes
%right%[[{$Name}?action=diff | Page History]]
* Last modified on {$LastModified} by {$LastModifiedBy} with IP {$LastModifiedHost}
* change summary and/or diff (if no change summary)
!Metadata
%right%[[{$Name}?action=edit | Edit]]
* title
* keywords
* categories
* what links here (backlinks)
* whatever other metadata the admin wants
!Page attributes
%right%[[{$Name}?action=attr | Edit]]
* page attributes such as password types and sources (heading has an ?action=attr link)
!Attached files
%right%[[{$Name}?action=upload | Upload]]
%right%[[{$Name}?action=edit | Change links]]
* list of files attached to this page, with option to re-upload if wiki allows it
Nifty idea for the backlinks and attachlist items: be a list if less than X items (X=10 or so by default), but be a link with a count if more than X, e.g. "Backlinks (52)". As a list, should be possible to have either a bulleted vertical list, or a comma separated horizontal list. See AlsoViewModes for an experimental first implementation of needed variables Contributors |