IPS4 Developer Documentation
Invision Community Blog
Downloads posted by Makoto
Completely block registrations using disposable e-mail addresses and prompt the user to use a real e-mail address
Scan and identify which of your existing members are already using disposable e-mails
Request (or force) existing members with disposable e-mails to update their account before gaining site access
Allow members to register with disposable e-mails, but log them for review in the AdminCP
Prevent members from changing their e-mail to a disposable one in the settings panel
Block members from registering multiple accounts under the same e-mail address by abusing Gmail Aliases
Log and view a list of the most frequently used disposable e-mail services on your community
Indisposable is an application that helps protect your community by blocking registrations that use disposable e-mail addresses.
Why are disposable e-mails bad?
Disposable e-mails are not inherently bad, but they should not be used for registering accounts on platforms such as IPS.
Foremost, they present a significant security risk for your members. These e-mail accounts are publicly available to anyone and everyone with no password required. That means if someone registers for your community with a disposable e-mail address, anyone else who also uses that disposable e-mail service can see this and could completely take over that persons account.
Second, disposable e-mails are commonly used for abusive purposes, as they make evading bans much easier. Instead of the user having to go through the lengthier sign-up process for a new e-mail account with GMail or so on, they can generate a new throwaway e-mail in seconds.
How is this different from just manually banning disposable e-mail domains?
Disposable e-mail services actively fight against people doing just this by registering cheap alias domains to tie to their service whenever one gets too much attention.
On our test community with roughly 100,000 unique members, we have logged over 1,000 unique disposable e-mail domains.
Trying to keep up and block these manually is not practical. That’s where Indisposable comes in.
Indisposable uses Kickbox’s industry leading e-mail validation services to instantly identify and reject disposable e-mail addresses, requiring no additional work on your end.
This application only validates e-mail domains. That means if a user registers with “email@example.com”, all we do is verify that “example.com” is a valid e-mail domain. Your members actual e-mail addresses are not collected or sent to any third-party, ever. Period.
56 purchases 220 downloads
This plugin contains various tweaks and adjustments I have made to the IP.Gallery application to make it more suitable for my own personal use.
After losing the original code for this plugin and having to reverse engineer the last build I made of it in order to apply a minor bugfix with the latest IPS release, I have decided to go ahead and open source my modifications here to submit as a general suggestion to IPS in regards to changes I'd like to see to the IP.Gallery platform.
What this plugin does
1. Changes the scaling of images in the gallery. I find the default gallery window way too small for most use cases. This plugin, by default, modifies the gallery window to utilize up to 65% of the browser window.
Here is a before and after demonstrating this:
16x9 aspect ratios can cleanly fill the entire box with this setup, while other images still are able to be viewed at much more reasonable resolutions.
2. Allows you to disable the gallery lightbox.
The gallery lightbox is neat. It's nice to have in certain areas of the site, like when clicking on a gallery image linked in a forum post.
It is not, however, nice to have literally everywhere you go in the gallery. It does not replace traditional gallery navigation for me, and based on the vast amount of user feedback I've seen, most members I've interacted with do not like this system either.
This is anecdotal, but shares my personal experience.
This plugin will let you disable having the lighbox open when you click on images in category and album overview pages. You will instead be directed to the normal image overview page.
3. (Or more 2.1), disables the gallery lightbox when loading an image link directly.
Why is the lightbox being forced here? It's redundant and not any more user friendly than just looking at the page that's already been loaded. It's just an annoyance. So I've disabled it.
4. View full image actually opens the full image.
This I consider more of a bug. The "view full image" link does not, as its name implies, open the full image. It opens the large, scaled down image in a new tab instead.
This plugin fixes it so that it links to the original image instead.
5. Adds a download button to the lightbox
After bashing the lightbox overuse so much, I decided to wrap up by adding something to it. This includes a simple tweak that adds a "download image" button to the lightbox.
6. Adds two new options to control the number of albums and images displayed
By default, the gallery displays 25 albums and 50 images per page. If you utilize categories that make heavy use of both albums and direct image uploads, you may wish to tweak this like me. Personally, I prefer limiting the gallery to 10 albums per page.
Watermarks is an application that allows you to apply watermarks to image attachments uploaded within your community, just as you can for images uploaded to the IP.Gallery application.
Version 2.0.0 is a continuation of the original Attachment Watermarks plugin. If you are upgrading from this version, please note this is not a direct upgrade. You will need to uninstall the plugin, and then install the new application afterwards.
This new version includes many highly requested features, including..
The ability to retain backups of original attachments, which you can restore freely at a later date The ability to apply watermarks to existing attachment uploads Watermarks that scale dynamically according to the original images size The ability to freely change and update watermarks in the future (as long as you leave attachment backups enabled) Attachment Watermarks is currently the only watermarking application on the marketplace supporting all of these features!
After installation, just navigate to the settings page to get started. You'll first be prompted whether or not you want to retain backups of non-watermarked images.
It's strongly recommended you do, unless you are very constrained on storage space.
Once this is done, just upload your watermark and adjust the other settings to your preference!
At this point, you can optionally go ahead and apply your watermark to existing attachments through the "Rebuild attachment watermarks" option at the top right.
37 purchases 115 downloads
Important Note: This application is intended for use by developers only. Please do not install this application on a production server.
Faker provides developers and theme designers with a means of quickly and easily generating fake (boilerplate) content on their development installations.
This application is currently in pre-release status. It is currently limited generating member accounts and forum topics at the moment, but I plan on offering a means of easily extending the application so that it can be used to generate boilerplate content on custom third party applications in the future.
A fully functional Discord chat widget for your IPS community!
Discord Client integrates a fully featured Discord chat client into your website in the form of a “Crate” (a widget activated by clicking a Discord icon at the bottom of your screen), or embedded directly into your site via Widgets.
You can also embed the chat client on IP.Content pages, allowing you to create and customize dedicated chat pages on your community if you so desire!
Members of your community will not even need a Discord account to use the widget. All they have to do is pick a name and start chatting.
Easy step-by-step configuration
configuring.mp4 Configurable drag-and-drop widgets
widget.mp4 You can find a live demo of the applications Create widget on our demo site:
And a demo of the embedded client here:
35 purchases 94 downloads
Discord Native Widget
This is a simple application that adds support for the Discord native widget to IPS.
This is the same iframe based widget that you can access from your servers settings screen,
Plug-and-play, just drag the widget to your sidebar and enter in your Server ID Supports both dark and light themes Unofficial Rich Discord Integration support (can provide a link prompting users to link their accounts below the widget) ☕ Found this useful? Want to support further development? Show your support by buying me a coffee!
NOTE: This plugin has been discontinued as of IPS 4.5 and will no longer be maintained or supported.
Extremely simple plugin that adds in missing meta tags to profile pages as described here,
This provides nicer link embeds on social media platforms and services such as Discord.
Generate Zip archives from IP.Downloads and IP.Gallery on the fly!
Important: Please fully read everything here before purchasing or installing this application. Most importantly, make sure you aware of the limitations outlined bellow.
Versions 1.1.0 and up implement IPS 4.5 support and discontinue support for IPS 4.3. Consequently, releases after this version will require PHP 7.1 or higher to operate.
Bulk / Zip Downloader is an application that allows IPS to generate dynamic Zip archives on-demand, providing your members with the ability to download entire gallery albums and IP.Downloads file submissions at once.
Please be aware that this can be a very memory intensive application, notably if you are using the Native PHP transfer method with IP.Downloaods. With IP.Gallery, the application is relatively safe to use on most hosting environments, but caution must be used when enabling use with IP.Downloads.
If you are on a self-hosted environment and are utilizing Nginx, you can use the mod_zip extension instead of Native PHP. This provides significantly better performance and, unlike with PHP, has a very low memory footprint.
IP.Gallery (albums) support IP.Downloads (files) support Group based permissions Custom error messages Nginx mod_zip support Limitations
When using the Native PHP implementation (required if you use Apache), please be sure your PHP memory limit can support at least 3x your communities configured upload limit plus ~100MB (for the core IPS application). This means if your maximum upload size is set to 100MB, your memory PHP limit should be configured to at least 400MB. I am currently working on optimizing this to reduce the requirement to roughly 2x instead of 3x, but please be sure your server can handle the applications memory requirements before use. mod_zip and mod_pagespeed can currently not be used in conjunction with one another. Pagespeed must be disabled using "Pagespeed off", otherwise mod_zip requests will return as aborted. Unfortunately, this happens even if you attempt to use "pagespeed Disallow" on the application. Demo
To ensure your server is capable of running this application, a free demo can be installed, allowing you to run test downloads from the AdminCP of your IPS community.
You can find the tests page under "Zip Downloads" in the Community tab of your AdminCP. After testing, remember to uninstall the demo before installing the full application!
5 purchases 25 downloads
Topic reputation on forum overview
This is a simple plugin that enables you to display a topics reputation on forum overview pages, similar to how platforms such as Reddit operate.
A topics reputation is calculated by either how much reputation the topic author earned in that topic, or how much reputation the first post received (you decide!)
This plugin provides three methods of displaying reputation on the forum overview:
Replacing the topic views counter with reputation Appending the reputation counter after topic views Displaying reputation before topic titles
5 purchases 9 downloads
Awesome Forum Icons
Have you ever wanted to spice up your forum icons, but don't want to deal with the hassle and drawbacks of using static images?
Then Font Awesome icons may be for you!
This application allows you to use any of Font Awesome 4.7's 675 icons as custom icons for your own IPS forums.
These icons will seamlessly replace the traditional speech balloon/comments icon that you see on your board index. Other than the icon changing, they will still look, function, and be styled exactly the same!
This can also be utilized with custom themes, light or dark.
Say, for example, you have a forum for general conversation, sharing artwork, authors, bug reports, or so on. Chances are, there's an icon for you.
Boring. Let's spice it up a bit!
That's better! See how much more life you can give your forums just by giving them their own unique icons?
How does it work?
Simple! Just install the application, edit the forum you wish to customize, and select the icon you wish to use.
You'll see a new option for Font Awesome icons appear just below the traditional Icon upload form,
That's all there is to it!
15 purchases 19 downloads
This plugin adds a simple and easy to configure widget to your IPS community for displaying a feed of reactions in near real-time.
The types of reactions that are displayed are fully configurable in the widget settings (so you can only display certain positive reactions if you'd like and/or only display reactions in certain applications).
8 purchases 14 downloads
Important: This application requires IP.Gallery to function.
Color Palette is an extension for the core IPS Gallery application. It allows color palettes to be automatically generated from images uploaded to your gallery, offering a great aesthetic addition for all artistic communities!
Note: This application is fairly resource intensive and can impact upload times on more constrained servers. If this becomes a problem on your host, you can lower the palette accuracy via the settings page to reduce the applications resource consumption.
Need the development files?
Did you find this useful? Want more free plugins and applications like this?
Show your support by buying me a Coffee, also known as programmer's fuel!
Invision Development Helper (IDH)
Invision Development Helper is a command line utility designed to aid third-party IPS developers in their everyday workflow.
IMPORTANT: THIS TOOL IS FOR USE ON LOCAL DEVELOPMENT ENVIRONMENTS ONLY. UNDER NO CIRCUMSTANCE SHOULD ANY OF THE PROVIDED TOOLS BE USED ON A PRODUCTION SERVER.
First, make sure you have installed the included Invision Development Helper.xml plugin onto your development site.
If you are on Linux, you can copy the idh executable to /usr/local/bin for convenience.
Otherwise, just extract the included idh file to the directory of your IPS installation and run it from there.
If the script is not being run while you are currently in your IPS installation root, you must set the path to your IPS installation in the IDH_PATH environment variable.
IDH integrates IPS with PsySh via the console command, allowing you to quickly test and run IPS code directly from the command line.
Command line IPS installation
IDH includes support for downloading the latest IPS release and IPS development resources straight from the command-line.
This hooks into the same API that IPS uses when processing updates within your community. Meaning, obviously, you still need to provide a license key, username and password for it to work. This will then download the latest build available straight from IPS.
In addition to this, IDH now allows you to perform a complete installation of IPS from the CLI as well. This is built not only to make setting up local test and development environments easier, but to facilitate automated testing and pave the way for GitHub CI support in the future.
IDH includes a dedicated CUI allowing you to manage various aspects of your application from the commandline.
From here, you can
View application information Build your application for release (more information below) Rebuild the application Build a new application version Enable/disable problem applications remotely
Build for release
The "build for release" function does all of the following things for you at once:
Creates a new builds directory for you, which is organized by your applications long_version Rebuilds the application Builds and copies the applications PHAR archive, making sure to exclude tests, screenshots, and other undesirable folders Compiles and zips any documentation and license files (README.md, README.html, LICENSE.txt, ...) Compiles all development resources Copies over screenshotos in the screenshots folder (if available) This way, everything is bundled up and ready to be directly uploaded to the marketplace. No having to manually copy or move things around, everything is sorted and compiled for you in an instant.
Just as the old Power Tools application did, IDH provides the ability to generate "proxy" classes used to help your IDE properly resolve IPS' monkey-patched classes.
Even better, it can parse database schema files and automatically assign them as properties to their associated classes!
Clear IPS cache and data store remotely Remotely backup/dump your development servers database Run MD5 checks to find modified core files
IMPORTANT: This is a development resource. Do not install this application on a production server.
Adds support for Symfony’s VarDumper class via Laravel’s famous dd() and dump()functions.
If you’re not familiar with what those are, it essentially is a much, much prettier and functional version of var_dump() and die(var_dump()) for debugging.
Output is syntax highlighted and arrays can be expanded/collapsed. If you use var_dump() a lot in your debugging routine, this will be your best friend.
Literally just install it. That’s it. The installed application runs eval() to force the functions dd() and dump() into the global namespace, so you can use them anywhere while debugging your code.
Adds URL filtering support based on a members post count.
With this plugin installed, if a member doesn’t meet the minimum post requirement and attempts to make a post with a link in it, you can either..
Have the link stripped and displayed as text Have the post held for moderation Requested by @MediaDIGI.com here:
5 purchases 8 downloads
Sendfile is an IPS plugin that implements server X-Sendfile support into the software suite. Before purchasing, be sure to download and run the test script provided to ensure your server is properly configured for X-Sendfile support.
To run the test script, simply upload the "sendfile_test" folder to your websites root, and then navigate to "http://yoursite.com/sendfile_test" in your browser. You will be prompted to run a simple test to ensure X-Sendfile is functioning properly on your server.
What is X-Sendfile?
In short, it gives PHP a way to tell your web server to deliver files to the client after proper permission checks and other actions have been performed by IPS. This way, you are not relying on PHP itself to deliver the files to the client.
The reason you don't want PHP to handle file transfers is simple: PHP is really inefficient at it. This is particularly important if you run IPS in a self-hosted environment and your community makes heavy use of attachments or IP.Downloads file submissions.
When you have a lot of users trying to download files concurrently, PHP will rapidly consume your servers available memory pool and, assuming your server makes use PHP-FPM or fastCGI, it will lock up your available PHP processes that are used to serve pages to your other users. This means basic topics and other pages will not load until another users download has completed.
By utilizing X-Sendfile, you are able to pass the workload back off to the web-server. This is immensely more memory efficient, faster, and will keep your PHP processes free. This overall makes IPS significantly more scalable, especially in a self-hosted environment.
This project is licensed under the Mozilla Public License 2.0. Learn more
Did you find this useful? Want more free plugins and applications like this?
Show your support by buying me a Coffee, also known as programmer's fuel!