Jump to content

IP.Board 3.3 Dev Update: Applications & Hooks Enhancements

Parts of this entry may only apply to those who create hooks for IP.Board. Feel free to skip the sections that may not interest you.

For IP.Board 3.2 I made several changes for both applications and hooks and now with this new major version I went ahead and made some more changes that I hope will simplify things for everyone.

Applications Ordering

Very often customers asked us for a simple way to reorder applications in the ACP, and subsequently in the front end, without having them split in 3 different categories (Root, IPS Addons and Third Party Addons) which for example prevented having the Blog link before the Forums one without having to manually modify the templates to add it. I am pleased to inform you that this is now possible without having to edit anything!

This image shows the old layout with the split categories in IP.Board 3.2:

While this one lets you see the new and updated layout in IP.Board 3.3:

As you can see from the image above the System application (which is hidden for the front end) is always listed at the top but all the others can be re-ordered. Let's now take a look at the main navigation in the front end which properly displays the applications in our chosen order:

Applications Status & Restrictions

From the image above of the new layout you will have surely noticed that now the applications page has 2 tabs which list enabled and disabled applications, the disabled page looks exactly the same except for the first button which is a green plus to enable it opposed to the red cross in the enabled list. Note also that the uninstall button has been replaced with the enable/disable button and has been moved in the dropdown where the less used options are available, after all if you install an application on your community you want to keep it!

Another change is the "Tab Restrictions" column which displays an icon to inform the admin that the front end tab may not show to some (or all) members depending on the chosen options:

Application Details

Unlike for hooks which already have a page to view all their details, applications had nothing and the list itself doesn't have any information about the application author, website and similar data. I have gone ahead and added a new view for that which lists most of the known information for the application:

Hooks List

For consistency with the new applications layout and the recent changes introduced in IP.Content the hooks listing now has two tabs to list enabled and disabled hooks while the old "Install a New Hook" tab is now replaced by a button which opens a modal popup to import the file:

Hooks Settings

Several hooks being released include new settings or whole new group settings but those settings are not always where you expect them. To help admins find those faster we have included a new link in the dropdown that takes you directly to the settings page once clicked.

Since none of our default hooks add settings the example below is from one of the hooks I've released for free:

Since hooks also support multiple groups or even individual settings in the image below as a test I have added a setting from the "Spam Prevention" group in IP.Board in the hook, as you can see both groups are now listed:

Hooks Development

Sometimes a developer might need to run code before allowing the admin to install or uninstall a specific hook, starting with IP.Board 3.3 this is possible adding the functions "pre_install" and "pre_uninstall" in the custom installation file. A simple example with the basic structure can be found below:


class myHookSetup


public function __construct( ipsRegistry $registry )


  // Your constructor code here


public function pre_install()


  //This is run BEFORE the hook is installed on the board, nothing is added in the database or in the files yet


public function install()


  //This is run AFTER the hook is installed on the board


public function pre_uninstall()


  //This is run BEFORE the hook is unistalled from the board, nothing is changed/removed in the database or in the files yet


public function uninstall()


  //This is run AFTER the hook is unistalled from the board



Furthermore to make development of hooks easier the requirements page now provides an easy-to-use dropdown menu with the versions of the chosen application, there is no need anymore to search manually in the XML files the ID for the version you want to specify!

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.



Recommended Comments

Very nice. For the unmoveable 'System' application, could something like a faded and unclickable 'padlock' be where the drag dots should be? Title text of "This application cannot be moved", so people won't wonder if something is wrong with it even though it should be obvious. Might also clue others in that the other apps can be moved, since some may not realize that you can drag/drop the apps.

Link to comment
Share on other sites

Very nice! It's excellent news that apps can now be organized across categories by default, as you suggested. :)

Now if only there was a way to add extra tabs by default, e.g. to specific IPC pages, where the tab would then be "active".

Still, some very welcome additions here.

Link to comment
Share on other sites

one thing i thought would be helpful (doesn't happen all the time) but it would be handy to have a checkbox on all hooks on both active & inactive and after you made a check on them an enable/disable all button. it is very tedious to have to toggle back and fourth between enabled & disabled.

Also too if you click on a hook it would be nice if all the "associated" hooks from the same application would highlight (ajax) so if for some reason you wanted to disable all the hooks for a particular app, they would obey.

Or have a third tab that is "By Application" that shows all the hooks grouped for each application a nice divider between apps.

Link to comment
Share on other sites

[quote name='+++' timestamp='1322836006']
Now if only there was a way to add extra tabs by default, e.g. to specific IPC pages, where the tab would then be "active".

Yes! If this was possible... *sobs*

Link to comment
Share on other sites

not all hooks have a visual impact with regard dynamic placement on the site so their order in the stack, makes it kludgy to focus on hooks that do have a pecking order.

Perhaps if hooks had some flag set that determined if its order placement is dynamic or static.
Then be able to show only the dynamic hooks. like hooks that are used in the side bar how they are ordered.

maybe the current sort order is just for the visual preference of the ACP for site admin - i would opt for an entirely different interface for elements that have a dynamic placement and a method how they are ordered for the public facing side.

also the application detail how about a listing of all the related associated hooks?

Link to comment
Share on other sites

Will we be able to translate/change the applications names and hoover descriptions on the navigationbar?
The last time I tried, you could only translate the generic description and not per-application (Go to <application>) so I couldn't add a proper description to each application.
There was also the issue that you had to add the translation string yourself, as it wasn't there by default.

May be that this was changed a long time ago, as it's been quite a while since I've had time to run a board.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...