Jump to content

* * * * * 3 votes

IP.Board 3.3 Dev Update: Applications & Hooks Enhancements

Posted by tera▀yte , in 3.3.x 02 December 2011 · 7,143 views

development update 3.3 development hooks applications
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:
Attached Image

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

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:
Attached Image

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:
Attached Image

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:
Attached Image

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:
Attached Image

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:
Attached Image

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:
Attached Image

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!
Attached Image

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.

  • zbahadir, AndyF, Ryan H. and 12 others like this

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.
    • Nick▓, Fishfish0001, MageLeif and 3 others like this
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.
    • Ikadon and m3rk0rd like this
It will be great if we can benchmark hooks by sending a number of requests to it and get some usefull info so we know which one is slow to not use it.

Most for hooks that use sql.
Very nice!
FINALLY! Rearranging of menu items. IP.Board keeps getting better and better.
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.
    • dzbeebo likes this
Grouping hooks by app or manualy would be nice....
    • TSP likes this
Dec 03 2011 03:44 AM
the free ordering of application was hardly missed in the past! thanks for that, now we can clean up our global template a little more.
Really pleased tabs can be re-ordered now - been asking for this for years! Thank you so much, excellent.

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*
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?
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.

April 2014

1314151617 18 19

Latest Visitors

  • Photo
    A minute ago
  • Photo
    5 minutes ago
  • Photo
    17 minutes ago
  • Photo
    21 minutes ago
  • Photo
    Magda Biegaj
    26 minutes ago
  • Photo
    27 minutes ago
  • Photo
    29 minutes ago
  • Photo
    Joe Collins
    34 minutes ago
  • Photo
    44 minutes ago
  • Photo
    KT Walrus
    Yesterday, 11:30 PM

Recent Comments

Search My Blog