Mantis BT CustomContent plugin - add custom PHP, HTML, CSS and JS files in Mantis HTML Layout
If you're reading this I guess you already know Mantis Bug Tracker, also known as MantisBT, one of the best open source issue trackers available on the web since eighteen (!) years ago and still rocking its way, providing a delicate balance between simplicity and power. If you don't use bug tracking software, I strongly suggest to try it at least once: once you start using it, there's an high chance that you will never go back!
No, I'm not working for them and I'm not part of the development team, neither I did receive a penny for writing this: it's just that I'm a MantisBT user & administrator since 2001 and I really like the software!
Anyway, if you stumbled upon here there's a high chance that you want to find a way to insert some custom content - such as PHP, HTML, JS, CSS, images and so on - within the default MantisBT template layout, which is not an easy task - unless you want to hack the Mantis core libraries, thus being unable to upgrade it anymore.
Since the release of MantisBT 2.x, which featured a complete rebuild of the layout engine, the Mantis page HTML structure is created dinamically by the file, thus making the layout HTML modding even more painful than before. Luckily enough, there are two global parameters that can be used to include files at the top and at the bottom of the page.
They are explained - together with all the other options - within the MantisBT Admin Guide txt file, which is part of the MantisBT official docs:
That's great, isn't it? Except that these global variables aren't working since months, as we can read in the MantisBT bug #22098. In short words, there's currently no way to add custom content (or include custom files) in a MantisBT default installation.
Introducing CustomContent Plugin
For this very reason I developed the CustomContent MantisBT plugin, wich can be used to include custom HTML, PHP, JS or CSS content within the MantisBT HTML layout structure. As I said before, it has been originally developed to provide a workaround for the MantisBT bug #22098, based upon the fact that the $g_top_include_page and $g_bottom_include_page global variables are not supported / not working anymore.
Installation
Installing the CustomContent plugin is very simple, you just have to follow these steps:
Download the CustomContent GitHub package as a single zip file & unzip it in the /mantisbt/plugins/ folder of your current MantisBT installation.
Rename the resulting folder to /CustomContent/ so that the main plugin PHP file will have the following path: /mantisbt/plugins/CustomContent/CustomContent.php.
While logged into your Mantis installation as an administrator, go to Manage > Manage Plugins.
In the Available Plugins list, you'll find the CustomContent plugin.
Click the Install button to install the plugin into your current MantisBT environment.
Navigate to the /mantisbt/plugins/CustomContent/inc folder and edit/modify the content files accordingly (see Usage below).
Open the /mantisbt/config/config_inc.php file (the MantisBT configuration file) and add the following lines:
Feel free to change the folders, paths & filenames accordingly to your needs.
Usage
You can use the included files just any other PHP file: you can include PHP code, , and elements to link external JS and CSS files or include internal code, images, text and so on.
Supported Versions
MantisBT 1.x - not supported
MantisBT 2.x - supported
Acknowledgements
A huge thanks to Xenos, to his MyKingCustomPlugin and to all the crew of the MantisBT bug #22098 who strongly inspired me to write this plugin.
Official Resources
https://github.com/Darkseal/CustomContent
https://www.ryadel.com/
Read the full article