SessionPageStore

Summary: Temporary/Ephemeral page storage for testing purposes
Version: 20160127
Prerequisites:
Status: Experimental
Maintainer: Petko
License: GPL2+
Users: (view? / edit)

Description

This recipe enables Temporary/Ephemeral pages for testing purposes.

Our home page is open for editing, like most of the website, so that visitors can try the software. For a few years, the recipe AutoRestore provided a way to revert any changes after 15 minutes of inactivity. With AutoRestore however, the homepage can actually be defaced or spammed for 15 minutes at a time.

This recipe SessionPageStore was written to allow visitors (or spammers) to test the wiki, even to modify the home page if they like, but the changes are only visible to them (including page history). Other visitors see the original page.

The recipe is currently enabled at PmWiki.PmWiki, feel free to abuse that page in any way you like. :-)

Installation

  • Copy sessionpagestore.phpΔ to your pmwiki/cookbook directory.
  • Add to the file pmwiki/local/Main.WikiSandbox.php this snippet:
    include_once("$FarmD/cookbook/sessionpagestore.php");
    $WikiDir = new SessionPageStore();
    $WikiLibDirs = array(
      &$WikiDir,
      new PageStore('wiki.d/{$FullName}'),
      new PageStore('$FarmD/wikilib.d/{$FullName}')
    );
    

Configuration

Currently nothing can be configured (this may change in the future).

Usage

When a visitor edits, saves, previews the page, the changes will be saved in an ephemeral session storage. For other users, the same page will not appear changed. When the visitor closes the browser (or logs out of the wiki), the session storage will disappear, and the page will revert to its original content (or will be deleted, if there wasn't such a page). You can test the feature with two browsers, or with a single browser in the two modes, "normal" and "private/incognito".

Notes

  • On a different, non ephemeral page, a link to an nonexistent ephemeral page will always appear a link to a nonexistent page, even after the ephemeral page was created.
  • RecentChanges pages will not display changes to ephemeral pages, unless they are also ephemeral.
  • These may change in future versions.
  • File uploads are not ephemeral.
  • HTML caching and pagelist indexing is disabled for ephemeral pages.

Known feature: e-mail notifications, if enabled, will be sent also for temporary changes on ephemeral pages.

Change log / Release notes

  • 20160127 First public release, ready to be tested.

See also

Cookbook /
AutoRestore  Automatically restore pages after a set time interval (Stable)

Contributors

  • Recipe written and maintained by Petko.

Comments

See discussion at SessionPageStore-Talk?

User notes? : If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.