Advertisement
IPS Community Suite 4.1
Browse our IPS 4.0 and 4.1.x content.
641 files
-
Confirm Email Address
By Kensei
This simple plugin will add another email address field on registration screen to user confirm the email address. The validation will occur when the user submits the form.
106 downloads
Updated
-
Transliteration FileNames
By Kensei
This simple plugin converts non-Latin filenames into Latin.
IPS changes the non-Latin names of the files to a unique hash eg:
Не Латинское Имя Файла.jpg -> 56965a79219b5_.jpg.d81ced405a1fda8a9536815a2c1de2a8.jpg
After installing the plugin:
Не Латинское Имя Файла.jpg -> Ne_Latinskoe_Imya_Fayla.jpg.9fe1ac7cc75105b8930a0d434783980e.jpg
3 downloads
Updated
-
X-Sendfile
By Kensei
This plugin enables X-Sendfile support for filesystem downloads in the Invision Power Suite.
In short, X-Sendfile is a way of allowing PHP to tell your web server to deliver files to the client after proper authentication checks, logging and other application logic has been performed.
This is far more ideal than forcing PHP to handle file transfers directly, as your web server is much more efficient in regards to handling static file transfers.
For more information on X-Sendfile and instructions on how to install/enable it on your web server, please refer to the following guide:
https://www.makoto.io/blogs/entry/1-setting-up-x-sendfile-with-ips/
How it works
IPS4's framework makes enabling X-Sendfile support incredibly easy. This plugin works by hooking into the FileSystem class and overriding the method that normally reads and prints files out in PHP. This offers universal X-Sendfile support everywhere in the suite with just a few lines of code, including attachment and IDM downloads.
Caveats
Download sessions can not be utilized when using X-Sendfile. This means you can not restrict the number of concurrent downloads a user can make in the IPS Downloads application. Download speed throttling is only supported when using Nginx.
21 downloads
Updated
-
Coding Standards
By Kensei
This archive contains an unofficial collection of IDE configurations and other files for use with IPS' own coding standards.
phpStorm
To import the PHP Storm code style configuration, go to File > Import Settings. Select the phpStorm.jar file included in this repository. Afterwards, open up the Setting page (File > Settings) and navigate to Editor > Code Style > PHP.
From the right-hand side of the scheme selection box, click on Manage. You should now see the IPS code style available for use!
This repository also includes a projectCodeStyle.xml document, which you can use to automatically import the IPS coding styles in your own repositories for anyone else that uses phpStorm. To do this, you'll need to copy this file to the .idea/ directory in your projects root and commit it.
If you decide to do this, it's recommended you set up your .gitignore configuration to only commit this file in your .idea directory and ignore everything else.
Scrutinizer
Scrutinizer is a great service for performing automated code checks and scrutinizing your code for quality, and best of all, it's completely free to use for open-source projects! To learn more about it, head over to the official website.
13 downloads
Updated
-
JQuery UI Library
By Kensei
Packaged for the "libraries" application.
Usage:
This library is packaged specifically for use with the libraries app in the IPS4 marketplace. You may need to download this file and upload it to the libraries app if you have not done so previously and an app or plugin that you are using has a dependency on it.
22 downloads
Updated
-
Enhanced Joined Date
This plugin will display JOINED DATE in user panel in posts and will allow the admin to choose between three different ways to show this date.
Requirement:
FORUMS app. Note:
Version 2.0.1: IPS 4.1.X Version 2.0.0: IPS 4.0.X27 downloads
Submitted
-
Knockout JS Library
By Kensei
Knockout JS Library v3.2.0
Packaged for the "libraries" application.
Usage:
This library is packaged specifically for use with the libraries app in the IPS4 marketplace. You may need to download this file and upload it to the libraries app if you have not done so previously and an app or plugin that you are using has a dependency on it.
6 downloads
Updated
-
Bootstrap Library v
By Kensei
Packaged for the "libraries" application.
Usage:
This library is packaged specifically for use with the libraries app in the IPS4 marketplace. You may need to download this file and upload it to the libraries app if you have not done so previously and an app or plugin that you are using has a dependency on it.
25 downloads
Updated
-
Libraries
By Kensei
Libraries is an application which consolidates and provides a central repository for 3rd party
libraries which can be used and shared by apps and plugins. This application provides an API
for app and plugin developers to load and use libraries without having to bundle the library
with the plugin/app distribution.
For site owners, this application allows you to have one centrally located library, ( such as
JQuery UI, Bootstrap, etc ) that you can customize to your own needs and give plugins/apps an
easy way to share it.
Notice to site owners:
You may have been asked to install this application because another app or plugin that you're
using requires it. If that's the case, simply install "libraries" and upload any library files
that are required by the particular app/plugin.
Notice to developers:
Download and read the readme.txt for information on how to use the libraries API in your own
projects.
19 downloads
Updated
-
Proxy Class Generator
By Kensei
Due to the nature of the IPS 4.0 framework, several useful features of your IDE are non-functional (like suggestions/code completion/etc). This file will generate proxy classes for IPS classes (including 3rd-party applications), so your IDE will know how to use IPS style classes.
This file is MIT licensed, please feel free to alter/redistribute/etc, while maintaining license requirements.
11 downloads
Updated
-
CMS Custom Database Field Construction Kit
By Kensei
AUDIENCE: Developers
DISCLAIMER:
--------------
This is not a functioning plugin or app! It is only provided to help expedite
the creation of your own plugin or app ONLY.
SUMMARY:
--------------
This package includes two documented hook templates that can be customized
for use in your own custom cms database fields for use in pages apps and
custom databases.
It has been provided as a quick and easy way to hook into all the basic
methods required to add your own custom cms field to pages.
15 downloads
Updated
-
Polliwog
By Kensei
Note: there is no upgrade path from froggy to polliwog. Also noteworthy, the version check in polliwog is incompatible with the version check for 3.x applications.
Note2: if you receive a failed push warning from the marketplace api, check the permissions for applications/polliwog/interface/rest/rest.php, verify it conforms to your security settings (for me it was 0644).
1 download
Updated
-
PHPStorm Templates
By Kensei
This has several predefined templates for IPS 4.0
Included:
Class (basic class) Template (creates an empty *.phtml, with the param header) Items (creates a blank item's class with many of the predefined options included) Javascript Controller (creates JS controller) JS Mixin (creates Mixin JS file) JS Module (creates Module JS File) Nodes (creates a basic node class with permissions) Singleton (creates a class that extends the singleton class) When creating files, for the ones that have namespace you do not need to include IPS nor do you need to include the _ (underscore) for class name (filename is used for the class name). If you find any problems, drop me a line.
13 downloads
Updated
-
Vagrant Development Box
By Kensei
ipsv is an unofficial Vagrant box utility designed specifically for Invision Power Suite third party developers. It aims to make developing IPS applications and plugins a more enjoyable experience by eliminating the headache of having to manage and manually configure a local development environment using WAMP or similar means.
Whenever you normally want to make a new test install of IPS, you have to..
Download the most recent IPS release Extract the setup files to a new web directory Apply proper permissions to those files and folders Update the configuration files for your web server Create a new MySQL database Go through the process of running the web installer and filling in all your server information again Download the most recent developer tools from the marketplace Extract those developer tools to your IPS installation Create a new constants.php file to finally put the installation into IN_DEV mode. That's quite a headache to go through every time you want to create a new IPS test installation.
Wouldn't it be nice if you could automate doing all of the above in a single command? Meet IPS Vagrant.
What is Vagrant?
Vagrant is software for managing virtual development environments. It allows you to easily create and destroy virtual machines on the fly.
What is IPS Vagrant?
IPSV is a custom server and configuration file management application that comes pre-installed on the FujiMakoto/ipsv Vagrant box.
For more information (including installation instructions), please check out the Getting Started section of the projects README page.
12 downloads
Updated
-
Power Tools
By Kensei
Introduction
Power Tools is a third party command line utility for Invision Power Suite developers. It aims to aid in development by packaging several useful command line script and applications together in one easy to use application.
Installation
If you are on Linux, there is an optional executable included in the release package which you can extract and copy to /usr/local/bin for convenience.
Otherwise, just extract the included ptools.phar file to the directory of your IPS installation. Then, from your terminal window, navigate to the applications directory and run ptools.phar as you would any other PHP script from the command line,
$ php ptools.phar Power Tools version 0.2 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: classmap Generate a map of error codes for classes in an IPS application help Displays help for a command list Lists commands tinker Launches an interactive shell interpreter for an IPS installation generate generate:activerecord Generates an Active Record boilerplate class generate:content-comment Generates a Content Comment boilerplate class generate:content-item Generates a Content Item boilerplate class generate:content-node Generates a Content Node boilerplate class proxy proxy:regen (Re)generates all proxy classes for the application Features
Tinker
Tinker is one of Power Tools most.. well, powerful features! The name tinker was inspired by Laravel's own "tinker" command, and it essentially operates in the same manner.
Both are powered by PsySH, an application that provides an extremely powerful PHP REPL for your applications.
Stop making your life difficult by executing arbitrary code in random modules for testing, or worse yet, actually trying to use the native PHP CLI interpreter.
Need to test if your Item class is working correctly? Just pop into the REPL and give it a whirl!
Everything in the tinker shell essentially works as your application does when run through the web browser. You can even get documentation on class methods right from within the interpreter,
PsySh is a truly awesome tool. To learn more about it and all the features it offers you, check it out on PsySh.org.
Proxy Classes
Due to the nature of the IPS 4.x framework, several useful features of your IDE may become non-functional (suggestions, code completion, etc). This command will generate proxy classes for IPS (including 3rd-party applications), so your IDE will know how to use IPS style classes.
This command was based off of @CodingJungle's own Proxy Class Generator script.
Class Mapping
The classmap command maps unique ID numbers to your applications class files. These ID numbers are then stored and maintained for use in error codes.
By maintaining and actively using a proper error code scheme, you can easily and transparently map the location of errors that are triggered in production.
For more information on this feature, refer to the original Classmap script.
9 downloads
Updated
-
Development Packager
By Kensei
Introduction
Development Packager is an IPS application for third party developers that fully automates the task of packaging development files with other IPS applications.
It also has the added benefit of doing all this in a fully transparent manner, meaning you never have to manually include these development files with your application releases again.
How does it work?
Integrating Development Packager into your own IPS application can be done in three easy steps.
Step 1: Install the Development Packager application as normal.
Step 2: Now that the hard stuff is out of the way, create a new core Build extension for your application in the Development Center.
In this file, replace the build method with the following,
/** * Build * * @return void * @throws \RuntimeException */ public function build() { /** * Make sure we have the DevPackager application installed. * If you want to require developers install this application, simply remove this check. */ if ( !class_exists( 'IPS\devpackager\Packager' ) ) { return; } /** * Package our development files and build our extraction class */ $devPackager = new \IPS\devpackager\Packager( 'yourAppDirHere' ); $devPackager->packageDevFiles(); $devPackager->createDevFilesClass(); } Naturally, replace yourAppDirHere with your actual application directory.
Step 3: In your applications Application.php file, add the following method,
/** * Extract developer resources on installation */ public function installOther() { try { \IPS\yourAppDirHere\DevFiles::extract(); } catch ( \Exception $e ) {} } Again, replace yourAppDirHere respectively.
Once that's done, build your application. That's it!
Now whenever your application is built, all of your development resources should be re-packaged and saved to your applications data directory.
These files are always included with your applications installation archive. Not only this, but any time your application is installed in an environment where \IPS\IN_DEV is enabled, your development files will be automatically extracted on installation.
This means you no longer have to maintain copies of your development files with every release, and other developers no longer have to manually extract these files every time they install or upgrade your application in their development environments. Awesome!
9 downloads
Updated
-
Classmap (Error code generator)
By Kensei
Introduction
Classmap is a PHP script that maps unique ID numbers to your applications class files. These ID numbers are then maintained for use in error codes.
By maintaining and actively using a proper error code scheme, you can easily and transparently map the location of errors that are triggered in production.
This script was designed to be (mostly) compatible with Invison Power Services' own error code schema.
You can see a quick example of the scripts output in FujiMakoto/IPS-Faker,
https://github.com/FujiMakoto/IPS-Faker/blob/master/data/class_ids.md https://github.com/FujiMakoto/IPS-Faker/blob/master/data/class_ids.txt Installation
To install and utilize this script, just upload classmap.php to your applications root directory. For example,/srv/http/ips/applications/yourappdir/classmap.php
Then just execute the script from the command line. A map of class ID's should be outputted to your terminal and saved in your applications data directory.
Error Formatting
The recommended format for error codes (which is the format used by IPS) is ABC/D
A is a number 1-5 indicating the severity,
Severity Description Examples 1 User does something that is not allowed. Can happen in normal use. User did not fill in a required form element. 2 Action cannot be performed. Will not happen in normal clicking around, but may happen if a URL is shared. User does not have permission to access requested page; Page doesn't exist. 3 Action cannot be performed. Will not happen in normal use. Secure key doesn't match; User submitted a value for a select box that wasn't in the select box. 4 Configuration error that may happen if the admin hasn't set things up properly. Uploads directory isn't writable; Facebook application data was rejected. 5 Any error that should never happen. No login modules exist; Module doesn't have a defined default section. B is a short string indicating the application. You should try and make this unique, but limit it to roughly 3-5 characters.
C is a 3-digit number indicating the class in which the error occurred. ID numbers are split into range groups of 100 depending on the class type,
Type Min Max Sources 100 199 Modules 200 299 Extensions 300 399 Hooks 400 499 Widgets 500 599 Tasks 600 699 Interface 700 799 Setup 800 899 Misc 900 999 If more than 100 files are present in any type, the ID number will reset with a suffix of A, B, C, and so on.
D is then an identifier error within the class. The first error code in the class is given 1, the second is 2, and so on.
General Tips
Use descriptive error messages and make use of the ability to show a different error message to admins where appropriate. If it's a severity 4 error, you probably want to show an admin message. The HTTP status code you use is important so make sure you set that properly. Don't use HTTP 500 for an error code with severity 1 or 2 or a HTTP 4xx error for a code with severity 4 or 5. HTTP 404 and 403 will usually be severity 2, HTTP 429 and 503 will usually be severity 1.1 download
Updated
-
Plugin Location
By Kensei
This plugin will display on ACP -> Plugins -> plugin row -> Plugin Details, the plugin location (installation folder).
When you install a plugin on IPS 4.0.X, it doesn't preserve Plugin Directory name you chose when you created that plugin; it installs the plugin in a random folder name, like pfc562c91e1 or p83de4d4757, etc.
Installing this plugin, you will get the exact location of the plugin. This is very handy in case you need to support a client's board and needs to know in which folder your plugin is installed.
28 downloads
Updated
-
Build App from Dev Center
By Kensei
This plugin will help you not to waste your time everytime you need to build your app to test it on public side. Currently you can do this by going to main Applications page and selecting Build from the app menu.
36 downloads
Updated
-
Versions
By Kensei
Overview
The Versions application provides a simple interface for IPS developers to create and easily maintain Update Check URL's for their Applications, Plugins and even Themes.
There are three primary ways you can utilize this application:
1) Manually creating versions
As one would expect, this application will allow you to create version entries by simply manually inputting data about your application, plugin or theme. Just provide the name of the application, its directory name (this does not need to be a valid directory, it is only used for the URL identifier), the textual version representation (eg 1.0.0) and lastly the version ID number (eg 100000) and hit create.
Once your entry has been created, you'll be able to easily bump the version whenever an update is made by clicking the "^" icon beside the version entry. To get the Update Check URL, click the button with the external link icon. Copy and paste this URL into your application settings page in the Update Check URL entry box and you're done.
2) Importing the application .tar archive or plugin/theme .xml file
A quicker alternative to manually inputting data is to simply import your settings automatically. Just click the import button and upload your applications .tar archive (or plugin/themes .xml file) and everything will be automatically inputted for you. Whenever you update your application in the future, you just import it again. Your previous entry will automatically be updated to reflect your most recent changes.
3) Tracking installed applications, plugins or themes
If you have your applications, plugins or themes installed on your IPS community website, you can track these existing installations automatically without ever having to manually input or import any data. As long as you keep these installations updated, the versions of these installations will be pulled directly on request without requiring any additional effort on your end. Just track and forget!
9 downloads
Updated
-
Cookie Notice
By Kensei
This plugin displays a cookie notice message popup. In the ACP you can set the message and specify an URL to read more about your cookies policy. You can also choose different styles and positions for the popup. Clicking the "Got it!" button sets a cookie to no longer show the message.
You are able to block Google Analytics Cookie until the consent message is dismissed.
There are language strings for the "More info" link, for the "Got it!" button, and for the message itself if you choose to use the translations.
Powered by: https://silktide.com/tools/cookie-consent/ - Now it's possible to use a local version of the JavaScript though.
212 downloads
Updated
-
WhatsApp Share Link
By Kensei
Adds the WhatsApp share service to IPS 4.1.x.
Once enabled, the WhatsApp icon should appear in your share links on your phone/tablet. It is hidden by default on desktops because clicking the icon on desktop does nothing and the ability to share has not yet been added to WhatsApp Web. This is toggable in the WhatsApp share link settings.
After clicking the link it opens WhatsApp and you will need to click on a user/conversation for the text to appear.
Notice:
If you're updating to 1.0.9 or later you need to upload the contents of the /upload folder to your IPS 4.1.x install.
Customize:
As of 1.0.6 the text string has been removed to improve performance. To customize you still have access to $url and $title within the whatsapp_cvh template (Core > Global > Plugins in the template editor). You will need to format the text string as desired. An example would be:
<a href="whatsapp://send?text={expression="\IPS\Content\ShareServices\Whatsappcvh::encodeURIComponent( $title . ' ' . $url )"}" class="cShareLink cShareLink_whatsapp" title='{lang="whatsapp_text"}' data-ipsTooltip> <i class="fa fa-whatsapp"></i> </a>80 downloads
Updated
-
Feed Widget
By Kensei
Will let you add RSS widget and show latest feed.
Options
Widget Title RSS Url Number OF Feed Cache Time46 downloads
Updated
-
[pages] Hide Side Bar Records
By Kensei
Hide the sidebar if it is enabled for the page in record view. there might be little to no point in having the sidebar in a record view, this gives you the option to "hide" it for databases.
8 downloads
Updated
-
Online Status in Post View
By Kensei
This simple template hook will show the post author's online status like in ipb3
301 downloads
Updated