Giter Club home page Giter Club logo

phplist-plugin-subscribers's Introduction

Subscribers Plugin

Description

The plugin adds pages to the Subscribers menu:

  • advanced search - search for subscribers and show subscriber attributes with confirmed and blacklisted status
  • subscriber history - shows history events: all, since a start date or those containing specific text
  • subscriptions - lists the number of subscriptions and unsubscriptions for each month with a chart showing the data graphically
  • subscriber commands - apply a command to a file or group of subcriber email addresses

The plugin also provides a placeholder [LISTUNSUBSCRIBE] to remove a subscriber from the list to which the campaign was sent.

Installation

Dependencies

This plugin requires phplist 3.3.2 or later and php version 7 or later.

It also requires the Common Plugin version 3.29.1 or later to be installed. phplist now includes Common Plugin so you should need only to enable it on the Manage Plugins page.

Install through phplist

Install on the Plugins page (menu Config > Manage Plugins) using the package URL https://github.com/bramley/phplist-plugin-subscribers/archive/master.zip.

Install manually

Download the plugin zip file from https://github.com/bramley/phplist-plugin-subscribers/archive/master.zip

Expand the zip file, then copy the contents of the plugins directory to your phplist plugins directory. This should contain

  • the file SubscribersPlugin.php
  • the directory SubscribersPlugin

Usage

For guidance on using the plugin see the plugin's page within the phplist documentation site https://resources.phplist.com/plugin/subscribers

Donation

This plugin is free but if you install and find it useful then a donation to support further development is greatly appreciated.

Donate

Version history

version     Description
2.37.3+20240215 Use ListTrait trait in Common plugin for the listuser table
2.37.2+20240209 Fix error in query moving subscriber between lists
2.37.1+20231212 Minor internal changes
2.37.0+20230912 Add Spanish translations, thanks to Adolfo M. Cagigal
2.36.3+20230906 Use publicUrl() function
2.36.2+20230821 Use publicBaseUrl() function
2.36.1+20230726 Correct processing when search term is a regex
2.36.0+20230725 Treat search term as a regexp or literal text
2.35.1+20230714 Avoid displaying backslashes in attribute values
2.35.0+20230529 Show % of all subscribers on Domains report
2.34.2+20230408 Fix problem with list id when importing file as a remote page, GitHub issue 24
2.34.1+20230401 Rework the validation of selected attributes
2.34.0+20230331 Order the results on the Advanced Search page by subscriber fields or attributes
2.33.2+20230225 Display the "copy results" button only when there are some results
2.33.1+20230207 Minor internal change
2.33.0+20230124 Allow ! at start of email address pattern to select addresses that do not match
2.32.0+20221224 Add command to set attribute value to empty string
2.31.1+20220921 Fix poor response time copying subscriber results with a large number of subscribers
2.31.0+20220112 Add remote access page to import subscribers
2.30.3+20211009 Rework not confirmed report query to be compatible with ONLY_FULL_GROUP_BY
2.30.2+20210429 Include table name in query that has fixed values
2.30.1+20210311 Avoid displaying empty note on simple subscriber report
2.30.0+20210310 Add report to show subscribers who have not confirmed
2.29.1+20210308 Remove leading/trailing spaces from the entered search value
2.29.0+20201224 Run inactive report from the command line
2.28.0+20201219 Copy report results to the command page
2.27.0+20201202 Support translation of front-end texts
2.26.0+20201116 Add command to add subscribers to a list
2.25.1+20201116 Avoid clearing the entered emails or pattern when navigating back to the first page
2.25.0+20201115 Add command to move subscribers between lists
                Copy search results to the Command page
2.24.2+20200416 Display dates using the date format configuration
2.24.1+20200410 Order the consecutive bounces report by the number of bounces descending
2.24.0+20200407 Add report of consecutive bounces
2.23.0+20200315 Add Dutch translations, thanks to Peter Buijs
2.22.0+20200310 Include lists on the unsubscribe reason report
2.21.0+20200306 Add page to run the inactive subscribers report from the command line
2.20.0+20190521 Add report of email domains and report of subscribers for a specific domain
2.19.1+20190225 Improve performance of searching for subscribers
2.19.0+20190201 Add report to show subscribers with bounce count > 0
2.18.2+20181211 On Inactive report link to user page instead of userhistory
2.18.1+20180714 Fix problem of config settings not being displayed
2.18.0+20180709 Add command to remove subscribers from all lists to which they belong
2.17.2+20180623 Internal change that adds dependency on phplist 3.3.2
2.17.1+20180620 Support negative searching
                Add foreign key to command line import
2.17.0+20180528 Improvements to display and search on Advanced Search page
2.16.3+20180526 Correct filter on Subscriber History report
2.16.2+20180519 Remove hard-coded table names
2.16.1+20180403 Avoid dependency on php 7
2.16.0+20180402 Add report of unsubscribe reasons
2.15.1+20180228 Change the way that confirmed, unconfirmed and blacklisted are counted on the Subscriptions page
2.15.0+20180210 Add command line page to import a file
2.14.0+20180126 Add report of subscribers who do not belong to a list
2.13.1+20171201 Minor bug fix
2.13.0+20171111 Add command to confirm subscribers
2.12.0+20171004 Add command to reset subscriber's bounce count
2.11.0+20170827 Add command to change subscribers' subscribe page
2.10.0+20170802 Add command to resend confirmation email
2.9.4+20170414  Improve display of Subscriptions page with bootlist theme
2.9.3+20170409  Use new approach for exporting
2.9.2+20170331  Remove list subscribe/unsubscribe placeholders when email is forwarded
2.9.1+20170304  Use core phplist help dialog
2.9.0+20170302  Add report pages
2.8.1+20170214  Add page to generate UUIDs for subscribers
2.8.0+20170124  Display and search for real values of checkbox group attributes
                Support multiple search values
2.7.4+20170114  Improve German translation
                Use exact match when searching on checkboxgroup attribute
2.7.3+20161005  Avoid dependency on mysql 5.7
2.7.2+20160923  Correct query when using GROUP BY
2.7.1+20160901  Update translations
2.7.0+20160706  Add list subscribe placeholder
2.6.2+20160603  Avoid Excel problem with export file
2.6.1+20160421  Allow email addresses to be pasted into a text area
2.6.0+20160330  Added command to validate email addresses
2.5.0+20160323  Added action to remove from blacklist
2.4.0+20160317  Add page to apply action to set of subscribers
2.3.0+20160110  Add placeholder to unsubscribe from a list
2.2.0+20151025  Show total of campaigns sent
                Coding standards changes
2.1.0+20150904  Show totals of campaigns opened and clicked
2.0.0+20150815  Added dependencies
2015-05-29      Improved German translation
2015-05-28      Allow menu items to be translated
2015-05-17      Include IP address in export of subscriber history
2015-05-10      Add dependency checks
2015-03-23      Change to autoload approach
2015-01-18      Allow searching on user history IP address
2014-11-17      Shorten keys on config table to allow longer admin ids
2014-04-18      Search on id and uniqid
2014-03-11      Search on confirmed/unconfirmed and blacklisted/not blacklisted
2014-02-12      Allow searching on email address
2014-02-03      Display as pages instead of tabs
2014-01-25      Use Google Chart, minor changes
2013-11-20      Bug fix
2013-11-05      Improve layout to be similar to core phplist
2013-10-27      Display each page as a tab
2013-05-10      Initial version for phplist 2.11.9 converted from 2.10 version

phplist-plugin-subscribers's People

Contributors

bramley avatar cagigal-computer avatar marcelvc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

phplist-plugin-subscribers's Issues

FR: Sign-up Page Stats

I'd love to see statistics for which subscribe pages subscribers signed up on. I have multiple subscribe pages and I plan to add more. With some, I give away free tools. I also want to set up custom subscribe pages for autoresponder lists. I'd love to compare the traction that the different sign-up pages get.

Search by IP address

It would be useful to add searching by IP address. The use case I've run into is a spammer who registered many subscriber addresses. Being able to search by IP would easily find additional accounts.

Advanced Search - List Order

Hi,

Love the Subscriber functionality! Couple of tweak if possible:-

  1. Advanced Search - can the drop down for Lists be in alphabetical order?
  2. Advanced Search - Allow for searching based on list name (with wildcards) and return a list of subscribers that are members of that list

Many Thanks!

Dan

Advanced search filter has no effect

Dear all,
the advanced search filter is not working for me.
For example:
some of my subscribers' emails contain the string "raph". If I search for these as shown in the screenshots, all subscribers are shown. Same result when searching for (not) confirmed or blacklisted subscribers. Also the seach values entered ("raph" or "confirmed only") don't show after I click on "Show".
The filter does however work when used on the "subscriber commands" page - when I click on "Match", the correct subset of subscribers is selected.
Also the native Find subscribers filter works as expected. Also the search value "raph" still shows after clicking on "go"
Am I missing something when doing the advanced search?

Thanks for your help and best regards,
Raphael

PHP Version 7.4.29
phpList v3.6.8
Plugins:
Common Pluginversion 3.18.4+20220421 by Duncan Cameron
Disposable email address blockerversion 0.1 by Michiel Dethmers
Date placeholderversion 0.2 by Michiel Dethmers
CKEditor pluginversion 2.6.6+20220515 by Duncan Cameron
Segmentationversion 2.12.1+20210428 by Duncan Cameron
Subscribers Pluginversion 2.31.0+20220112 by Duncan Cameron

1-1_AdvancedFindSubscribers
1-2_AdvancedSearchResults
2-1_SubscrCommands
2-2_ConfirmActions

typo

public function adminmenu()
{
    return $pageTitles;
}

needs to be

public function adminmenu()
{
    return $this->pageTitles;
}

Server Error 500 on Subscriber commands

Hi,

I got the following in Apache error logs:

PHP Fatal error: Class 'phpList\plugin\SubscribersPlugin\Command\Factory' not found in /var/www/www.example.com/lists/admin/plugins/phplist-plugin-subscribers-master/plugins/SubscribersPlugin/depends.php on line 66, referer: https://www.example.com/lists/admin/?page=plugins&tk=30b241c2c7bacd20d6d57c8b95f220e6

  • PHP version 5.4.45
  • PHPList version: 3.3.1
  • phplist-plugin-common version: 3.7.3+20171125
  • phplist-plugin-subscribers version: 2.13.0+20171111

Can you please let me know what did I miss?
Thanks a lot in advance

Advanced search in checkboxgroup

Phplist saves multiple values of a checkboxgroup attribute in a csv. So, when searching for a value in this type of attribute, a regex should be used as to not return false positives.
Best explained with an example:

  • some attribute has possible numeric values from 1-25
  • if I search for "3" in that attribute, i get results for subscribers with values 3,13 and/or 23 (because they all contain the "3" that I was searching for. But this is probably not the intended result (certainly not for me)

In the case of "checboxgroup" attributes, the search function should search using this regex
"(,VAL,)|(^VAL,)|(,VAL$)" (where VAL is the value we're searching for)

This covers all cases:

  • VAL being in the middle of the csv (with a comma before and after)
  • VAL being in the beginning with a comma after (to exclude possible values like "35" if I'm looking for "3")
  • VAL being in the end, with a comma before (to exclude possible values like "23")

Hope I've contributed a bit :-)

It would be even better if we could search for the real value and not the numeric one in checkboxgroup, radio and select attributes.
ie. if I have a checkboxgroup for various intereste and those are saved in phplist as numeric, it would be preferable to search for the actual interest (for example "food,reading, travelling" etc ) instead of having to know or look up the numeric value that corresponds to what I'm looking for

Export insue on Advanced Search

/lists/admin/?page=details&pi=SubscribersPlugin&tk=bbfc870ea00d6a0ee72a5e0e187ee352

Shows: Subscribers
Showing 1 to 50 of 329243;

Downloaded excel only has 82000 emails.

Full List Download

When I search for users which is around 150,000 emails; the exported csv which is downloaded only shows around 30k users

Some Data

Hello.
Thanks so much for this plugin
I would like to ask you something
how can I display all the information?
As you can see in video, some of the data in Advanced Search in the table and in the filters are missing
http://screencast.com/t/qtoGomgvxTuc
Thank you in advance!

strict standards

with Xdebug and all notices on, I get

Strict standards: Declaration of SubscribersPlugin_ControllerFactory::createController() should be compatible with CommonPlugin_ControllerFactoryBase::createController($pi, array $params) in /home/michiel/svn/phplist/code/trunk/public_html/lists/admin/plugins/SubscribersPlugin/ControllerFactory.php on line 23

curl problem

I get the following error message when uploading a very simple test file by curl. The user is nevertheless imported and the list is updated.
I use the latest versions of phplist (v3.6.12), common plugin (3.25.1), and subscribers (2.34.1).

curl -F list_id=2 -F import_file=@import_test2.csv "https://phplist.ismar.org/lists/admin/?page=import2&pi=SubscribersPlugin&secre382f3b3f6e67626"

Reading emails from file ... ..ok, 2 lines

<script type="text/javascript"> var parentJQuery = window.parent.jQuery; parentJQuery("#progressbar").updateProgress("0,1"); </script>

Trying to access array offset on value of type null

#0 /var/www/ud20_456/html/phplist/lists/admin/lib.php(89): phpList\plugin\Common\Exception::errorHandler()
#1 /var/www/ud20_456/html/phplist/lists/admin/actions/import2.php(433): listName()
#2 /var/www/ud20_456/html/phplist/lists/admin/plugins/SubscribersPlugin/Controller/Import2.php(96): require('...')
#3 /var/www/ud20_456/html/phplist/lists/admin/plugins/SubscribersPlugin/Controller/Import2.php(118): phpList\plugin\SubscribersPlugin\Controller\Import2->importFile()
#4 /var/www/ud20_456/html/phplist/lists/admin/plugins/Common/Controller.php(114): phpList\plugin\SubscribersPlugin\Controller\Import2->actionDefault()
#5 /var/www/ud20_456/html/phplist/lists/admin/plugins/Common/Main.php(40): phpList\plugin\Common\Controller->run()
#6 /var/www/ud20_456/html/phplist/lists/admin/plugins/SubscribersPlugin/import2.php(25): phpList\plugin\Common\Main::run()
#7 /var/www/ud20_456/html/phplist/lists/admin/index.php(770): include('...')
#8 {main}

Call to undefined method phpList\plugin\Common\WebblerListing::setElementHeading()

Error message:

Fatal error: Uncaught Error: Call to undefined method phpList\plugin\Common\WebblerListing::setElementHeading() in /admin/plugins/SubscribersPlugin/InvalidPopulator.php:53

Stack trace:
#0 /admin/plugins/Common/Listing.php(52): phpList\plugin\SubscribersPlugin\InvalidPopulator->populate(Object(phpList\plugin\Common\WebblerListing), 0, 50)
#1 /admin/plugins/SubscribersPlugin/Controller/Command.php(301): phpList\plugin\Common\Listing->display()
#2 /admin/plugins/Common/Controller.php(91): phpList\plugin\SubscribersPlugin\Controller\Command->actionValidate()
#3 /admin/plugins/Common/Main.php(44): phpList\plugin\Common\Controller->run('validate')
#4 /admin/plugins/SubscribersPlugin/command.php(31): phpList\plugin\Common\Main::run(Object(phpList\plugin\SubscribersPlugin\ControllerFactory))
#5 /admin/index.php(643): include('... in /admin/plugins/SubscribersPlugin/InvalidPopulator.php on line 53

phpList version 3.2.4

dependency

We still need to work on this dependency issue.
I have now worked out a way to "disable" and "enable" plugins, and when this plugin didn't work, I realised it was because I had not enabled the Common plugin.

Once I did that, it was fine. However, it may be useful to throw and error or something, when the common plugin is not enabled. Just to avoid loads of confusion

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.