]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - EVENTS.txt
implement javascript callbacks (no remove yet)
[quix0rs-gnu-social.git] / EVENTS.txt
index 9e274c7314e425bb3c2c9a4862e6cdf4fe58856c..cfba97403b20e1918193cb34483aabc5063d6750 100644 (file)
@@ -2,6 +2,13 @@ InitializePlugin: a chance to initialize a plugin in a complete environment
 
 CleanupPlugin: a chance to cleanup a plugin at the end of a program
 
+StartActionExecute: Right before the "prepare" call of the current Action
+- $action:  the current Action object
+- &$args:   array of arguments, referenced so you can modify the array
+
+EndActionExecute:   Right after the "handle" call of the current Action
+- $action:      the current Action object
+
 StartPrimaryNav: Showing the primary nav menu
 - $action: the current action
 
@@ -20,16 +27,10 @@ StartShowStyles: Showing Style links; good place to add UA style resets
 EndShowStyles: End showing Style links; good place to add custom styles
 - $action: the current action
 
-StartShowStatusNetStyles: Showing StatusNet Style links
-- $action: the current action
-
-EndShowStatusNetStyles: End showing StatusNet Style links;  good place to add handheld or JavaScript dependant styles
-- $action: the current action
-
-StartShowLaconicaStyles: backwards compatibility; deprecated
+StartShowStylesheets: Showing stylesheet links
 - $action: the current action
 
-EndShowLaconicaStyles: backwards compatibility; deprecated
+EndShowStylesheets: End showing stylesheet links;  good place to add handheld or JavaScript dependant styles
 - $action: the current action
 
 StartShowUAStyles: Showing custom User-Agent style links
@@ -57,12 +58,6 @@ StartShowStatusNetScripts: Showing StatusNet script links (use this to link to a
 EndShowStatusNetScripts: End showing StatusNet script links
 - $action: the current action
 
-StartShowLaconicaScripts: backwards compatibility; deprecated
-- $action: the current action
-
-EndShowLaconicaScripts: backwards compatibility; deprecated
-- $action: the current action
-
 StartShowSections: Start the list of sections in the sidebar
 - $action: the current action
 
@@ -228,7 +223,9 @@ EndShowBody: called after showing the <body> element (and </body>)
 - $action: action object being shown
 
 StartPersonalGroupNav: beginning of personal group nav menu
-- $action: action object being shown
+- $menu: Menu list object being shown
+- $target: Profile for whom it is shown
+- $scoped: Profile of currently logged in user (or null)
 
 EndPersonalGroupNav: end of personal group nav menu (good place to add a menu item)
 - $action: action object being shown
@@ -245,6 +242,10 @@ StartEndHTML: just before the </html> tag
 EndEndHTML: just after the </html> tag
 - $action: action object being shown
 
+FinalAction: After prepare() (and possible handle) in Action class.
+- $status: result of "prepare" call on action
+- $action: Action that is currently running
+
 StartShowDesign: just before showing a site, user, or group design
 - $action: action object being shown
 
@@ -263,6 +264,22 @@ StartShowNoticeItem: just before showing the notice item
 EndShowNoticeItem: just after showing the notice item
 - $item: the NoticeListItem object being shown
 
+StartShowNoticeItemNotice: just before outputting the "top" notice part of a NoticeListItem to HTML
+- $item: The NoticeListItem object being shown
+
+EndShowNoticeItemNotice: just after outputting the "top" notice part of a NoticeListItem to HTML
+- $item: The NoticeListItem object being shown
+
+StartShowNoticeContent: just before outputting the content part of a Notice
+- $stored: The Notice object
+- $out: HTMLOutputter for writing to
+- $scoped: optional Profile object for permission scoping
+
+EndShowNoticeContent: just after outputting the content part of a Notice, plugins must call this manually
+- $stored: The Notice object
+- $out: HTMLOutputter for writing to
+- $scoped: optional Profile object for permission scoping
+
 StartShowNoticeInfo: just before showing notice info
 - $item: The NoticeListItem object being shown
 
@@ -275,12 +292,6 @@ StartShowNoticeOptions: just before showing notice options like fave, repeat, et
 EndShowNoticeOptions: just after showing notice options like fave, repeat, etc.
 - $item: the NoticeListItem object being shown
 
-StartShowFaveForm: just before showing the fave form
-- $item: the NoticeListItem object being shown
-
-EndShowFaveForm: just after showing the fave form
-- $item: the NoticeListItem object being shown
-
 StartShowPageNotice: just before showing the page notice (instructions or error)
 - $action: action object being shown
 
@@ -302,19 +313,21 @@ StartProfileSaveForm: before starting to save a profile settings form
 EndProfileSaveForm: after saving a profile settings form (after commit, no profile or user object!)
 - $action: action object being shown
 
-StartEmailFormData: just before showing text entry fields on email settings page
-- $action: action object being shown
+StartEmailFormData: just before showing form input fields on email settings page
+- $action: Action object being shown
+- $scoped: Profile for whom settings are being configured
 
-EndEmailFormData: just after showing text entry fields on email settings page
+EndEmailFormData: just after showing form input fields on email settings page
 - $action: action object being shown
+- $scoped: Profile for whom settings are being configured
 
 StartEmailSaveForm: before starting to save a email settings form
 - $action: action object being shown
-- &$user: user being saved
+- $scoped: Profile user having their email settings saved
 
 EndEmailSaveForm: after saving a email settings form (after commit)
 - $action: action object being shown
-- &$user: user being saved
+- $scoped: Profile user having their email settings saved
 
 StartRegistrationFormData: just before showing text entry fields on registration page
 - $action: action object being shown
@@ -591,12 +604,6 @@ EndPublicXRDS: End XRDS output (right before the closing XRDS tag)
 - $action: the current action
 - &$xrdsoutputter - XRDSOutputter object to write to
 
-StartHostMetaLinks: Start /.well-known/host-meta links
-- &links: array containing the links elements to be written
-
-EndHostMetaLinks: End /.well-known/host-meta links
-- &links: array containing the links elements to be written
-
 StartCheckPassword: Check a username/password
 - $nickname: The nickname to check
 - $password: The password to check
@@ -615,6 +622,11 @@ StartChangePassword: Before changing a password
 EndChangePassword: After changing a password
 - $user: user
 
+StartHashPassword: Generate a hashed version of the password (like a salted crypt)
+- &$hashed: Hashed version of the password, later put in the database
+- $password: The password that should be hashed
+- $profile: Profile that this password and hash belongs to. Can be null.
+
 StartSetUser: Before setting the currently logged in user
 - $user: user
 
@@ -622,10 +634,10 @@ EndSetUser: After setting the currently logged in user
 - $user: user
 
 StartSetApiUser: Before setting the current API user
-- $user: user
+- &$user: user, can be set during event handling (return false to stop processing)
 
 EndSetApiUser: After setting the current API user
-- $user: user
+- $user: user, only called if this is an actual user
 
 StartHasRole: Before determing if the a profile has a given role
 - $profile: profile in question
@@ -725,36 +737,36 @@ EndUnblockProfile: when an unblock has succeeded
 - $profile: the person unblocked, can be remote
 
 StartSubscribe: when a subscription is starting
-- $user: the person subscribing
-- $other: the person being subscribed to
+- $profile: Profile that is subscribing
+- $other: Profile that is being subscribed to
 
 EndSubscribe: when a subscription is finished
-- $user: the person subscribing
-- $other: the person being subscribed to
+- $profile: Profile that is subscribing
+- $other: Profile that is being subscribed to
 
 StartUnsubscribe: when an unsubscribe is starting
-- $user: the person unsubscribing
-- $other: the person being unsubscribed from
+- $profile: Profile that is unsubscribing
+- $other: Profile that is being unsubscribed from
 
 EndUnsubscribe: when an unsubscribe is done
-- $user: the person unsubscribing
-- $other: the person being unsubscribed to
+- $profile: Profile that is unsubscribing
+- $other: Profile that is being unsubscribed from
 
 StartJoinGroup: when a user is joining a group
 - $group: the group being joined
-- $user: the user joining
+- $profile: the local or remote user joining
 
 EndJoinGroup: when a user finishes joining a group
 - $group: the group being joined
-- $user: the user joining
+- $profile: the local or remote user joining
 
 StartLeaveGroup: when a user is leaving a group
 - $group: the group being left
-- $user: the user leaving
+- $profile: the local or remote user leaving
 
 EndLeaveGroup: when a user has left a group
 - $group: the group being left
-- $user: the user leaving
+- $profile: the local or remote user leaving
 
 StartShowContentLicense: Showing the default license for content
 - $action: the current action
@@ -762,13 +774,29 @@ StartShowContentLicense: Showing the default license for content
 EndShowContentLicense: Showing the default license for content
 - $action: the current action
 
+GetImTransports: Get IM transports that are available
+- &$transports: append your transport to this array like so: $transports[transportName]=array('display'=>display)
+
+NormalizeImScreenname: Normalize an IM screenname
+- $transport: transport the screenname is on
+- &$screenname: screenname to be normalized
+
+ValidateImScreenname: Validate an IM screenname
+- $transport: transport the screenname is on
+- $screenname: screenname to be validated
+- $valid: is the screenname valid?
+
+SendImConfirmationCode: Send a confirmation code to confirm a user owns an IM screenname
+- $transport: transport the screenname exists on
+- $screenname: screenname being confirmed
+- $code: confirmation code for confirmation URL
+- $user: user requesting the confirmation
+
 StartUserRegister: When a new user is being registered
-- &$profile: new profile data (no ID)
-- &$user: new user account (no ID or URI)
+- $profile: Profile object with new profile data (no ID yet)
 
 EndUserRegister: When a new user has been registered
-- &$profile: new profile data
-- &$user: new user account
+- $profile: Profile object with new profile data
 
 StartRobotsTxt: Before outputting the robots.txt page
 - &$action: RobotstxtAction being shown
@@ -784,39 +812,13 @@ EndGetProfileUri: After determining the canonical URI for a given profile
 - $profile: the current profile
 - &$uri: the URI
 
-StartFavorNotice: Saving a notice as a favorite
-- $profile: profile of the person faving (can be remote!)
-- $notice: notice being faved
-- &$fave: Favor object; null to start off with, but feel free to override.
-
-EndFavorNotice: After saving a notice as a favorite
-- $profile: profile of the person faving (can be remote!)
-- $notice: notice being faved
-
-StartDisfavorNotice: Saving a notice as a favorite
-- $profile: profile of the person faving (can be remote!)
-- $notice: notice being faved
-- &$result: result of the disfavoring (if you override)
-
-EndDisfavorNotice: After saving a notice as a favorite
-- $profile: profile of the person faving (can be remote!)
-- $notice: notice being faved
-
-StartFavorNoticeForm: starting the data in the form for favoring a notice
-- $FavorForm: the favor form being shown
-- $notice: notice being favored
-
-EndFavorNoticeForm: Ending the data in the form for favoring a notice
-- $FavorForm: the favor form being shown
-- $notice: notice being favored
+StartGetProfileAcctUri: Get the acct: URI for a Profile (or throw ProfileNoAcctUriException)
+- $profile: Profile of user we want to get acct: URI for
+- &$acct:   string with the resulting acct: uri
 
-StartDisFavorNoticeForm: starting the data in the form for disfavoring a notice
-- $DisfavorForm: the disfavor form being shown
-- $notice: notice being difavored
-
-EndDisFavorNoticeForm: Ending the data in the form for disfavoring a notice
-- $DisfavorForm: the disfavor form being shown
-- $notice: notice being disfavored
+EndGetProfileAcctUri: Last attempts to get the acct: URI for a Profile (or throw ProfileNoAcctUriException)
+- $profile: Profile of user we want to get acct: URI for
+- &$acct:   string with the resulting acct: uri
 
 StartFindMentions: start finding mentions in a block of text
 - $sender: sender profile
@@ -880,233 +882,13 @@ EndDeleteUser: handling the post for deleting a user
 - $action: action being shown
 - $user: user being deleted
 
-StartActivityStart: starting the output for a notice activity <event>
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$attrs: <entry> attributes (mostly namespace declarations, if any)
-
-EndActivityStart: end the opening tag for an activity <event>
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $attrs: <entry> attributes (mostly namespace declarations, if any)
-
-StartActivitySource: before outputting the <source> element for a notice activity
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-
-EndActivitySource: after outputting the <source> element for a notice activity
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-
-StartActivityTitle: before outputting notice activity title
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$title: title of the notice, mutable
-
-EndActivityTitle: after outputting notice activity title
-- $notice: notice being output
-- &$xs: XMLStringer for output
-- $title: title of the notice
-
-StartActivityAuthor: before outputting atom author
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$atomAuthor: string for XML representing atom author
-
-EndActivityAuthor: after outputting atom author
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$atomAuthor: string for XML representing atom author
-
-StartActivityActor: before outputting activity actor element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$actor: string for XML representing activity actor
-
-EndActivityActor: after outputting activity actor element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$actor: string for XML representing activity actor
-
-StartActivityLink: before outputting activity HTML link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$url: URL for activity HTML link element for a notice activity entry
-
-EndActivityLink: before outputting activity HTML link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $url:  URL for activity HTML link element for a notice activity entry
-
-StartActivityId: before outputting atom:id element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$id: atom:id (notice URI by default)
-
-EndActivityId: after outputting atom:id element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $id:  atom:id (notice URI by default)
-
-StartActivityPublished: before outputting atom:published element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$published: atom:published value (notice created by default)
-
-EndActivityPublished: before outputting atom:published element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $published:  atom:published value (notice created by default)
-
-StartActivityUpdated: before outputting atom:updated element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$updated: atom:updated value (same as atom:published by default)
-
-EndActivityUpdated: after outputting atom:updated element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $updated: atom:updated value (same as atom:published by default)
-
-StartActivityContent: before outputting atom:content element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$content: atom:content value (notice rendered HTML by default)
-
-EndActivityContent: after outputting atom:content element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $content: atom:content value (notice rendered HTML by default)
-
-StartActivityVerb: before outputting activity:verb element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default)
-
-EndActivityVerb: after outputting activity:verb element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default)
-
-StartActivityDefaultObjectType: before outputting activity:object-type element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default)
-
-EndActivityDefaultObjectType: after outputting activity:verb element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default)
-
-StartActivityObjects: before outputting activity:object elements for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$objects: array of ActivityObject objects to output (empty by default)
-
-EndActivityObjects: after outputting activity:object elements for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $objects: array of ActivityObject objects to output (empty by default)
-
-StartActivityNoticeInfo: before outputting statusnet:notice-info element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$noticeInfoAttr: array of attributes for notice info element
-
-EndActivityNoticeInfo: after outputting statusnet:notice-info element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $noticeInfoAttr: array of attributes for notice info element
-
-StartActivityInReplyTo: before outputting thr:in-reply-to element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$replyNotice: Notice object the main notice is in-reply-to
-
-EndActivityInReplyTo: after outputting thr:in-reply-to element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $replyNotice: Notice object the main notice is in-reply-to
-
-StartActivityConversation: before outputting ostatus:conversation link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$conv: Conversation object
-
-EndActivityConversation: after outputting ostatus:conversation link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $conv: Conversation object
-
-StartActivityAttentionProfiles: before outputting ostatus:attention link element for people in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$replyProfiles: array of profiles of people being replied to
-
-EndActivityAttentionProfiles: after outputting ostatus:attention link element for people in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $replyProfiles: array of Profile object of people being replied to
-
-StartActivityAttentionGroups: before outputting ostatus:attention link element for groups in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$groups: array of Group objects of groups being addressed
-
-EndActivityAttentionGroups: after outputting ostatus:attention link element for groups in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $groups: array of Group objects of groups being addressed
-
-StartActivityForward: before outputting ostatus:forward link element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$repeat: Notice that was repeated
-
-EndActivityForward: after outputting ostatus:forward link element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $repeat: Notice that was repeated
-
-StartActivityCategories: before outputting atom:category elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$tags: array of strings for tags on the notice (used for categories)
-
-EndActivityCategories: after outputting atom:category elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $tags: array of strings for tags on the notice (used for categories)
-
-StartActivityEnclosures: before outputting enclosure link elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$enclosures: array of enclosure objects (see File::getEnclosure() for details)
-
-EndActivityEnclosures: after outputting enclosure link elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $enclosures: array of enclosure objects (see File::getEnclosure() for details)
-
-StartActivityGeo: before outputting geo:rss element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$lat: latitude
-- &$lon: longitude
-
-EndActivityGeo: after outputting geo:rss element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $lat: latitude
-- $lon: longitude
-
-StartActivityEnd: before the closing </entry> in a notice activity entry (last chance for data!)
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-
-EndActivityEnd: after the closing </entry> in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
+StartNoticeAsActivity: before converting a notice to an activity
+- $notice: notice being converted
+- &$activity: initially empty activity
+
+EndNoticeAsActivity: after converting a notice to an activity (good time to customize!)
+- $notice: notice being converted
+- &$activity: activity, now more-or-less full
 
 StartNoticeSaveWeb: before saving a notice through the Web interface
 - $action: action being executed (instance of NewNoticeAction)
@@ -1129,6 +911,9 @@ EndRssEntryArray: at the end of copying a notice to an array
 NoticeDeleteRelated: at the beginning of deleting related fields to a notice
 - $notice: notice being deleted
 
+FileDeleteRelated: at the beginning of deleting related fields to a File
+- $notice: File being deleted
+
 StartShowHeadTitle: when beginning to show the <title> element
 - $action: action being shown
 
@@ -1171,6 +956,9 @@ StartShowNoticeForm: before showing the notice form (before <form>)
 EndShowNoticeForm: after showing the notice form (after <form>)
 - $action: action being executed
 
+StartShowEntryForms: microapp entry form tab data
+- &$tabs: tab assoc array with 'tag' => (title, href to create new entry)
+
 StartGrantRole: when a role is being assigned
 - $profile: profile that will have the role
 - $role: string name of the role
@@ -1189,8 +977,523 @@ EndRevokeRole: when a role has been revoked
 
 StartAtomPubNewActivity: When a new activity comes in through Atom Pub API
 - &$activity: received activity
+- $profile: profile of the user publishing the entry
+- &$notice: notice created; initially null, can be set
 
 EndAtomPubNewActivity: When a new activity comes in through Atom Pub API
 - $activity: received activity
+- $profile: profile of the user publishing the entry
 - $notice: notice that was created
 
+AdminPanelCheck: When checking whether the current user can access a given admin panel
+- $name:  Name of the admin panel
+- &$isOK: Boolean whether the user is allowed to use the panel
+
+StartAdminPanelNav: Before displaying the first item in the list of admin panels
+- $nav The AdminPanelNav widget
+
+EndAdminPanelNav: After displaying the last item in the list of admin panels
+- $nav The AdminPanelNav widget
+
+StartActivityObjectFromNotice: When converting a notice to an activity:object
+- $notice: The notice being converted
+- &$object: The resulting object. Fill this and return false to override defaults.
+
+EndActivityObjectFromNotice: After converting a notice to an activity:object
+- $notice: The notice being converted
+- &$object: The resulting object. Can be edited
+
+StartActivityObjectFromProfile: When converting a profile to an activity:object
+- $profile: The profile being converted
+- &$object: The (empty) object. Fill it up and return false to override defaults.
+
+EndActivityObjectFromProfile: After converting a profile to an activity:object
+- $profile: The profile being converted
+- &$object: The finished object. Can be tweaked
+
+StartActivityObjectFromGroup: When converting a group to an activity:object
+- $group: The group being converted
+- &$object: The (empty) object. Fill and return false to override.
+
+EndActivityObjectFromGroup:  After converting a group to an activity:object
+- $group:  The group being converted
+- &$object: The finished object. Tweak as needed.
+
+StartImportActivity: when we start to import an activity
+- $user: User to make the author import
+- $author: Author of the feed; good for comparisons
+- $activity: The current activity
+- $trusted: How "trusted" the process is
+- &$done: Return value; whether to continue
+
+EndImportActivity: when we finish importing an activity
+- $user: User to make the author import
+- $author: Author of the feed; good for comparisons
+- $activity: The current activity
+- $trusted: How "trusted" the process is
+
+StartProfileSettingsActions: when we're showing account-management action list
+- $action: Action being shown (use for output)
+
+EndProfileSettingsActions: when we're showing account-management action list
+- $action: Action being shown (use for output)
+
+StartOpenNoticeListItemElement: Before the opening <li> of a notice list element
+- $nli: The notice list item being shown
+
+EndOpenNoticeListItemElement: After the opening <li> of a notice list element
+- $nli: The notice list item being shown
+
+StartCloseNoticeListItemElement: Before the closing </li> of a notice list element
+- $nli: The notice list item being shown
+
+EndCloseNoticeListItemElement: After the closing </li> of a notice list element
+- $nli: The notice list item being shown
+
+StartGroupEditFormData: Beginning the group edit form entries
+- $form: The form widget being shown
+
+EndGroupEditFormData: Ending the group edit form entries
+- $form: The form widget being shown
+
+StartGroupSave: After initializing but before saving a group
+- &$group: group about to be saved
+
+EndGroupSave: After saving a group, aliases, and first member
+- $group: group that was saved
+
+StartInterpretCommand: Before running a command
+- $cmd: First word in the string, 'foo' in 'foo argument'
+- $arg: Argument, if any, like 'argument' in 'foo argument'
+- $user: User who issued the command
+- &$result: Resulting command; you can set this!
+
+EndInterpretCommand: Before running a command
+- $cmd: First word in the string, 'foo' in 'foo argument'
+- $arg: Argument, if any, like 'argument' in 'foo argument'
+- $user: User who issued the command
+- $result: Resulting command
+
+StartGroupActionsList: Start the list of actions on a group profile page (after <ul>, before first <li>)
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+EndGroupActionsList: End the list of actions on a group profile page (before </ul>, after last </li>)
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+StartGroupProfileElements: Start showing stuff about the group on its profile page
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+EndGroupProfileElements: Start showing stuff about the group on its profile page
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+StartShowProfileTagContent: When showing a people tag page
+- $action: action being executed (for output and params)
+
+EndShowProfileTagContent: After showing the contents of a people tag page
+- $action: action being executed (for output and params)
+
+StartShowTaggedProfilesMiniList: at the start of mini list of tagged profiles
+- $action: action being executed (for output and params)
+
+EndShowTaggedProfilesMiniList: at the end of mini list of tagged profiles
+- $action: action being executed (for output and params)
+
+StartShowProfileTagSubscribersMiniList: at the start of mini list of people tag subscribers
+- $action: action being executed (for output and params)
+
+EndShowProfileTagSubscribersMiniList: at the end of mini list of people tag subscribers
+- $action: action being executed (for output and params)
+
+StartTagProfileAction: When starting to show profile tagging page
+- $action: action being executed (for output and params)
+- $profile: profile being tagged
+
+EndTagProfileAction: After showing profile tagging page
+- $action: action being executed (for output and params)
+- $profile: profile being tagged
+
+StartProfileCompletionSearch: When starting a profile search for autocompletion
+- $action: action being executed (for output and params)
+- &$profile: result Profile objects
+- $search_engine: the search engine
+
+EndProfileCompletionSearch: After search results for profile autocompletion have been found
+- $action: profilec completion action
+- &$profile: current result Profile objects
+- $search_engine: The search engine object
+
+StartShowTagProfileForm: When showing people tagging form
+- $action: action being executed (for output and params)
+- $profile: profile being tagged
+
+EndShowTagProfileForm: After showing people tagging form
+- $action: action being executed (for output and params)
+- $profile: profile being tagged
+
+StartSavePeopletags: When starting to save people tags
+- $action: action being executed (for output and params)
+- $tagstring: string input, a list of tags
+
+EndSavePeopletags: After saving people tags
+- $action: action being executed (for output and params)
+- $tagstring: string input, a list of tags
+
+StartProfiletagGetUri: when generating the Uri for a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$uri: the URI
+
+EndProfiletagGetUri: after generating the uri for a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$uri: the URI
+
+StartUserPeopletagHomeUrl: when generating the homepage url for a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$url: the URL
+
+EndUserPeopletagHomeUrl: after generating the homepage url for a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$url: the URL
+
+StartProfiletagPermalink: when generating the permalink url for a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$url: the URL
+
+EndProfiletagPermalink: after generating the permalink url for a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$url: the URL
+
+StartTagProfile: when tagging a profile
+- $tagger: profile tagging
+- $tagged: profile being tagged
+- $tag: the tag
+
+EndTagProfile: after tagging a profile
+- $newtag: the newly created Profile_tag object
+
+StartUntagProfile: when deleting a people tag
+- $ptag: the Profile_tag object being deleted
+
+EndUntagProfile: after deleting a people tag
+- $orig: a copy of the deleted Profile_tag object
+
+StartSubscribePeopletag: when subscribing to a people tag
+- $peopletag: Profile_list object being subscribed to
+- $profile: subscriber's profile
+
+EndSubscribePeopletag: after subscribing to a people tag
+- $profile_list: the people tag, a Profile_list object: Profile_list object being subscribed to
+- $profile: subscriber's profile
+
+StartUnsubscribePeopletag: when unsubscribing to a people tag
+- $profile_list: the people tag, a Profile_list object: Profile_list object being subscribed to
+- $profile: subscriber's profile
+
+EndUnsubscribePeopletag: after unsubscribing to a people tag
+- $peopletag: Profile_list object being subscribed to
+- $profile: subscriber's profile
+
+StartActivityObjectFromPeopletag: while starting to create an ActivityObject from a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$object: activity object
+
+EndActivityObjectFromPeopletag: after making an ActivityObject from a people tag
+- $profile_list: the people tag, a Profile_list object
+- &$object: activity object
+
+StartPeopletagGroupNav: Showing the people tag nav menu
+- $menu: the menu widget; use $menu->action for output
+
+EndPeopletagGroupNav: after showing the people tag nav menu
+- $menu: the menu widget; use $menu->action for output
+
+StartShowPeopletagItem: when showing a people tag
+- $widget: PeopletagListItem widget
+
+EndShowPeopletagItem: after showing a people tag
+- $widget: PeopletagListItem widget
+
+StartSubscribePeopletagForm: when showing people tag subscription form
+- $action: action being executed (for output and params)
+- $peopletag: people tag being subscribed to
+
+EndSubscribePeopletagForm: after showing the people tag subscription form
+- $action: action being executed (for output and params)
+- $peopletag: people tag being subscribed to
+
+StartShowPeopletags: when showing a textual list of people tags
+- $widget: PeopletagsWidget; use $widget->out for output
+- $tagger: profile of the tagger
+- $tagged: profile tagged
+
+EndShowPeopletags: after showing a textual list of people tags
+- $widget: PeopletagsWidget; use $widget->out for output
+- $tagger: profile of the tagger
+- $tagged: profile tagged
+
+StartProfileListItemTags: when showing people tags in a profile list item widget
+- $widget: ProfileListItem widget
+
+EndProfileListItemTags: after showing people tags in a profile list item widget
+- $widget: ProfileListItem widget
+
+StartActivityObjectOutputAtom: Called at start of Atom XML output generation for ActivityObject chunks, just inside the <activity:object>. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so)
+- $obj: ActivityObject
+- $out: XMLOutputter to append custom output
+
+EndActivityObjectOutputAtom: Called at end of Atom XML output generation for ActivityObject chunks, just inside the </activity:object>
+- $obj: ActivityObject
+- $out: XMLOutputter to append custom output
+
+StartActivityObjectOutputJson: Called at start of JSON output generation for ActivityObject chunks: the array has not yet been filled out. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so)
+- $obj ActivityObject
+- &$out: array to be serialized; you're free to modify it
+
+EndActivityObjectOutputJson: Called at end of JSON output generation for ActivityObject chunks: the array has not yet been filled out.
+- $obj ActivityObject
+- &$out: array to be serialized; you're free to modify it
+
+StartNoticeWhoGets: Called at start of inbox delivery prep; plugins can schedule notices to go to particular profiles that would otherwise not have reached them. Canceling will take over the entire addressing operation. Be aware that output can be cached or used several times, so should remain idempotent.
+- $notice Notice
+- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc
+
+EndNoticeWhoGets: Called at end of inbox delivery prep; plugins can filter out profiles from receiving inbox delivery here.  Be aware that output can be cached or used several times, so should remain idempotent.
+- $notice Notice
+- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc
+
+StartDefaultLocalNav: When showing the default local nav
+- $menu: the menu
+- $user: current user
+
+EndDefaultLocalNav: When showing the default local nav
+- $menu: the menu
+- $user: current user
+
+StartShowAccountProfileBlock: When showing the profile block for an account
+- $out: XMLOutputter to append custom output
+- $profile: the profile being shown
+
+EndShowAccountProfileBlock: After showing the profile block for an account
+- $out: XMLOutputter to append custom output
+- $profile: the profile being shown
+
+StartShowGroupProfileBlock: When showing the profile block for a group
+- $out: XMLOutputter to append custom output
+- $profile: the profile being shown
+
+EndShowGroupProfileBlock: After showing the profile block for a group
+- $out: XMLOutputter to append custom output
+- $group: the group being shown
+
+StartShowConversation: start the listing of a conversation
+- $action: Action object (used mainly as HTMLOutputter)
+- $conv: Conversation object, has functions to retrieve relevant notices
+- $scoped: Profile for scoping (null if not logged in)
+
+EndShowConversation: after the listing of a conversation
+- $action: Action object (used mainly as HTMLOutputter)
+- $conv: Conversation object, has functions to retrieve relevant notices
+- $scoped: Profile for scoping (null if not logged in)
+
+StartShowThreadedNoticeTail: when showing the replies etc. to a notice
+- $nli: parent noticelistitem
+- $notice: parent notice
+- &$children: list of children
+
+EndShowThreadedNoticeTail: when showing the replies etc. to a notice
+- $nli: parent noticelistitem
+- $notice: parent notice
+- $children: list of children
+
+StartShowThreadedNoticeSub: when showing a reply to a notice
+- $nli: parent noticelistitem
+- $parent: parent notice
+- $child: child notice
+
+EndShowThreadedNoticeSub: when showing a reply to a notice
+- $nli: parent noticelistitem
+- $parent: parent notice
+- $child: child notice
+
+StartAddEmailAddress: when adding an email address through the Web UI
+- $user: user getting the new address
+- $email: email being added
+
+EndAddEmailAddress: done adding an email address through the Web UI
+- $user: user getting the new address
+- $email: email being added
+
+StartValidateEmailInvite: when validating an email address for invitations
+- $user: user doing the invite
+- $email: email address
+- &$valid: flag for if it's valid; can be modified
+
+EndValidateEmailInvite: after validating an email address for invitations
+- $user: user doing the invite
+- $email: email address
+- &$valid: flag for if it's valid; can be modified
+
+StartLocalURL: before resolving a local url for an action
+- &$action: action to find a path for
+- &$paramsi: parameters to pass to the action
+- &$fragment: any url fragement
+- &$addSession: whether to add session variable
+- &$url: resulting URL to local resource
+
+EndLocalURL: before resolving a local url for an action
+- &$action: action to find a path for
+- &$paramsi: parameters to pass to the action
+- &$fragment: any url fragement
+- &$addSession: whether to add session variable
+- &$url: resulting URL to local resource
+
+StartProfileGetAvatar: When getting an avatar for a profile
+- $profile: profile
+- $size: size of the avatar
+- &$avatar: avatar
+
+EndProfileGetAvatar: After getting an avatar for a profile
+- $profile: profile
+- $size: size of the avatar
+- &$avatar: avatar
+
+StartRegisterSuccess: Before showing the registration success message
+- $action: the registration action
+
+StartRegisterSuccess: After showing the registration success message
+- $action: the registration action
+
+StartDocFileForTitle: Before searching for a doc or mail template
+- $title: Title we're looking for
+- &$paths: Paths we're searching
+- &$filename: Filename so far (set this if you want)
+
+EndDocFileForTitle: After searching for a doc or mail template
+- $title: Title we looked for
+- $paths: Paths we searched
+- &$filename: Filename so far (set this if you want)
+
+StartReadWriteTables: when noting which tables must be read-write, even on read-only actions
+- &$tables: list of table names
+- &$rwdb: read-write database URI
+
+EndReadWriteTables: after noting which tables must be read-write, even on read-only actions
+- $tables: list of table names
+- $rwdb: read-write database URI
+
+StartShowInviteForm: Right before displaying the invitations form
+- $action: invitation action
+
+EndShowInviteForm: After displaying the invitations form
+- $action: invitation action
+
+StartSendInvitations: Right before sending invitations
+- $action: invitation action
+
+EndSendInvitations: Right after sending invitations
+- $action: invitation action
+
+StartShowInvitationSuccess: Right before showing invitations success msg
+- $action: invitation action
+
+EndShowInvitationSuccess: After showing invitations success msg
+- $action: invitation action
+
+StartUpgrade: when starting a site upgrade
+
+EndUpgrade: when ending a site upgrade; good place to do your own upgrades
+
+HaveIMPlugin: is there an IM plugin loaded?
+- &$haveIMPlugin: set me to true if you're loaded!
+
+StartShowNoticeOptionItems: Before showing first controls in a notice list item; inside the div
+- $nli: NoticeListItem being shown
+
+EndShowNoticeOptionItems: After showing last controls in a notice list item; inside the div
+- $nli: NoticeListItem being shown
+
+StartNoticeInScope: Before checking if a notice should be visible to a user
+- $notice: The notice to check
+- $profile: The profile to check for scope
+- &$bResult: The boolean result; fill this in if you want to skip
+
+EndNoticeInScope: After checking if a notice should be visible to a user
+- $notice: The notice to check
+- $profile: The profile to check for scope
+- &$bResult: The boolean result; overwrite this if you so desire
+
+StartNoticeListPrefill: Before pre-filling a list of notices with extra data
+- &$notices: Notices to be pre-filled
+- $avatarSize: The avatar size for the list
+
+EndNoticeListPrefill: After pre-filling a list of notices with extra data
+- &$notices: Notices that were pre-filled
+- &$profiles: Profiles that were pre-filled 
+- $avatarSize: The avatar size for the list
+
+OtherAccountProfiles: Hook to add account profiles to a user account profile block
+- $profile: the Profile being shown
+- &$others: Modifiable array of profile info arrays. Each one has the following fields:
+            href: link to the profile
+            text: text for the profile
+            image: mini image for the profile
+
+CreateFileImageThumbnailSource: Hook to create image thumbnail source from a File
+- $file:    'File' object to source the image from
+- &$imgPath: Path to image file which can be used as source for our thumbnail algorithm.
+- $media:   MIME media type ('image', 'video', 'audio' etc.)
+
+StartResizeImageFile: Hook to resize an image and output it to a file. No matching End event yet.
+- $imagefile: ImageFile object we're resizing.
+- $outpath:   string with output filepath
+- $box:       array with size ('width', 'height') and boundary box('x', 'y', 'w', 'h').
+
+FillImageFileMetadata: Get more metadata about the ImageFile if it is perhaps not a real local file
+- $imagefile    ImageFile object which we're getting metadata for (such as animated status, width/height etc.)
+
+StartShowAttachmentRepresentation: Attachment representation, full file (or in rare cases thumbnails/previews).
+- $out:     HTMLOutputter class to use for outputting HTML.
+- $file:    'File' object which we're going to show representation for.
+
+EndShowAttachmentRepresentation: Executed after Attachment representation, despite perhaps being unsupported media.
+- $out:     HTMLOutputter class to use for outputting HTML.
+- $file:    'File' object which we're going to show representation for.
+
+ShowUnsupportedAttachmentRepresentation: Attachment representation, full file (or in rare cases thumbnails/previews).
+- $out:     HTMLOutputter class to use for outputting HTML.
+- $file:    'File' object which we're going to show representation for.
+
+StartNotifyMentioned: During notice distribution, we send notifications (email, im...) to the profiles who were somehow mentioned.
+- $stored:         Notice object that is being distributed.
+- &$mentioned_ids: Array of profile IDs (not just for local users) who got mentioned by the notice.
+
+EndNotifyMentioned: During notice distribution, we send notifications (email, im...) to the profiles who were somehow mentioned.
+- $stored:         Notice object that is being distributed.
+- $mentioned_ids:  Array of profile IDs (not just for local users) who got mentioned by the notice.
+
+StartHomeStubNavItems: Go back Home nav items. Default includes just one item 'home'
+- $out:     HTMLOutputter used to output (usually an Action, but not always!)
+- &$items:  Referenced array of items in the nav (add if desired)
+
+EndHomeStubNavItems:
+- $out:     HTMLOutputter used to output (usually an Action, but not always!)
+- $items:   array of menu items
+
+StartSubMenu: Before outputting a submenu (including enclosing tags) to HTML
+- $out:     HTMLOutputter used to output (usually an Action, but not always!)
+- $menu:    The Menu object outputted as a submenu.
+- $label:   Localized text which represents the menu item.
+
+EndSubMenu: After outputting a submenu (including enclosing tags) to HTML
+- $out:     HTMLOutputter used to output (usually an Action, but not always!)
+- $menu:    The Menu object outputted as a submenu.
+- $label:   Localized text which represents the menu item.
+
+StartDocNav: Before outputting the docs Nav
+- $nav: The DoclNav widget
+
+EndDocNav: After outputting the docs Nav
+- $nav: The DoclNav widget