This page is yet unfinished. It may contain remarks of what should be written here. If you’d like to help writing this page, please ask in the forum for details. This is a final state. See further details on the home page.
Plug-ins
TODO: Plug-ins can be used to extend the application’s functionality. They are independent units that can be added, disabled and copied with ease.
API functions
Hooks
Hook key |
Data type |
Description |
database.preopen | no data | Database will now be opened. |
database.postopen | no data | Database was just opened. |
session.prelogin | no data | Login phase is about to be entered. The session can be prepared here to allow external authentication through plugins. |
session.newuser | array | Login has been externally authorised but the user is yet unknown. Chance for plugins to initially copy the user profile to the UNB database. |
userid : int | User ID to be created | |
session.postlogin | no data | Login phase is completed. Users are now logged in. |
abbc.userconfig | no data | Add custom ABBC configuration here |
resolvemimetype | array | The MIME content type of a file should be determined. There are some types built-in. This hook is only called for unknown files. [TODO: extend for any request] |
file : string | Full filename | |
ext : string | Filename extension | |
out type : string | MIME type | |
acl.customaction | array | Access for a custom user action should be determined. |
action : string | User action’s key | |
forum : int | Object’s (thread’s/post’s) forum ID | |
thread : int | Object’s thread ID | |
user : int | Object’s (post’s) user ID (author) | |
date : int | Object’s (post’s) timestamp | |
isLastPost : bool | Is this the last post of a thread? | |
read_only : bool | Is the board currently in global rad-only mode? | |
out grant : bool/int | Result of the query. True or a numeric value for access, false for denial. | |
acl.customaction.specific | array | Is a custom user action thread- or forum-specific? |
action : int | User action’s numeric ID | |
in/out specific : bool | Action is specific | |
acl.customaction.numeric | array | Is a custom user action a numeric restriction? |
action : int | User action’s numeric ID | |
in/out numeric : bool | Action is a numeric restriction | |
page.httpheader | no data | Output additional HTTP headers now. |
page.htmlhead | out string | Add additional HTML head elements. |
page.addcss | in/out array(string) | Add additional CSS references. |
page.navigation.links | in/out array | Alter the navigation links. The array is a list of all default links. Add new array items at the end to add new links to the right. |
link : string | Link URL | |
image : string | Image tag | |
imageUrl : string | Image name URL | |
title : string | Link title to display | |
active : bool | Highlight this link | |
page.prelogo | out string | Add additional output before the top logo. |
page.prelogo.simple | out string | Add additional output before the top logo, also on “simple” pages. |
page.postlogo | out string | Add additional output after the top logo. |
page.postnavi | out string | Add additional output after the navigation line. |
page.postnavi.simple | out string | Add additional output after the navigation line, also on “simple” pages. |
page.postwarnings | out string | Add additional output after information and error messages. |
page.prefootline | out string | Add additional output before the footer line. |
page.footline | out string | Add additional output at the end of the footer line. |
page.postfootline | out string | Add additional output after the footer line. |
page.postfootline.simple | out string | Add additional output after the footer line, also on “simple” pages. |
page.custom.handlerequest | array | Handle custom page requests. |
request : string | Request name | |
out include : string | File to include | |
out handled : bool | Request was handled by a plug-in | |
link.shortcut.custom | array | Handle custom link shortcuts. |
in/out url : string | in: shortcut, out: resolved URL | |
out request : string | Request URL parameter for the default base URL | |
in/out params : array | All URL parameters | |
link.shorturl.custom | array | Create custom short URLs. Note: New short URLs must be added to the .htaccess file manually! There’s a commented template for this. |
in/out params : array | URL parameters | |
out link : string | Base filename URL | |
out handled : bool | Request was handled by a plug-in | |
post.subject | in/out string | Modify the subject of a post for display. |
post.preparse | array | Called before a post message is parsed. |
user : IUser | Author user object | |
post : IPost | Post object | |
thread : IThread | Thread object | |
in/out message : string | Message content | |
post.postparse | array | Called after a post message is parsed. |
user : IUser | Author user object | |
post : IPost | Post object | |
thread : IThread | Thread object | |
in/out message : string | Message content in HTML format | |
signature.preparse | array | Called before a user signature after a post is parsed. |
user : IUser | Author user object | |
post : IPost | Post object | |
thread : IThread | Thread object | |
in/out signature : string | Signature content | |
signature.postparse | array | Called after a user signature after a post is parsed. |
user : IUser | Author user object | |
post : IPost | Post object | |
thread : IThread | Thread object | |
in/out signature : string | Signature content in HTML format | |
announce.preparse | array | Called before an announcement is parsed. |
announce : IAnnounce | Announcement object | |
in/out message : string | Message content | |
announce.postparse | array | Called after an announcement is parsed. |
announce : IAnnounce | Announcement object | |
in/out message : string | Message content in HTML format | |
cp.user.setgroup | array | Notifies when a user was added to or removed from a user group. |
in userid : int | User ID | |
in groupid : int | Group ID | |
in member : bool | true, if the user was added to the group; false, if the user was removed from the group | |
cp.addcategory | array | Lets plug-ins add new categories to the control panel. |
out title : string | Translation key for the category title | |
out link : string | URL to link to | |
out cpcat : string | Category key | |
cp.categorypage | array | Lets plug-ins handle their new categories to the control panel. |
in cat : string | Currently selected category key | |
threadlist.presubject | array | Add additional output before the subject in the threads list. |
in thread : IThread | Thread object | |
in threadid : int | Thread ID | |
out output : string | Text to insert | |
threadlist.editfields | array | Add additional fields to the edit thread form. |
in thread : IThread | Thread object | |
in threadid : int | Thread ID | |
out output : string | Text to insert | |
threadlist.handleeditfields | array | Handle additional fields added to the edit thread form. |
in thread : IThread | Thread object | |
in threadid : int | Thread ID | |
threadview.presubject | array | Add additional output before the subject in the thread view. |
in thread : null | unused | |
in threadid : int | Thread ID | |
out output : string | Text to insert | |
threadview.postsubject | array | Add additional output after the subject in the thread view. |
in thread : null | unused | |
in threadid : int | Thread ID | |
out output : string | Text to insert | |
thread.removed | int | The thread with given ID has just been removed. |
forumlist.preforumlist | out string | Return HTML code to be displayed before the forums list. |
post.postthreadcreate | in thread : IThread | Called after the thread of a new post is created. Passing the newly created thread object as parameter. |
post.removedlastpost | int | Called after the thread of a deleted post is deleted. Passing the old thread ID as parameter. |
post.postedit | int | Called after a post is edited. Passing the post ID as parameter. |
posteditor.postoptions | array | Add more options to the post editor. |
thread : IThread | Thread object | |
out posteditorOptions : string | HTML text to append to the options | |
announcement : IAnnouncement | Edited announcement | |
post.verifyaccept | array | Allow plug-ins to reject the post before it is saved. (I.e. spam filter) |
out error : string | Set a non-empty error message to reject the post | |
subject : string | The new post’s subject | |
body : string | The new post’s message body | |
forumid : int | The forum ID to post in | |
userid : int | The user who is posting (0 for guests, as usual) | |
cf.rebuild | in/out array | Configuration data array which can be modified. |
page.logincontrol | in array/out any | Input: Previous page parameters. Output: If a string, this replaces the entire login control form, otherwise it’s ignored. |
page.showpath | in array/out any | Input: Information about the path to be displayed. Output: If a string, this replaces the entire path output, otherwise it’s ignored. |
user.verifyregister | array | Allow plug-ins to reject the registration before it is accepted. (I.e. spam filter) |
out error : string | Set a non-empty error message to reject the post | |
username : string | The new user’s name | |
email : string | The new user’s e-mail address |