Extension:Newsletter

From MediaWiki.org
Jump to navigation Jump to search
MediaWiki extensions manual
Crystal Clear action run.svg
Newsletter
Release status: beta
Create Newsletter.PNG
Implementation User interface
Description Enables users to publish and subscribe to newsletters
Author(s) Tina Johnson, Tony Thomas
Latest version 1.2.1 (2017-07-09)
MediaWiki 1.25+
PHP 5.4+
Database changes Yes
License GNU General Public License 2.0 or later
Download
Added rights
newsletter-create
newsletter-delete
newsletter-manage
Hooks used
BeforeCreateEchoEvent
EchoGetDefaultNotifiedUsers
LoadExtensionSchemaUpdates
ContentModelCanBeUsedOn
Translate the Newsletter extension if it is available at translatewiki.net
Check usage and version matrix.
Issues Open tasks · Report a bug
View of all newsletters on a wiki

The Newsletter extension provides a catalog of newsletters registered in a given wiki, an easy way for publishers to announce new issues, and an easy way for users to subscribe/unsubscribe and be notified via web or email when new issues are announced. A "newsletter" is defined as a publication that has a name, a wiki home page, and a single or central wiki page for each issue or edition. For user documentation, check Help:Extension:Newsletter.

Subscribe to Newsletter², the newsletter about the Newsletter extension. Announcements, calls for feedback, and some dog food too.

This extension is under active development. You can test the extension in our vanilla installation or at test.wikipedia.org. We welcome feedback and contributions!

Functionality[edit]

Special:Newsletters[edit]

  • List of newsletters that are registered with the service, with their basic information, generated automatically.
  • Registered users can subscribe to newsletters in order to receive notifications about new issues announced, via web or email, according to their Echo preferences. It is not expected to offer delivery to user talk pages.
  • Registered users can check the newsletters they have subscribed to, and they can unsubscribe.

Special:CreateNewsletter[edit]

  • Registered users can add existing newsletters to the system (which is referred to as "CreateNewsletter"). They must provide the title of the newsletter; a link to an existing wiki page that serves as main page; and a description.

Special:ManageNewsletter[edit]

  • Publishers can announce issues for newsletters that have been added into the system via Special:CreateNewsletter. Echo (?) notifications are sent to subscribers when an issue is announced.
  • Administrators and other users granted the rights can add and remove publishers. Administrators must provide the name of the newsletter and username of the publisher. (This is (?) separate from Special:UserRights; the right exists only in relation to a specific newsletter.)

Requirements[edit]

  • Install Echo - Newsletter extension makes use of Echo notifications to notify subscribed users of new issues when announced by the newsletters, and to notify new publishers and subscribers added.
  • In order be registered with the service, a newsletter must have a name, a central "home page", and at least one user assigned to the "publisher" role; and in order to publish issues/editions and issue notifications, each issue must have its own page (or central page, such as a table of contents).

Installation[edit]

  • Download and place the file(s) in a directory called Newsletter in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'Newsletter' );
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Contribute[edit]

You can contribute code to this extension through Wikimedia Gerrit. You should have a working mediawiki-coreand the latest version of this extension to start contributing. You can setup your local development environment using either of the following:

Development using mediawiki-vagrant (recommended)[edit]

  • Follow MediaWiki-Vagrant installation steps and have mediawiki-core running on your vagrant instance.
  • Enable the following roles: echo and newsletter. Read about enabling a role here.
  • Navigate to Special:Version on your wiki and verify that Newsletter is installed successfully.

Development using LAMP server on your computer[edit]

  • Follow Gerrit Tutorial to install mediawiki-core on your computer. You have to run all commands mentioned till Gerrit/Tutorial#Download code using Git. You will create an account on Wikimedia Gerrit, which you will use in upcoming steps.
  • Clone newsletterextension into your extensions/ folder using the command below.
git clone ssh://<USERNAME>@gerrit.wikimedia.org:29418/mediawiki/extensions/Newsletter.git
  • Install Echo extension. Install newsletter extension using the installation steps above.
  • Navigate to Special:Version on your wiki and verify that Newsletter is installed successfully.

Once you have the extension installed on your wiki, you can start creating patch-sets and submitting it for code-review following the steps here. Alternatively, you can browse the newsletter-projecton Wikimedia dashboard to work on existing bugs and feature requests. Please ensure that you have a task on Wikimedia Phabricator before you publish your changes to Gerrit. You can read about creating a task on Phabricator here.

User Rights[edit]

By default, only users in 'sysop' group have this permissions. You can set up the user rights in LocalSettings.php.

Right Description
newsletter-create Create a new newsletter
newsletter-delete Delete an existing newsletter
newsletter-manage Add or remove publishers and subscribers from an existing newsletter
newsletter-restore Undelete newsletters

For example, the following configuration would allow any user to do anything they want with the Newsletter extension, such as creating a new newsletter, deleting an existing newsletter, or managing an existing newsletter by adding or removing publishers.

$wgGroupPermissions['*']['newsletter-create'] = true;
$wgGroupPermissions['*']['newsletter-delete'] = true;
$wgGroupPermissions['*']['newsletter-manage'] = true;
$wgGroupPermissions['*']['newsletter-restore'] = true;

History[edit]

This extension was created in 2013, then modified heavily as part of a Google Summer of Code 2015 project. Its development team is formed mostly by volunteers, and we welcome new contributors. Our goal is to deploy this extension in Wikimedia. Check the ongoing work in our Phabricator workboard.

After a lot of additional work by other contributors, it was made available to Wikimedia users on July 2017.

See also[edit]