—- plugin —-
description: This plugin adds some small features to phplist.
author : Duncan Cameron
compatible : 3.x
sourcerepo : https://github.com/bramley/phplist-plugin-addons
This plugin adds various small features to phpList which aren't worth implementing as individual plugins.
Each feature can be enabled separately through the plugin's group on the Settings page.
See the README file on the GitHub page https://github.com/bramley/phplist-plugin-addons for how to install the plugin.
When you have enabled the plugin there will be an Addons group on the Settings page where you can configure the plugin.
When remote queue processing is used to manage the sending of emails phplist does not write progress records to the event log, such as a batch being completed. The plugin can write event log records
Some particular versions of Exim appear to handle incorrectly a line beginning with a dot character. The plugin can try to workaround this problem by prepending a space character to any line that begins with a dot character.
See the discussion https://discuss.phplist.org/t/if-the-last-character-of-the-footer-is-a-dot-then-dkim-fails-why/4636/10
This setting might help if your phplist installation is receiving automated subscription requests.
When this setting is enabled the plugin will validate that a subscription request originated from this web site. It checks whether the HTTP_REFERER header includes the “website” configuration setting. If it does not then the plugin returns a 404 status code to try to stop the originator from sending further requests.
The plugin provides a page that updates the phplist code to the latest release. The main differences to the core phplist updater are
There are some important requirements:
The plugin uses the work directory to download and expand the phplist distribution zip file, and stores a backup of the current phplist files and directories.
To enable the updater, add this to the end of config.php giving the file system path to the work directory
$addonsUpdater = [ 'work' => '/path/to/work/directory', ];
The config directory including the config.php file will be replaced by that in the new distribution.
When config.php is in the default location, the config directory, the updater will restore it from the backup. However other files in the config directory will not be restored.
If you use the ConfigFile environment variable to place config.php elsewhere then the updater will not copy or overwrite that file. This assumes that the file is located outside of the phplist installation.
After upgrading the phplist code to the new release, the updater can then copy specific files from the backup. This can be useful if you have made changes to phplist files that you want to keep.
You should first verify that the new phplist release has not modified the files in question. If they have been modified then you will need to reapply manually the changes to the files in the new release.
To have the updater restore specific files, add a list of the files to the config.php variable. The path of each file should be relative to the “lists” directory.
For example to restore the English front-end translation file that is in the texts
directory
$addonsUpdater = [ 'work' => '/path/to/work/directory', 'files' => [ 'texts/english.inc', ], ];
The updater will install all the items, files and directories, that are in the “lists” directory of the phplist distribution, i.e. index.php, lt.php, the admin directory, the config directory, etc.
You can give the updater a set of items that should not be installed. For example, to not install the phplist REST API and the index.html file
$addonsUpdater = [ 'work' => '/path/to/work/directory', 'do_not_install' => ['index.html', 'api.php', 'base'], ];
The web server php configuration might limit the elapsed time for which a php script can run, or the maximum amount of memory that can be used. You can give new values for those php configuration values
$addonsUpdater = [ 'work' => '/path/to/work/directory', 'do_not_install' => ['index.html', 'api.php', 'base'], 'max_execution_time' => 240, 'memory_limit' => '1024M', ];
There will then be a menu entry System > Alternative updater
The update process has three stages
Only the third step changes anything, so if either of the first two steps has a problem, such as timing out, then you can repeat the process or just stop and upgrade manually. Downloading the zip file can take a while depending on your web server, sometimes more than 20s. Expanding the zip file can also take even longer, sometimes more than 40s.
When the phplist code has been updated there is a link to upgrade the phplist database, that should be applied, then logout and login again.
At some point phplist will display a popup window regarding initialising phplist in your language, just let this complete normally.
The plugin adds an item to the System menu for a page that will export rows from the event log to a CSV file.
The default is to export the most recent 5,000 rows.
Please raise any questions or problems in the user forum https://discuss.phplist.org/