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.
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', ];
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
$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. 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.
Please raise any questions or problems in the user forum https://discuss.phplist.org/