—- plugin —-
description: Supporting classes required by some other plugins.
author : Duncan Cameron
type :
lastupdate : 2022-08-30
compatible : phplist 3
depends : php 5.6
conflicts :
similar :
tags :
donationurl:
sourcerepo : https://github.com/bramley/phplist-plugin-common
This plugin provides support classes required by some other plugins. It also provides three pages which are added to the Config menu
The plugin also provides an option to inline CSS styles when phplist sends campaign emails.
This plugin is now included with phplist, so you need to only enable it on the Manage Plugins page.
See the README file on the GitHub page https://github.com/bramley/phplist-plugin-common for how to install the plugin.
The plugin provides an option to inline CSS styles when phplist builds the email content. This allows you to include <style> elements in the template for ease of maintenance, but those styles are added to the appropriate elements as style attributes when the email is built.
Some email clients have limited or no support for <style> elements in an HTML email, so inlining styles helps to ensure that the final email can be displayed properly on a wider range of clients.
For example, having a set of styles defined as
<style type="text/css"> p { margin-bottom: 0.5em; font-size: 15px; line-height: 20px; color: rgb(102, 102, 102); font-family: Tahoma,Verdana,Arial,sans-serif;} p.small { font-size: 13px; line-height: 18px;} h2 { margin-bottom: 0.5em; font-size: 20px; line-height: 20px; color: rgb(0, 36, 75); font-family: Georgia,Times New Roman,Times,serif;} h3 { margin-bottom: 0.5em; font-size: 16px; line-height: 20px; color: rgb(0, 36, 75); font-family: Georgia,Times New Roman,Times,serif;} td { padding: 5px 10px 5px 10px; } td.border { border-bottom: thin solid rgb(0, 36, 75);} ul { font-size: 15px; color: rgb(102, 102, 102); font-family: Tahoma,Verdana,Arial,sans-serif;} </style>
An h3 element in the template
<h3>EPTUG public meeting</h3>
will be changed to
<h3 style="margin-bottom: 0.5em; font-size: 16px; line-height: 20px; color: rgb(0, 36, 75); font-family: Georgia,Times New Roman,Times,serif;">EPTUG public meeting</h3>
There are two packages to do the inlining that are included in the plugin - PreMailer (https://github.com/crossjoin/PreMailer), and Emogrifier (https://github.com/MyIntervals/emogrifier). You can choose which package to use, or select not to inline CSS styles, in the Campaigns group of the Settings page.
This feature requires php 7.2 or later. You should not try to use this if you are running an earlier version of php.
There is a mechanism to log the sql queries created by most plugins. This might be useful in debugging or to be able to run a query manually.
Add the following to the config.php file (at the end of the file is ok)
$log_options = array( 'threshold' => 'DEBUG', 'classes' => array( 'phpList\plugin\Common\DB' => true, ), );
Now queries will be logged to a file in the phplist temporary directory, identfied by the $tmpdir
variable in config.php. The file will be named for the current day, e.g. log_2018-07-13.txt.
Alternatively you can specify a particular directory for the log file. The directory must be writeable by the web server process.
$log_options = array( 'threshold' => 'DEBUG', 'classes' => array( 'phpList\plugin\Common\DB' => true, ), 'dir' => '/path/to/directory', );
Each query will be logged similar to this
[Fri 13 Jul 2018 10:09:15] [debug] phpList\plugin\Common\DB::_query, line 39 elapsed time 11.165857315063 ms SELECT id, email, confirmed, blacklisted FROM phplist_user_user u LEFT JOIN phplist_listuser lu ON u.id = lu.userid WHERE userid is NULL
To stop logging queries simply change DEBUG to OFF.