Log inRegister

Subscribe Plugin

This is a companion plugin to the MailerContrib. It allows you to trivially add a "Subscribe me" link to topics to get subscribed to changes.

logo.gifExample (only works if plugin is installed, and you are logged in - you are: WikiGuest - and you are not WikiGuest):

ALERT! This version is designed for use with Foswiki 2.0 and later. While it will work with Foswiki 1.1.x, it is not recommended that you install it there.

Usage

Anywhere in a topic or template:
  • %SUBSCRIBE{...}% or simply %SUBSCRIBE%
    Parameter Default Meaning
    who Logged-in user Who to subscribe (wikiname, no web)
    topic Current topic Topic to subscribe to. Wildcards may be used e.g. topic="Item*" will subscribe to all topics starting with Item. Use topic="Main.*" to subscribe to the WebNotify for the Main web.
    unsubscribe Not set If set to "on", will unsubscribe the user

The format of the Subscribe/Unsubscribe button is defined in a template file templates/subscribe.tmpl. The normal skin mechanisms can be used to override this with your own local definitions. The default template works with Javascript to provide a smooth interactive experience.

ALERT! The format and formatunsubscribe parameters have been removed and will be ignored. The version of PatternSkin shipped with Foswiki 1.1.9 used these parameters.

ALERT!Note: This subscribe macro is for adding and removing individual subscriptions. It is not aware of subscriptions due to membership in a subscribed group. If a user is subscribed to a topic due to group membership, the subscribe link will show the user as subscribed, but clicking it will not unsubscribe the individual user. If a user wishes to unsubscribe as an exception, manually add a "negative subscription" to the WebNotify topic. Ex: If JoeUser is a member of SomeGroup, then the user can unsubscribe manually:
  • Main.SomeGroup : *
  • Main.JoeUser : - UndesiredTopic

Access Controls

The guest user is not allowed to subscribe for notification.

You don't need VIEW access to the WebNotify topic in order to subscribe to changes in a web, but you must have CHANGE access. If you want users to be able to subscribe or unsubscribe, but you don't want them to be able to modify their subscription or otherwise edit the WebNotify topic, you can restrict VIEW access to WebNotify. This will make it uneditable from the browser (but will not block save urls, so is not fully secure).

ALERT! Note that permissions on individual topics are not checked when subscription mails are sent out, so be very careful about who you allow to subscribe.

Configuration

If you wish to limit the plugin to one or more webs, specifiy the list of Active Webs in one of the following ways. This list is a comma-separates list of Web names. A "Regular-expression" style wildcard can be used. For example: Main,Sandbox.* would permit the Main web, Sandbox, including subwebs of Sandbox, or any web prefixed with Sandbox.

The configure setting takes precedence over the topic based preference setting.

Templates for all forms and strings used by the plugin are specified in templates/subscribe.tmpl, which can be overridden using the standard Foswiki skins mechanisms.

REST handler

The plugin uses a REST handler to perform the actual subscription. This handler is also available for other clients wishing to use the subscription service.

.../rest/SubscribePlugin/subscribe

Parameters:
  • subscribe_topic topic to subscribe to/unsubscribe from. Value of topic parameter is used if missing. Use Web.Topic format to specify a web.
  • subscribe_subscriber WikiName of user to subscribe/unsubscribe. Current user is used if missing.
  • subscribe_remove true to unsubscribe. Default is to subscribe.
Note that the calling user must be authenticated, and must have write permission for the WebNotify topic in the relevant web.

Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.

Open configure, and open the "Extensions" section. "Extensions Operation and Maintenance" Tab → "Install, Update or Remove extensions" Tab. Click the "Search for Extensions" button. Enter part of the extension name or description and press search. Select the desired extension(s) and click install. If an extension is already installed, it will not show up in the search results.

You can also install from the shell by running the extension installer as the web server user: (Be sure to run as the webserver user, not as root!)
cd /path/to/foswiki
perl tools/extension_installer <NameOfExtension> install

If you have any problems, or if the extension isn't available in configure, then you can still install manually from the command-line. See https://foswiki.org/Support/ManuallyInstallingExtensions for more help.

A word of warning; if you used SubscribePlugin before version 3.1, please note that the use of GET requests for subscriptions is no longer supported. That means that Javascript must to be available in the browser..

Dependencies

NameVersionDescription
Foswiki::Contrib::MailerContrib>=0Foswiki mailer module
JSON>0Required. Available from the CPAN archive.

Change History

3.7 (06 Aug 2023) Foswikitask:Item15151: add warnings and strictness
3.6 (08 Dec 2017) Foswikitask:Item14554: remove link to unused wikiring.com domain.
3.5 (06 Nov 2015) Foswikitask:Item13519: Add dependency on URI due to MailerContrib dependency.
3.4 (27 Jul 2015) Foswikitask:Item13450: Fix support for FamFamFam skin.
3.3 (04 May 2015) Foswikitask:Item13393: simplified implementation
3.2 (24 Nov 2014) Foswikitask:Item12926: removed requirement for an HTML form wrapping the button
3.1 (28 Apr 2014) Foswikitask:Item12872: Add CSRF validation support
3.0 (14 Mar 2013) Foswikitask:Item2258: added template support. Foswikitask:Item2450: Fix subscription to subweb topics. Foswikitask:Item11015: Improve docs. Foswikitask:Item8095: Analyse and fix load failures. Foswikitask:Item11543: Add unit tests. Foswikitask:Item10045: Support non-ascii topic names. Foswikitask:Item11595: Use REST handler for post with strikeone.
2.0 (03 Mar 2012) GeorgeClark - Foswikitask:Item11594 - Add ActiveWebs configuration.
1.0 (03 Dec 2008) Released for Foswiki