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.
Example (only works if plugin is installed, and you are logged in - you are:
WikiGuest - and you are not
WikiGuest):
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.
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.
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).
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
Name | Version | Description |
---|
Foswiki::Contrib::MailerContrib | >=0 | Foswiki mailer module |
JSON | >0 | Required. Available from the CPAN archive. |
Change History