Parts of this entry may only apply to those who create applications for IP.Board. Feel free to skip the sections that may not interest you.
In my last blog entry I mentioned the improvements we have made for the hooks system, in this new entry I'll talk about the changes we have made for applications.
Disabling an Application
When an application is disabled from the ACP a check is performed on all the enabled hooks that have it listed in their requirements and a warning will appear at the top of the page to warn the admin about disabling them.
Application Tab Permissions
We have received several requests from our customers in both the feedback forum and tickets and we decided to include it in IP.Board 3.2, you will now be able to specify for which groups the application tab will appear on the public side! The setting to control this is an easy multi-dropdown menu, furthermore we have renamed the setting "Hide Tab" to "Hide for all current and future groups?" and we have moved it under a new permissions tab.
As we have already mentioned for the hooks (see previous blog entry) we have added support for the "Global Caches" system in the applications too, this will allow modification developers to also specify for applications which additional caches should be loaded on each page together with the default ones. For example we will use this in our IP.Nexus application and specify the "nexus_ads" cache which is currently loaded separately on each page when the application is enabled.
Unlike hooks the applications had no way to check for updates, we have now added 2 new settings "Website" and "Update URL" which are used in the same exact way as the one for the hooks (see the previous blog entry).
The updates available will show as a purple badge similar to the ones for the hooks and a counter of the updates available will show up at the top of the page as well.
When Sphinx is enabled we often have customers confused on how to setup properly the cronjobs based on the applications installed. To solve this issue we have added a menu for the old Sphinx button which contains the new "Build Cronjobs" tool. This tool will ask you to input the path to your sphinx.conf file and will then provide the proper cronjobs based on the applications installed. Furthermore, the tool will also warn you about a possible wrong path as you can see in the screenshot below.
Export Tool for Developers
Currently the information.xml file included in the xml folder of each application needs to be written manually, we have now included a tool that allows developers to easily create such file from the ACP without having to write it manually.
This is an example of the file that will be exported from the Members application:
Please note that the option "disabledatinstall" will always be 0 by default unless a previous information.xml file is available and it contains a different value which will be retained. The same goes for the templates, you need to add them manually but as long as you have them in a previous xml file the export function will keep them in the new one as well.
As you can see from the previous screenshots we have not only added new features but also the layout of the pages has been updated as well for better usability, for example you'll notice that the applications not installed are now listed on a column on the right instead of at the bottom where it was harder to see them.
Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!
<?xml version="1.0" encoding="UTF-8"?> <information> <data> <name>Members</name> <public_name>Members</public_name> <author>Invision Power Services, Inc.</author> <description>Manage members and groups</description> <disabledatinstall>0</disabledatinstall> <global_caches/> <website/> <update_check/> <templategroups> <template match="exact">skin_messaging</template> <template match="exact">skin_mlist</template> <template match="exact">skin_online</template> <template match="exact">skin_profile</template> <template match="exact">skin_ucp</template> </templategroups> </data> </information>