Hacks are "quick and dirty" solutions. Solutions that probably could be nicely integrated into phpList, if the author of the hack knew enough about the internal architecture of phplist, and/or felt it was worth to integrate his or her solution into the phplist code. The latter conditions are not always fulfilled... still it 's valuable to collect the experience of people fiddling with phplist setups or code, because these simple solutions can be reused by anyone comfortable with php, and it may lead to proper phplist code offering the same functionality.
Browsing the forum, you will find a number of hacks that can help you address a specific need or help you sort out an issue. Some of them are listed here. You are welcome to add the ones you know and find useful. And of course thanks to the creators and contributors of these hacks.
Please note some of these hacks may address issues that happened in older versions of phplist and have been addressed in the latest release. Only try to apply a hack if you experience the same problem in the version you are using. Also in some cases, these hacks were made against older versions, so the instructions to apply them may not be entirely correct for the latest version. In general, it is likely you will need some knowledge of PHP in order to apply a hack.
Phplist with other packages
A lot of PHP/Mysql packages exist: CMSs, portals, online communities.... : a list of tested ways to integrate phplist into them.
This add-on will query your database and produce a HTML page, listing all newsletters from a particular list. Clicking on a newsletter will display that newsletter.
A set of functions which provide a simple way to interact with phpList in your own programs (eg: adding a user who just purchased something from your website to a mailing list). It takes a list id, an email address, and optionally some attributes, and subscribes the user to that list. If the user already exists, the existing account will be subscribed. If it's a new user, they'll be added first. Users added in this way are pre-confirmed (they will not be sent a confirmation email).
List control via HTTP
An add-on that can be used to subscribe a user using the HTTP command. The procedure works by simulating a POST to the default subscribe page. It requires the CURL PHP library.
Multi-language front end
A Newsletter system which integrates Phplist into an existing multi-language site.
Email your messages to a phpBB forum (plugin)
With this plugin you can automate the posting of an email to your preferred phpBB board. You can download the plugin here.
Multiple phplist installations running on one file setup and multiple databases.
PBTS_XTRA - multiple content areas in templates
This plugin extends phpList's template functionality by allowing you to define multiple content regions within your templates. You are also able to include or exclude sections of your template based on whether one of these content regions is empty or not.
This mod makes it possible to set admin permissions for templates.
Conditional includes and placeholders
This hack allows you to customize email messages for each user by including different information in the email message depending on whether a certain attribute exists or not. For instance, you can write "Dear Bobby!" to a user whose first name is in your PHPlist database, and simply "Greetings!" to someone whose first name is unknown. Allows PHPlist messages to be much more customizable, like mail merge with a word processor.
Personalized subject line
This hack allows the use of placeholders in the subject line. Tried and tested. This hack works great in my installation.
You can find a Personalized Subject Line mod for release 2.10.4 here.
Custom placeholders in system messages
This mod makes it possible to use custom placeholders in system messages, like the confirmation message for instance.
Automatically insert date in messages
This mod will automate the insertion of the current date in your messages.
Set a default subject in subject line
You could try this mod to insert a default subject in the subject field of you list messages.
Code for clicktracking in <area> links
This is a hack to make click tracking work in an <area > definition (those little boxes you put inside a picture to add links).
Message open statistics
A plugin that gives message open & bounce statistics for a message. It also shows you exactly who has viewed the message (and who hasn't...as far as it's possible to tell). It only works for HTML messages.
Textline as a criteria
This is a hack posted in the mantis tracker to use textline attributes as criteria, which would otherwise not be possible. A more extensive hack allows you to list several matching values rather than just one (for example, send a message to all users whose attribute city=New York OR city=Chicago).
Importing users without file uploads
This mod will allow importing users by copy/pasting the user list in a textarea.
"Soft Match" for CSV Imports that include Foreign Key
This mod creates a "soft match" so that users imported to PHPlist with a Foreign Key, are matched to current users via Email matching if that Foreign Key does not exist yet in the PHPlist database. More explanation of the problem/solution here.
Merge Duplicate Users with improved functionality
If you import users with a Foreign Key you may end up with many Duplicate Users. This improved functionality allows you to merge the attributes, list subscriptions, RSS Frequency, and other useful info from the Duplicate User back to your Main User in a nice way.
Cron toggle: An ON/OFF Button for Cron in the Admin Panel
If you use a cronjob to process the queue, but, for various reasons, want to turn the cronjob off after each mailing, you can use this mod.
Solution for getting cron to work with $require_login = 1;
Many users who have attempted cron jobs with $require_login = 1; (in config.php), have no doubt been frustrated by the cron returning a lengthy HTML code that informs you of the need to login. This mod attempts to fix this.
Bounce processing without IMAP extension
This mod will allow bounce processing even if you don't have the IMAP module installed. You need the Net_POP3 Pear module installed for this mod to work.
Send messages via email client (plugin)
With this plugin you can send messages via your favorite email client to your lists. You can download the plugin here.
Documentation can be found in the wiki here.
Adding Captcha functionality to the subscribe form
Captcha is an anti spam method that requires the user to type the code on an image to subscribe.
Faster message queue processor
This queue processor, loosely integrated with PHPList, will send out messages faster than the default processqueue.php. See also this forum thread.
extendedView - display custom user attributes
This plugin will display additional user attributes (like user name for instance) on the list all users page.
Colizer's Windows-like admin module
A GUI for the newsletter system that has more Windows feeling to it, with drop down menus from the top. And you can still get to the original view through 'advanced mode'. Upgrades will be announced in this forum thread.
Hide RSS frequency
This is not the best way, but if you have only one RSS frequency and want to hide it so users can't choose another frequency, this works ok.
With this hack you are going to be able to send messages to people that have a birthday that day.
New subscriber gets last list email automatically
This is a nice one. A new subscriber will receive the last email sent.
HTML confirmation email
This mod will enable you to send HTML confirmation messages, instead of text-only confirmation messages.
Accept preselections in subscribe pages
Use additional $_GET parameters in subscribe pages in order to:
# Preselect HTML format for e-mails.
# Preselect one, all or several lists on subscribe pages.
HTML or text format by default
phplist v 2.10.4
To have "HTML" or text checked by default in "send a message" > "format" tab
Attachements in text emails
To sent attachements even with text emails (instead of a link at the bottom of the email)
Change user to inactive after several bounces
If users aren't getting unconfirmed after getting several bounces this hack will fix it.
Consecutive bounce count for MySQL 4.1.x
If your server is running MySQL 4.1.x, the bounce test mechanism may not get consecutive bounces, and instead gather all bounces for a user. This mod will deal with that issue.
Note: this is not a complete listing. You can also search for contributions in the mantis tracker and in the forums
There isn't a documentation section on plugin development yet. For the moment, if you want to build your own plugins, you can consult this forum thread